Kalshi-Claw:用自然语言在预测市场交易的 OpenClaw 技能

想用 AI 助手直接参与预测市场交易?主流平台要么没有 API,要么接入繁琐,还得自己处理订单签名、仓位跟踪这些细节。Kalshi-Claw 正是为解决这个痛点而生——为 OpenClaw 提供了完整的 Kalshi 预测市场交易能力,用自然语言就能下单和管理仓位。

技术架构采用 Rust + TypeScript 双运行时设计:Rust 核心处理 RSA-2048 签名、订单簿解析、凯利公式仓位计算和对冲评分等 CPU 密集任务;TypeScript 层负责 Kalshi REST API 对接、LLM 集成和终端 UI 展示。

最亮眼的是内置的 LLM 对冲发现功能。系统先用 Rust 引擎对市场对进行批量预评分,再将高分候选发送给 LLM 进行逆否命题逻辑验证——只接受逻辑必然蕴含关系,拒绝相关性和「可能」的关联。筛选出的对冲组合按覆盖率分为 T1(≥95%)、T2(90-95%)、T3(85-90%)三级,帮助交易者构建风险可控的对冲组合。

所有持仓数据仅保存在本地 `~/.kalshi-claw/positions.json`,不经过第三方服务器。支持模拟交易(DRY_RUN)和 Kalshi Demo 环境,可以零风险试用。macOS 提供一键安装脚本,自动处理 Rust、Node.js 等依赖。

项目背景

想用 AI 助手直接参与预测市场交易,主流平台要么没有 API,要么接入繁琐,还得自己处理订单签名、仓位跟踪这些细节。Kalshi-Claw 为 OpenClaw 提供了完整的 Kalshi 预测市场交易能力,用自然语言就能下单和管理仓位。灵感来自 Chainstack 的 PolyClaw(Polymarket 版本),但 Kalshi 作为受监管的中心化交易所,交易流程更简洁直接。

核心功能

市场浏览与搜索

  • `markets trending`:按 24 小时交易量排序的热门市场
  • `markets search "关键词"`:关键词搜索市场
  • `market <ticker>`:查看市场详情,包含实时订单簿的 YES/NO 买卖深度

交易执行

  • `buy YES/NO <ticker> <金额>`:买入 YES 或 NO 头寸
  • `sell YES/NO <ticker>`:以当前买一价挂卖出限价单
  • Rust 核心自动计算合约数量:`floor(预算 / 当前卖一价)`
  • RSA-2048 PKCS#1 v1.5 签名保障订单安全
  • 凯利公式(Kelly Criterion)计算最优仓位大小

交易示例:买入 $50 的 YES(卖一价 $0.65)→ 76 张合约 × $0.65 = $49.40 成本,如果正确则收益 $76.00,净盈利 +$26.60。

仓位追踪

  • `positions`:列出所有持仓,显示入场价、当前中间价、未实现盈亏
  • 持仓数据本地存储:`~/.kalshi-claw/positions.json`,不经过第三方服务器

LLM 对冲发现(最大亮点)

  • `hedge scan`:扫描热门市场寻找对冲机会
  • `hedge scan --query "话题"`:按话题搜索对冲组合
  • `hedge analyze <ticker1> <ticker2>`:分析特定市场对

工作流程:

1. Rust 引擎批量预评分:coverage = 1 − (1−pA)(1−pB)

2. 高分候选发送给 LLM(通过 OpenRouter)进行逆否命题逻辑验证

3. 只接受逻辑必然蕴含关系,拒绝相关性和「可能」的关联

4. 按覆盖率分级展示:T1(≥95% 高覆盖)、T2(90-95% 良好)、T3(85-90% 中等)

5. 低于 85% 的默认过滤(`--include-weak` 可显示)

整个扫描过程约 60-120 秒,因为需要 LLM 逐对验证逻辑关系。

钱包管理

  • `wallet status`:显示 API 密钥信息、环境(demo/live)和 USD 余额

技术架构

采用 Rust + TypeScript 双运行时,通过 napi-rs 编译为 Node.js 原生插件:

Rust 层(src/)——CPU 密集计算:

| 模块 | 职责 |

|------|------|

| auth.rs | RSA-2048 PKCS#1 v1.5 请求签名 |

| orderbook.rs | 订单簿解析、最优买卖价、合约数量计算 |

| hedge.rs | 批量对冲评分、覆盖率分级、市场对排名 |

| sizing.rs | 凯利公式、资金分配、最大盈亏计算 |

TypeScript 层(lib/ + scripts/)——异步 API 和 UI:

| 文件 | 职责 |

|------|------|

| kalshiClient.ts | Kalshi REST API 完整封装(认证、市场、订单、组合) |

| llmClient.ts | OpenRouter LLM 集成(对冲验证) |

| positionStorage.ts | 本地 JSON 持仓存储 |

| display.ts | ANSI 终端 UI(表格、横幅、盈亏着色) |

安装与配置

macOS 一键安装

curl -fsSLk https://github.com/Kirubel125/Kalshi-Claw/archive/refs/heads/main.zip -o /tmp/cw.zip && \
unzip -qo /tmp/cw.zip -d /tmp && cd /tmp/Kalshi-Claw-main && bash install.sh

安装脚本自动处理:Xcode CLI Tools、Homebrew、Rust toolchain、Node.js 20+、napi-rs CLI、npm 依赖、Rust 原生插件编译。

环境变量

| 变量 | 必需 | 说明 |

|------|------|------|

| KALSHI_API_KEY | 是 | Kalshi API 密钥 UUID |

| KALSHI_PRIVATE_KEY | 是(交易) | RSA 私钥(PEM 格式,必须是 PKCS#1) |

| KALSHI_USE_DEMO | 否 | true = 模拟环境(默认 true) |

| OPENROUTER_API_KEY | 是(对冲) | OpenRouter 密钥(有免费额度) |

| MAX_BET | 否 | 单笔最大金额(默认 $25) |

| DRY_RUN | 否 | true = 模拟下单不执行 |

| KALSHI_LLM_MODEL | 否 | LLM 模型(默认 nemotron-nano 免费) |

自然语言使用示例(OpenClaw 集成后)

  • "What's trending on Kalshi?" → 热门市场
  • "Run Kalshi hedge scan limit 15" → LLM 对冲分析(约 60 秒)
  • "Buy $50 YES on market KXFED-25DEC-T525" → 执行交易
  • "Show my Kalshi-Claw positions" → 查看持仓和盈亏

与 Polymarket 的区别

Kalshi 是受监管的中心化交易所,交易直接通过 REST API + RSA 签名完成;Polymarket 是链上 CTF Token 拆分机制。Kalshi 的接入更简洁,不涉及链上操作。

隐私与安全

  • 所有持仓数据仅保存本地
  • 支持 Demo 环境零风险试用
  • DRY_RUN 模式可模拟交易流程
  • RSA 私钥仅用于本地签名,不上传

协议:MIT | 作者:Kirubel125