predict-raven

agent
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Warn
  • process.env — Environment variable access in apps/web/app/api/admin/session/route.ts
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This is an autonomous trading agent framework designed to continuously run and execute trades on the Polymarket prediction market. It uses AI to evaluate event probabilities, compare them against market odds, and automatically place trades without human intervention.

Security Assessment
Overall risk: Medium. The tool requires highly sensitive financial credentials to operate, specifically your Polymarket wallet private key and funder address, which are handled via local environment variables (`.env.live-test`). A scan flagged environment variable access in an admin session route, which is standard for web apps but warrants manual review to ensure keys aren't inadvertently logged or exposed. No hardcoded secrets were detected in the codebase, and the agent does not request broad, dangerous system permissions. However, because this tool autonomously executes real financial transactions with real money, any logic flaw, API vulnerability, or misconfiguration could result in direct monetary loss.

Quality Assessment
The project is MIT licensed and has a clear, detailed description. It is actively maintained, with the most recent code push occurring today. However, community trust is currently very low—the repository has only 5 GitHub stars, indicating minimal public scrutiny or battle-testing. A lack of widespread community vetting is a significant concern for a tool that manages real financial assets and handles private keys. Additionally, the primary README is written in Chinese (with an English translation available), which may be a consideration for some developers.

Verdict
Use with caution. While the code appears structurally sound, the combination of handling sensitive private keys, executing autonomous financial transactions, and having very little community review makes it a high-stakes tool to deploy.
SUMMARY

The first autonomous, continuously-running trading agent for prediction markets. Live on Polymarket.

README.md

predict-raven

License: MIT

Predict Raven

This README is written in Chinese for the maintainer's convenience. Don't worry — every document in this repository has a matching English version. See docs/en/README.md for the full English README.

最后更新:2026-04-26


Predict-Raven 是一个在Polymarket上实现自主交易的Agent框架,可以通过claude code / codex等常见架构在本地端持久化部署

实盘公开:

系统设计

Predict-Raven围绕Market Pulse这一核心组件设计:让 AI 自主评估事件发生的概率,动态地从信息源收集证据,将其与市场隐含的赔率对比,综合交易的edge和资金回报效率给出交易指示。

为什么让 Agent 来做这件事

  1. 在复杂推理能力上超过人类 — Agent 事实上在复杂任务上的推理能力已经接近或者超过人类水平。更多时候,人类的优势主要在于更好的信息源而不是推理,但这一差距可以通过工程能力弥合。核心分析能力已经到位。
  2. 覆盖面广且时效性强 — Agent 能 7×24 小时同时监控数千个市场,发现任何个人无法跟踪的定价偏差。在新闻爆发时,Agent 能做到秒级响应,人类则至少需要 3 分钟以上,像这样的交易机会在无数个市场都有出现。
  3. 预测市场仍处于蓝海 — 政治和科技预测市场中,多数参与者缺乏清晰的定价模型,且普遍畏惧库存管理和逆向选择风险。系统化的 Agent 交易在这些领域面临的竞争极少。哪怕在体育市场,在 moneyline 以外也有很多市场。

核心定位

  • Agent 下单、决策思路全部在网页上公开
  • Agent 在云端持续运行,而非本地脚本临时执行,不需要人类介入
  • 已使用 @polymarket/clob-client-v2,抵押品默认 pUSD;V2 切换日 2026-04-28 11:00 UTC,cutover runbook 见 docs/internal/plan/2026-04-28-v2-cutover-runbook.md

快速开始

通过 AI Agent(Claude Code / Codex / OpenClaw)自然语言快速开始

前置:你需要先装好 Claude CodeCodex CLI 任一个,git clone 本仓库后在仓库目录里启动它,再开始下面 4 步。

1. 准备环境

对 Agent 说:

帮我装好 predict-raven 需要的依赖

预期:Agent 会跑 pnpm install + pnpm build,告诉你环境是否就绪。如果你电脑上还没装 Node.js / pnpm,它也会先把这两样装上。这一步不需要 Docker、也不需要真钱包。

2. 配置资金

Polymarket 钱包凭据可以从 polymarket.com → Settings → Export Wallet 拿到。新建 .env.live-test(参考 .env.example 模板),把这 4 个字段填进去:

  • PRIVATE_KEY — 钱包私钥
  • FUNDER_ADDRESS — Polymarket proxy wallet 地址
  • SIGNATURE_TYPE — 签名类型(01
  • CHAIN_ID137(Polygon mainnet)

填完后对 Agent 说:

我想配置钱包

预期:Agent 会读取你的 .env.live-test,确认钱包能连上 Polymarket,并打印钱包地址和当前余额。如果有字段没填,会立刻告诉你缺哪一个。

3. 获取推荐,不下单

对 Agent 说:

帮我推荐一些交易,不用下单

预期:Agent 会列出几个推荐交易,每条带上市场、方向、押注金额,以及它估算的胜率优势(edge)和资金回报效率。完整的推理过程也会落盘成 markdown,方便你回头复盘。这一步不会真的下单,所以钱包里没有 USDC 也能完整跑通。

4. 实盘交易

对 Agent 说:

实盘运行 pulse

预期:Agent 会按上一步的推荐真实下单,完成后告诉你成交了哪几笔、哪些被拒。

想看具体的 pnpm 命令、环境变量、归档目录,见 docs/diagrams/dev-reference.md

架构总览

系统分为四层,数据从上到下流动:

┌─────────────────────────────────────────────────────────────┐
│  Layer 1 · Research / Pulse                                 │
│  从 Polymarket 抓取市场列表,生成 Pulse 候选池              │
│  产物 → runtime-artifacts/reports/pulse/...                 │
└───────────────────────────┬─────────────────────────────────┘
                            ▼
┌─────────────────────────────────────────────────────────────┐
│  Layer 2 · Decision / Runtime                               │
│  orchestrator 将 Pulse + 持仓上下文 → 结构化决策            │
│  主路径: pulse-direct │ legacy: provider-runtime            │
└───────────────────────────┬─────────────────────────────────┘
                            ▼
┌─────────────────────────────────────────────────────────────┐
│  Layer 3 · Execution / Risk                                 │
│  服务层硬风控裁剪 → executor 下单 / 同步 / 止损 / flatten   │
│  FOK 市价单 · 单笔≤15% · 总敞口≤80% · 回撤≥30% halt       │
└───────────────────────────┬─────────────────────────────────┘
                            ▼
┌─────────────────────────────────────────────────────────────┐
│  Layer 4 · State / Archive / UI                             │
│  DB / 本地状态 / runtime-artifacts 归档 / apps/web 展示     │
└─────────────────────────────────────────────────────────────┘

Provider 切换

系统不绑定 AI 框架,Codex / Claude Code / OpenClaw 互相替换只需改一行:

AGENT_RUNTIME_PROVIDER=codex        # 可选:codex / claude-code / openclaw

自定义 Agent 通过 <PROVIDER>_COMMAND 配置模板命令,示例和占位符见 .env.example

决策引擎

当前有两种决策策略,由 AGENT_DECISION_STRATEGY 环境变量控制:

pulse-direct(当前默认主路径)

Pulse markdown → 正则/表格解析 → PulseEntryPlan
                                        ↓
当前持仓 → reviewCurrentPositions → hold/reduce/close
                                        ↓
           monthlyReturn 排序(top 4)→ 20% batch cap
                                        ↓
                   composePulseDirectDecisions → TradeDecisionSet

不依赖外部 LLM 进程,直接从 Pulse 结构化章节提取开仓候选,按 monthlyReturn = edge / monthsToResolution 排序,取 top 4,单轮总下注不超过 bankroll 的 20%。

provider-runtime(legacy 对照)

通过 spawn 外部进程(Codex / OpenClaw / Claude Code CLI),把 Pulse + 持仓上下文传给 LLM,解析 stdout 得到 TradeDecisionSet。仍可用,但不再是默认路径。

风控体系

核心思路:风控不靠提示词,而是服务层硬规则。 无论上游是哪种 provider、哪种决策策略,只要进入 orchestrator / executor 链路就受统一约束——Agent 的推理错误、异常数据、模型越权都无法绕过。三级防线 + Pulse 前置校验,全部在下单前裁剪;单个持仓越线强制止损;整体回撤越线直接 halt 且只有管理员能恢复(fail-closed)。

系统级

规则 阈值 效果
组合回撤 halt 净值相对高水位回撤 ≥ 30% 进入 halted,禁止新开仓
恢复 仅管理员 resume fail-closed 设计

仓位级

规则 阈值
单仓止损 浮亏 ≥ 30%
止损优先级 高于常规策略动作

执行级

规则 默认值
下单类型 FOK 市价单
单笔上限 资金的 15%
最大总敞口 资金的 80%
单事件敞口上限 资金的 30%
最大并发持仓 22
最小交易额 $5
最小有效额度 低于此直接丢弃

Pulse 级

  • 必须来自真实 fetch_markets.py 抓取,不再有 mock fallback
  • Pulse 超龄(>120 分钟)或候选不足(<1 个)视为风险状态,本轮禁止新 open
  • opentoken_id 必须来自 Pulse candidates

完整规则见 risk-controls.md

环境变量

完整模板:.env.example

分四组理解:

关键变量 说明
共享 AUTOPOLY_EXECUTION_MODE DATABASE_URL REDIS_URL AUTOPOLY_LOCAL_STATE_FILE 执行模式(paper/live)、基础设施连接
Web ADMIN_PASSWORD ORCHESTRATOR_INTERNAL_TOKEN 管理员鉴权
Executor PRIVATE_KEY FUNDER_ADDRESS SIGNATURE_TYPE CHAIN_ID Polymarket 钱包与链配置
Orchestrator AGENT_RUNTIME_PROVIDER AGENT_DECISION_STRATEGY PULSE_* CODEX_* Provider 选择、Pulse 抓取、风控参数

如果 Polymarket 凭据放在相邻仓库,可以设 ENV_FILE=../pm-PlaceOrder/.env.aizen。真实资金测试建议固定使用独立的 .env.live-test

资金与账号配置

Polymarket 下单链路至少需要四个字段:

  • PRIVATE_KEY — 钱包私钥(建议用 Polymarket 的代理钱包而不是主钱包)
  • FUNDER_ADDRESS — Polymarket proxy wallet 地址(有 collateral 的那一个)
  • SIGNATURE_TYPE01,取决于钱包类型
  • CHAIN_ID137(Polygon mainnet)

建议按用途拆独立文件,都不进 git:

  • .env.live-test — 真金实盘凭据
  • .env.<wallet-name>(如 .env.pizza)— 按钱包名拆分,避免混用

Agent 每次 preflight 都会打印当前 ENV_FILE、钱包地址、collateral 金额,对不上立刻终止,避免错用钱包。

外部依赖仓库

vendor/manifest.json 锁定了以下外部仓库的具体 commit:

仓库 用途
polymarket-trading-TUI 交易终端和 CLOB 接线参考
polymarket-market-pulse Pulse 研究输入
alert-stop-loss-pm 止损逻辑参考
all-polymarket-skill Backtesting、Monitor、Resolution 等 skill 参考
pm-PlaceOrder 下单参考和本地凭据源

运行 pnpm vendor:sync 把它们同步到 vendor/repos/。纯 pnpm build 不需要 vendor,但跑 pulse / trial / live 链路前必须先 sync。

运行归档

所有运行产物写入 runtime-artifacts/(已 .gitignore),由 ARTIFACT_STORAGE_ROOT 控制根目录。

路径 内容
reports/pulse/YYYY/MM/DD/ Pulse markdown + JSON
reports/review|monitor|rebalance/ 组合报告
reports/runtime-log/ 决策运行时解释性日志
pulse-live/<timestamp>-<runId>/ Pulse Live 运行产物
live-test/<timestamp>-<runId>/ Stateful 运行产物(失败时含 error.json
checkpoints/trial-recommend/ Paper 推荐断点续跑检查点
local/paper-state.json Paper 默认状态文件

失败归档(按 AGENTS 约定)写入 run-error/,包含失败阶段、核心上下文、原因摘要和下一步命令。

待办

  • 高优 · 2026-04-21 记入 — Pulse 流程人为检查与优化(端到端:prompt / 技能文档、候选与归档质量、Illustration/pulse-live-flow.md 等与真实运行对齐)。

文档索引

历史 handoff 和一次性探索稿归档在 Wasted/README.md

Reviews (0)

No results found