1. 为什么要在 OpenClaw / Hermes Agent 里接 MCP 行情链路
如果你正在折腾 AI 交易,大概率会遇到一个很现实的问题:模型能聊天、能写代码,但一到"帮我看看 603919 现在什么价""查一下今天有哪些未成交委托"这种需要真实数据的动作,就抓瞎了。原因不复杂——大模型本身没有行情通道,也没有交易账户的访问权限,它需要一个标准化的工具层把自然语言翻译成具体的接口调用。MCP(Model Context Protocol)就是干这个的,它把一个个能力封装成"工具",让 Agent 按需调用。
OpenClaw 和 Hermes Agent 都属于支持 MCP 的 Agent 运行时,区别在于前者偏本地工具编排,后者更偏向多步任务规划。两者共同点是:只要 MCP 服务注册好,你就能用自然语言驱动本机的同花顺账户,做行情查询、持仓查看、模拟下单这些操作。默认是模拟模式(dry_run / simulate),不会真实成交,这点对新手很友好。
但这里有个绕不开的坑:每个 MCP 服务、每个模型供应商都要单独配 Key,配置散落在 config.toml、settings.json、环境变量里,改一处忘一处。我试过同时挂三个 MCP 服务,光 Key 就管了四套,最后自己都记不清哪个是哪个。所以这篇的核心思路是——用 TaoToken 统一 Key 和 API 通道,把模型侧的鉴权收敛到一个入口,MCP 服务只管业务逻辑,不再各自维护一套凭证。
这篇会给出 OpenClaw 的 config.toml 和 Hermes Agent 的 settings.json 可复制骨架,以同花顺行情为示例数据源,演示一次完整的行情查询调用,并附上连通性验证和常见报错排查。目标很明确:让你跑通最小可用的 AI 交易链路,而不是停留在"配置看起来对但就是不通"的状态。
适合谁看:已经在用 OpenClaw 或 Hermes Agent、想接入 MCP 工具做行情/交易查询、但被多套 Key 和配置搞晕的人。如果你还没装 Agent 运行时,建议先把基础环境跑起来再回来。
2. TaoToken 前置:统一 Key 与 API 通道
在动手改配置文件之前,先把 TaoToken 这边的准备工作做完。这一步不复杂,但顺序别搞反——先拿到 Key,再填进 Agent 配置,否则后面验证会一直报鉴权错误。
TaoToken 在这里扮演的角色是"模型侧的统一入口"。你的 OpenClaw / Hermes Agent 在调用大模型做意图理解时,走的是 TaoToken 的 API 通道;而 MCP 服务(比如同花顺行情)走的是本地进程通信,两者互不干扰。这样拆分的好处是:换模型、加模型、调额度都只动 TaoToken 一处,MCP 配置完全不用碰。
具体操作:
第一,打开官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 注册并登录。建议用常用邮箱,后面找回 Key 方便。
第二,进入控制台 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,在 API Keys 页面创建一个新 Key。命名建议带上用途,比如openclaw-mcp-ths,方便以后区分。
第三,复制 Key 后先存到本地安全位置。注意:Key 只在创建时完整显示一次,关掉页面就看不到了,别问我怎么知道的。
第四,如果你打算长期跑编码或 Agent 任务,可以顺手看下 Coding Plan https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,按量或包月看你使用频率。短期测试用按量就够。
注意:API 基础地址是 https://taotoken.net/api ,配置时不要带 UTM 参数,那是给网页跳转用的,填进代码里会 404。
模型侧想先验证 Key 是否可用,可以直接在模型对话 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 里发一条消息测试,能正常返回就说明 Key 没问题。这一步能帮你排除掉后面一半的"配置对了但不通"的情况。
3. 可复制配置:config.toml 与 settings.json 骨架
这一节是重点,直接给可复制的配置骨架。OpenClaw 用 config.toml,Hermes Agent 用 settings.json,两者结构不同但思路一致:模型通道指向 TaoToken,MCP 服务指向本地同花顺网关。
先看 OpenClaw 的 config.toml。放在项目根目录或~/.openclaw/下,具体路径看你的安装方式:
# OpenClaw 配置骨架 [model] provider = "taotoken" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken密钥" model_name = "claude-3-5-sonnet" timeout = 60 [mcp_servers.rhths_trade] command = "python" args = ["-m", "rhths_mcp.server"] env = { RHTHS_ALLOW_LIVE = "0" } transport = "stdio" [mcp_servers.rhths_trade.options] default_mode = "simulate" confirm_live = false几个关键点解释一下。base_url必须是https://taotoken.net/api,不要加斜杠结尾,也不要带 UTM。api_key填你刚才创建的 Key。model_name按你实际用的模型填,TaoToken 支持多种模型,具体列表在文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 里能查到。
[mcp_servers.rhths_trade]这一段是注册同花顺 MCP 服务。command和args取决于你的 MCP 服务怎么启动,示例里假设是 Python 模块方式。RHTHS_ALLOW_LIVE = "0"表示默认不允许实盘,这是安全底线,别急着改成 1。
再看 Hermes Agent 的 settings.json:
{ "model": { "provider": "taotoken", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoToken密钥", "model": "claude-3-5-sonnet", "maxTokens": 4096 }, "mcpServers": { "rhths-trade": { "command": "python", "args": ["-m", "rhths_mcp.server"], "env": { "RHTHS_ALLOW_LIVE": "0" }, "transport": "stdio", "options": { "defaultMode": "simulate", "confirmLive": false } } } }Hermes 的字段名是驼峰式,别和 OpenClaw 的蛇形搞混。mcpServers下的 key 就是服务名,后面调用工具时会用到。
同花顺网关自己的配置在%APPDATA%\RHTHS\settings.json,这个文件管的是 hexin / xiadan 的 exe 路径和模式。和 Agent 的 settings.json 是两个文件,别改错地方。网关配置里mode字段控制 simulate / live,GUI 也能改,建议先用 GUI 确认一遍。
提示:两个配置文件里的 Key 建议用环境变量引用,比如
${TAOTOKEN_API_KEY},避免明文提交到 Git。OpenClaw 支持${}语法,Hermes 需要你在启动脚本里 export。
配置改完先别急着跑,下一步做连通性验证。
4. 验证请求:跑通一次行情查询
配置填好之后,最忌讳的就是直接上复杂任务。先用最小请求验证链路,确认模型通道和 MCP 通道都活着,再逐步加操作。
第一步,验证模型通道。在 OpenClaw 或 Hermes 里发一条最简单的消息:
你好,回复 ok 即可如果返回正常,说明 TaoToken 的 Key 和 base_url 没问题。如果报 401,回去检查 Key 有没有复制全;报 404,检查 base_url 是不是多带了路径。
第二步,验证 MCP 服务是否注册成功。在 Agent 里输入:
列出当前可用的 MCP 工具正常情况下会返回 rhths-trade 服务下的一堆工具名,比如 rh_trade_health、rh_market_quote 等。如果列表为空,说明 MCP 服务没启动成功,去看第 5 节的排查。
第三步,做一次健康检查。直接对 Agent 说:
检查 RHTHS 和同花顺是否正常Agent 会调用rh_trade_health,返回网关版本、ths_api 是否可用。再补一句:
现在是模拟还是实盘模式?会触发rh_trade_mode_get,返回 simulate 或 live。这两个都正常,说明 MCP 链路通了。
第四步,跑一次真实行情查询。这是本篇的核心验证:
603919 现在什么价?Agent 会调用rh_market_quote,参数 code 为 603919,返回最新价、涨跌幅、成交量等字段。如果返回了具体数字,恭喜你,最小可用的 AI 交易链路已经跑通。
想再稳一点,可以连续查两个标的:
603919 和 300033 现价多少?这会触发rh_market_price,codes 传数组。返回两条数据就说明批量查询也没问题。
第五步,验证只读的交易查询。说:
帮我看下资金和持仓Agent 会依次调用rh_trade_account和rh_trade_positions,返回可用资金、总资产、持仓明细。这一步能验证交易查询类工具是否正常,注意这些都是只读操作,不会产生任何委托。
到这里,模型通道、MCP 注册、行情查询、交易查询四条链路都验证过了。接下来可以尝试模拟下单:
模拟买入 100 股 600000,用最新价Agent 调用rh_trade_buy,参数 code: 600000,qty: 100,price: zxjg,dry_run: true。返回委托编号就说明写操作链路也通了,而且因为是 dry_run,不会真实成交。
5. 本篇常见错排查
配置和验证过程中,最容易卡在这几个地方。我按出现频率排了序,遇到问题从上往下查。
工具调用失败 / 连接错误。先确认同花顺主程序是否已登录。MCP 网关依赖同花顺的本地接口,没登录的话 ths_api 不可用。然后跑rh_trade_health看网关状态,再检查 Hook 是否部署。Hook 没部署的话,行情和交易接口都会返回连接错误。
rh_system_找不到 exe*。这是路径配置问题。打开%APPDATA%\RHTHS\settings.json,确认 hexin 和 xiadan 的 exe 路径填对了。GUI 里也能改,改完重启网关生效。
条件单无 signal_id。rh_condition_add或rh_condition_run_json返回里才有 signal_id,别自己编。拿到 id 后再调rh_condition_resume或rh_condition_pause。
LIVE_BLOCKED。说明你想做实盘操作,但环境变量RHTHS_ALLOW_LIVE没设成 1,或者调用时没传confirm_live: true。两个条件必须同时满足。实盘有风险,确认清楚再开。
FREE_DAILY_LIMIT。标准版实盘买入加卖出每天合计最多 10 次,超了返回这个错误。改模拟模式,或者升级高级版。测试阶段建议一直用模拟。
问财 / 行情为空。先确认同花顺行情模块是否可用,再检查问财语句是否合法。比如沪深A股;市盈率<20;市值>100亿这种分号分隔的格式,写错了会返回空。
autotrading 列表为空。确认execution_mode是 review 还是 auto,数据存在PythonLog\rhths\data\下的本地 JSON / jsonl 文件里。没有 MySQL 工具,也不连 thsQuant 的 19090 端口,别往那个方向查。
模型返回乱码或截断。检查 TaoToken 的 model_name 是否拼对,maxTokens 是否设得太小。Hermes 默认 4096,复杂任务可以调到 8192。
排查的核心思路是分层:先确认模型通道(TaoToken),再确认 MCP 注册,再确认同花顺网关,最后才是具体工具的参数。一层层往下,别跳步。
6. 下一步:把链路用起来
链路跑通之后,真正的价值在于把它用起来。几个我实测下来比较顺手的组合场景,你可以直接照着说。
开盘前检查,一句话搞定:
检查 RHTHS 健康,看 hexin 和 xiadan 状态,再看资金持仓和今日委托Agent 会依次调rh_trade_health→rh_system_status→rh_trade_account→rh_trade_positions→rh_trade_orders_today,全是只读,安全。
选股加模拟下单:
问财选 5 只低市盈率股票,对第一只拉 stock5d 和 MACD,再模拟买入 100 股最新价工具链是rh_market_select_stocklist→rh_market_stock5d+rh_indicator_calc→rh_trade_buy(dry_run: true)。
持仓复盘:
列出持仓,对每只拉日 K 和 MACD,用文字总结这个会循环调用rh_market_kline和rh_indicator_calc,适合收盘后跑。
如果你打算长期跑编码或 Agent 任务,建议把 Key 管理收敛到 TaoToken 的 Coding Plan https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,按量或包月看频率。接入过程中遇到鉴权或通道问题,去 API Keys 页面 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 重新生成 Key,再对照接入文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 检查 base_url 和参数格式。想先验证模型是否正常,模型对话 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 是最快的入口。
最后提醒一句:实盘操作前务必确认RHTHS_ALLOW_LIVE和confirm_live两个开关,默认模拟模式是你的安全网。先把模拟链路跑顺,再考虑实盘。