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