今天在 GitHub Trending 上看到一个相当硬核的项目:Clodds(Claude + Odds)。一句话概括——这是一个跑在你自己机器上的 AI 交易终端,你可以用日常对话的方式,同时操作预测市场、现货、杠杆合约、链上 DeFi 甚至 Bittensor 挖矿。它的作者在 12 天里把它做成了一个功能完整的自主交易 Agent,并提交到了 Solana 生态的 Colosseum Agent Hackathon。
一、项目概述
Clodds 要解决的问题很明确:交易工具太碎、太分散。想玩预测市场要去 Polymarket,玩合约要去 Binance,玩链上要去 Jupiter,每一家都有独立的 API、认证、前端和风控逻辑。Clodds 想做的,是把这些都收进一个"对话式终端"里。
它的核心特性可以概括为几组数字:
- 21 个消息渠道:Telegram、Discord、Slack、WhatsApp、Teams、Signal、Matrix、iMessage、LINE、Nostr、Twitch,外加内置 WebChat。也就是说你在哪个聊天软件里都能下单。
- 10 个预测市场 / 7 家合约交易所:预测市场覆盖 Polymarket、Kalshi、Betfair、Smarkets、Drift、Opinion.xyz、Predict.fun 等;合约覆盖 Binance、Bybit、Hyperliquid、MEXC、Drift、Percolator、Lighter,杠杆最高到 200x。
- 118+ 交易策略、119 个内置 Skill:动量、均值回归、到期衰减、DCA、鲸鱼追踪、跟单、跨平台套利等。
- 统一风控引擎:熔断、VaR/CVaR、波动率制度识别、压力测试、Kelly 仓位、日亏损限制和 kill switch。
- 完整的链上 Integration:Solana 侧接 Jupiter、Raydium、Orca、Meteora、Kamino、MarginFi、Solend、Pump.fun、Bags.fm;EVM 侧接 Uniswap V3、1inch、PancakeSwap、Virtuals Protocol,覆盖 ETH / Arbitrum / Optimism / Base / Polygon。
值得单独拿出来说的是它的预测市场深度:Clodds 对 Polymarket 的 BTC/ETH/SOL/XRP 二元市场有专门优化,支持 5 分钟(仅 BTC)、15 分钟、1 小时、4 小时和日线轮次,内置轮次发现、时间门控和 4 套自动化策略——这基本是把高频预测交易当成主战场在做。
二、技术原理
分层架构
从 README 给出的架构图看,Clodds 是典型的分层 + 多适配器设计,自上而下分为五层:
- Gateway & UI 层:HTTP / WebSocket、鉴权、限流,宣称支持 1000 个并发连接,并把 21 个消息渠道统一成一套入站协议。
- AI Agents 层:4 个 Agent(Main / Trading / Research / Alerts)分工,配 119+ Skill、18 个工具和 LanceDB 语义记忆。
- 统一策略与风控层:118+ 策略 + 风控引擎 + 回测 + Trade Ledger + 仓位管理 + 套利检测 + MEV 保护 + 智能路由。
- 执行与数据层:预测市场、Solana DeFi、EVM DeFi、合约、链上 Perps 五大执行域,共享订单构造、余额检查、滑点估算、手续费计算和结算轮询。
- 持久化层:SQLite 存本地配置与聊天记录,LanceDB 存语义向量,PostgreSQL 存交易历史与分析,三者互补。
这套设计的巧妙之处在于:把"渠道"和"交易所"都抽象成适配器,中间用统一的策略与风控层收口。新增一个交易所,只需实现执行域接口;新增一个聊天平台,只需实现渠道适配器。
技术栈与选型
从 package.json 能读出非常清晰的技术画像:
{
"name": "clodds",
"version": "1.9.0",
"bin": { "clodds": "./dist/cli/index.js" },
"engines": { "node": ">=22.0.0" }
}
- 语言与运行时:TypeScript 5.3 + Node.js 22(
tsconfig.json里strict: true、target: ES2022、module: CommonJS),说明它优先保证类型安全和 Node 22 新特性。 - AI 大脑:
@anthropic-ai/sdk,主模型是 Claude,另有 GPT-4、Gemini、Groq、Together、Fireworks、AWS Bedrock、Ollama 共 8 家 LLM Provider 可切换。 - 链上交互:
@solana/web3.js、@solana/kit、@solana/spl-token、ethers,配合各家协议的专业 SDK(@jup-ag/api、@raydium-io/raydium-sdk-v2、@orca-so/whirlpools、@meteora-ag/dlmm、@kamino-finance/klend-sdk、@wormhole-foundation/sdk等)。 - 合约交易所:
binance、bybit-api、hyperliquid,加上@drift-labs/sdk。 - 消息渠道:
grammy(Telegram)、discord.js、@slack/bolt、@whiskeysockets/baileys(WhatsApp)、tmi.js(Twitch)。 - 存储与记忆:
better-sqlite3(本地)、pg(分析)、@xenova/transformers(本地 embedding 模型all-MiniLM-L6-v2,量化版)。 - 任务调度:
bullmq+ioredis(Redis 队列)、node-cron。
这里有几个值得注意的工程选择:
其一,本地化 embedding。 Clodds 用 @xenova/transformers 在本地跑 Xenova/all-MiniLM-L6-v2 量化模型,而不是调云端 embedding API。这意味着语义记忆不需要额外付费、不泄露数据,代价是首次启动要下载模型。它的 postinstall 脚本和 Dockerfile 都专门做了"预热缓存",避免第一次请求卡住:
RUN node -e "const{pipeline,env}=require('@xenova/transformers');env.cacheDir='./.transformers-cache';pipeline('feature-extraction','Xenova/all-MiniLM-L6-v2',{quantized:true}).then(()=>console.log('Model cached')).catch(e=>console.error('Model cache failed:',e))"
其二,Skill 的懒加载。 build 脚本里有一段内联 Node 代码,专门把 src/skills/bundled/*/SKILL.md 复制到 dist:
"build": "tsc && node -e \"...readdirSync('src/skills/bundled')...cpSync(s,t)...\""
配合 README 中"lazy-loaded extensions(no missing dependencies crash)“的说明可以推断:119 个 Skill 是按需加载的,某个 Skill 的依赖没装也不会让整个应用崩溃。对交易终端这种"无人值守"场景,这个设计非常关键——毕竟你不想因为一个冷门交易所 SDK 缺失,导致整个进程起不来。
其三,多数据库分工。 SQLite 负责本地配置、聊天记录和挖矿收益,LanceDB 负责语义记忆与向量检索,PostgreSQL 负责交易历史、分析和回测。这是一个很务实的组合:单机场景零依赖即可跑(SQLite + LanceDB),需要多机分析时再上 Postgres。
关键设计:Trade Ledger(决策审计)
在 AI 交易这个领域,**“AI 到底为什么下这一单”**是监管和信任的核心问题。Clodds 的 Trade Ledger 给出了一个相当完整的答案:
- 决策捕获:每笔交易、跟单和风控决策都记录推理过程;
- 置信度校准:追踪 AI 预测准确率与实际置信度的偏差(即模型是否"过度自信”);
- 完整性哈希:可选对记录做 SHA-256 哈希,防止篡改;
- 链上锚定:把哈希锚定到 Solana / Polygon / Base,形成不可篡改的证明。
clodds ledger stats # 决策统计
clodds ledger calibration # 置信度 vs 准确率分析
clodds ledger verify <id> # 校验记录完整性
clodds ledger anchor <id> # 把哈希锚定到链上
这套机制本质上是把"可解释性"做成了可验证的工程资产,而不是一句营销话术。
套利检测的学术底色
Clodds 的套利模块明确标注基于论文 arXiv:2508.03474,支持内部套利、跨平台套利和组合套利三类,配语义匹配、流动性打分和 Kelly 仓位:
YES: 45c + NO: 52c = 97c → Buy both → 3c profit
Polymarket @ 52c vs Kalshi @ 55c → 3c spread
有意思的是它默认是 dry-run 模式——因为跨平台套利涉及货币和结算差异,真金白银之前先跑模拟,这是一个很克制的默认值。
三、安装与快速开始
环境要求
- Node.js >= 22.0.0
- 一个 Anthropic API Key(主模型)
- 可选:Redis(BullMQ 队列)、PostgreSQL(分析)、各交易所 API Key
安装
最丝滑的方式是走 npm 全局安装,然后用向导完成配置:
npm install -g clodds --loglevel=error
clodds onboard
onboard 是交互式安装向导,会带你走完 API Key、消息渠道配置,并自动启动 gateway。完成后浏览器打开 http://localhost:18789/webchat 就是自带的前端。
如果你喜欢从源码跑:
git clone https://github.com/alsk1992/CloddsBot.git && cd CloddsBot
npm install && cp .env.example .env
# 在 .env 里填入 ANTHROPIC_API_KEY
npm run build && npm start
最小可用配置
# 必填
ANTHROPIC_API_KEY=sk-ant-...
# 渠道(任选其一或更多)
TELEGRAM_BOT_TOKEN=...
DISCORD_BOT_TOKEN=...
# 交易
POLYMARKET_API_KEY=...
SOLANA_PRIVATE_KEY=...
数据默认存放在 ~/.clodds/(SQLite 会在首次运行时自动创建)。Docker 部署也很直接:
docker compose up --build
Dockerfile 采用多阶段构建,最终镜像基于 node:22-bookworm-slim,暴露 18789 端口,并内置了 /health 健康检查:
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD node -e "fetch('http://localhost:18789/health').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))"
四、使用方法与实战
CLI 命令一览
clodds onboard # 交互式配置向导
clodds start # 启动 gateway
clodds repl # 交互式 REPL
clodds doctor # 系统诊断
clodds secure # 安全加固
clodds locale set zh # 切换语言(支持 10 种语言)
clodds mcp # 启动 MCP server(供 Claude Desktop/Code 使用)
clodds mcp install # 自动配置 Claude Desktop/Code
其中 clodds mcp 这一条尤其值得一提:它可以把全部 119 个 Skill 暴露成 MCP 工具,让 Claude Desktop 或 Claude Code 直接调用。也就是说,你可以把 Clodds 当成一个"交易能力后端",挂在通用 AI 助手上。
对话式下单
真正好玩的部分在聊天窗口里。合约交易示例:
/futures long BTCUSDT 0.1 10x
/futures sl BTCUSDT 95000
第一行是 10 倍杠杆做多 0.1 个 BTC 合约,第二行是设置止损价。
链上 Perps(Percolator)
Clodds 还接了 Anatoly Yakovenko(Solana 联合创始人)的 Percolator 协议,可以无 KYC 直接做链上永续:
/percolator status # Oracle 价格、OI、资金费率、价差
/percolator positions # 当前持仓
/percolator long 100 # 开 100 美元多单
/percolator short 50 # 开 50 美元空单
/percolator deposit 500 # 存入 500 USDC 保证金
/percolator withdraw 100 # 提取 100 USDC 保证金
配置只需三个环境变量:
PERCOLATOR_ENABLED=true
PERCOLATOR_SLAB=<pubkey>
PERCOLATOR_ORACLE=<pubkey>
Bittensor 挖矿
除了交易,Clodds 还能挖 TAO:
clodds bittensor setup # 向导:Python、btcli、钱包、配置
clodds bittensor status # 查看挖矿状态
clodds bittensor wallet balance # 查 TAO 余额
clodds bittensor register 64 # 注册 Chutes (SN64) 子网
聊天里用 /tao status、/tao earnings daily、/tao wallet 即可。它通过 @polkadot/api 管理钱包,用 Python sidecar 调 btcli,收益落 SQLite,并在 /api/bittensor/* 暴露 HTTP 接口。
Agent 论坛与市场
这是我觉得最有"赛博味"的部分——Clodds 内置了一个 仅限 Agent 参与的论坛(cloddsbot.com/forum),AI Agent 可以自主讨论行情、分享策略、投票排序,人类只能围观。注册需要服务端验证你有一个在跑的 Clodds 实例(校验 /health):
curl -X POST https://api.cloddsbot.com/api/forum/agents/register \
-H "Content-Type: application/json" \
-d '{"name": "MyAgent", "model": "claude", "instanceUrl": "https://my-clodds.example.com"}'
配套的 Agent Marketplace 更激进:Agent 之间可以用 Solana 上的 USDC 托管交易,买卖代码、API 服务和数据集。买家付款进 escrow → 链上验证 → 卖家交付 → 买家确认 → 放款(卖家拿 95%,平台抽 5%),还有 72 小时自动放款的 cron 兜底。
Token 一键发币
通过 Meteora 动态绑定曲线,一次 API 调用即可发币($1 USDC,走 x402 支付):
curl -X POST https://compute.cloddsbot.com/api/launch/token \
-H "Content-Type: application/json" \
-H "X-Agent-Id: agent_1707123456_abc123" \
-H "X-Payment: <x402-usdc-signature>" \
-d '{"name": "MyToken", "symbol": "MTK", "creatorWallet": "YOUR_SOLANA_WALLET"}'
它自带 90/10 的创作者手续费分成、反狙击保护(起始 500bps 手续费逐步衰减到 100bps)、达标后自动迁移到 DAMM v2 的流动性,以及"只有注册 Agent 才能发币"的门槛设计。
五、常见问题与解决方案
Q1:npm install 卡在原生模块编译怎么办?
项目依赖 better-sqlite3、sharp、puppeteer 等含原生绑定的包,且 postinstall 里专门有 fix-native-bindings.js、fix-anchor-bn-export.js 两段修补脚本。如果编译失败,优先确认 Node 版本是否 >= 22(node -v),并确保构建工具链(macOS 上是 Xcode Command Line Tools)已安装。安装时加 --legacy-peer-deps 可绕过部分 peer 依赖冲突。
Q2:第一次启动感觉"卡住"了?
很可能是本地 embedding 模型在下载。Xenova/all-MiniLM-L6-v2 需要联网拉取并缓存到 .transformers-cache。Docker 镜像里已经预热过一次,如果用源码跑,耐心等第一次下载完成即可;网络受限的话,可以提前手动预热。
Q3:某个交易所报"依赖缺失"导致崩溃?
正常情况下不会——119 个 Skill 是懒加载的,缺依赖只会让对应 Skill 不可用,不会拖垮主进程。如果你真的遇到整体崩溃,先跑 clodds doctor 做系统诊断,它会告诉你具体是哪一环出了问题。也可以用 /skills 查看各 Skill 的加载状态。
Q4:套利功能开了但没动作? 套利模块默认是 dry-run。这是有意为之——跨平台套利存在货币换算和结算周期差异,必须先把参数、阈值和资金规模验证清楚,再切到实盘。别急着关它。
Q5:担心 AI 一把梭哈怎么办?
善用风控层:熔断器、日亏损上限、Kelly 仓位和 kill switch 都是现成的。另外打开 Trade Ledger(clodds config set ledger.enabled true),让每一笔决策都有审计记录和置信度校准,事后可复盘、可验证、可链上锚定。
Q6:能接到 Claude Desktop / Claude Code 吗?
可以。运行 clodds mcp install 自动配置,或 clodds mcp 手动起 MCP server,把 119 个 Skill 作为 MCP 工具暴露出去。
Q7:数据存在哪?怎么备份?
本地 SQLite 在 ~/.clodds/ 下自动创建;Docker 部署时通过 CLODDS_STATE_DIR=/data 统一挂载。语义记忆在 LanceDB,分析数据在 PostgreSQL。README 提到持久化层有"3x 复制 + 压缩"的备份同步设计,生产环境建议把 /data 挂到持久卷。
六、总结
Clodds 最打动我的地方,不是它接了 10 个预测市场和 7 家合约所这些"数量上的堆料",而是它把几件原本互相割裂的事收进了同一套抽象里:渠道是适配器、交易所是适配器、策略和风控是统一中间层、决策有可审计的账本、能力可以通过 MCP 对外开放。
它当然不是一个"装上就能躺赚"的印钞机——README 里 dry-run 默认值、风控开关、链上锚定这些设计,反而透出一种对市场风险的清醒。把它当成一个自托管、可编程、对话驱动的交易中枢,配上你自己的策略和纪律,它才真正有价值。
如果你对预测市场、链上 DeFi 或者"让 AI 管钱"这条路线感兴趣,Clodds 值得拉下来在本地跑一遍。项目地址:
https://github.com/alsk1992/CloddsBot
(温馨提示:涉及真金白银的交易功能,请务必先在小额、dry-run 环境下充分验证,再考虑放大规模。)