1. 京东云上跑 Hermes Agent 与 OpenClaw,Token Plan 到底解决什么问题
如果你在京东云买了一台云主机,想把 Hermes Agent 和 OpenClaw 这两个 AI 工具跑起来,大概率会卡在同一个地方:模型通道怎么接、Key 怎么管、多个工具怎么共用一份额度。Hermes Agent 是一个能自我进化的智能体框架,OpenClaw 是本地优先的 AI 自动化代理,两者都需要调用大语言模型才能干活。问题在于,它们各自有独立的配置文件,一个用config.toml,一个用settings.json,如果每个工具都单独配一套 Key,后面换模型、加工具、做额度控制就会非常乱。
Token Plan 的思路就是把这些统一起来:一份 Key、一个 API 通道,Hermes Agent 和 OpenClaw 都指向同一个入口。这样你在京东云主机上只需要维护一套凭证,新增工具时改一行配置就行。这篇内容面向的是已经在京东云有云主机、准备把这两个工具接上模型通道的开发者,我会给出可直接复制的配置骨架、逐步验证清单,以及我实际部署时踩过的几个坑。
需要先说明的是,TaoToken 在这里扮演的是统一 Key 和 API 通道的角色,官网是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api 。你不需要把它理解成某个特定厂商的专属服务,它就是一个兼容主流 AI 工具调用格式的通道,Hermes Agent 和 OpenClaw 都能直接对接。
2. 前置准备:京东云主机环境与 TaoToken Key
2.1 京东云主机的基础要求
Hermes Agent 和 OpenClaw 对机器本身的要求不算高,但有几个硬性条件。我用的是京东云 2 核 4GB 的通用型实例,系统选 Ubuntu 22.04 LTS,这个配置跑两个工具加一个轻量模型调用完全够用。如果你打算在本地也跑一个 Ollama 做兜底,内存建议拉到 8GB。
网络方面,京东云主机默认能访问公网,但你要确认安全组放行了工具需要的端口。OpenClaw 默认用 18789 做服务通信、1878 做控制台,Hermes Agent 的默认端口是 8080。这些端口在京东云控制台的安全组里要手动加规则,否则本地浏览器打不开。
系统依赖上,两个工具都依赖 Python 3.10+ 和 Node.js 18+。Ubuntu 22.04 自带的 Python 是 3.10,Node 需要自己装。我习惯用 nvm 装 Node,避免和系统包管理器打架。
2.2 获取 TaoToken Key 与通道地址
在开始写配置之前,你需要先拿到 Key。访问 https://taotoken.net/api-keys 这个 deep link 可以直接进到 API Keys 管理页,创建一个新 Key 并复制保存。这个 Key 就是后面config.toml和settings.json里要填的凭证。
通道地址统一用 https://taotoken.net/api ,注意这个地址不带任何查询参数,直接作为 base URL 填进去就行。模型名称方面,TaoToken 兼容主流命名,你在配置里写gpt-4o、claude-3-5-sonnet这类标准名称都能识别。如果你不确定某个模型名是否支持,可以先用模型对话页面测一下,入口在 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
注意:Key 只在创建时完整显示一次,复制后存到你的密码管理器或临时文件里。后面配置两个工具都要用同一个 Key,不要重复创建。
3. 可复制配置:config.toml 与 settings.json 骨架
3.1 Hermes Agent 的 config.toml
Hermes Agent 的配置文件默认在~/.hermes/config.toml,如果没有这个目录就手动建一个。下面是我实测能跑通的骨架,你只需要把api_key换成自己的:
[model] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoTokenKey" default_model = "gpt-4o" max_tokens = 4096 temperature = 0.7 [agent] name = "hermes-jdcloud" workspace = "/root/hermes-workspace" log_level = "info" [tools] enable_browser = true enable_shell = false这里有几个点值得展开。provider写openai-compatible是因为 TaoToken 的接口格式兼容 OpenAI 规范,Hermes Agent 认这个标识。base_url后面不要加/v1,工具内部会自己拼路径,加了反而会 404。default_model你可以换成claude-3-5-sonnet或别的,改完重启服务就生效。
enable_shell我默认设成 false,因为 Hermes Agent 的 shell 工具权限很大,在云主机上跑建议先关掉,等确认流程稳定再按需开启。
3.2 OpenClaw 的 settings.json
OpenClaw 的配置走 JSON 格式,默认路径是~/.openclaw/settings.json。它的结构比 Hermes 稍微细一点,因为要区分对话模型和嵌入模型:
{ "models": { "providers": { "taotoken": { "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoTokenKey", "models": [ { "name": "gpt-4o", "maxTokens": 8192, "temperature": 0.7 }, { "name": "claude-3-5-sonnet", "maxTokens": 8192, "temperature": 0.5 } ] } }, "defaults": { "primary": "taotoken/gpt-4o" } }, "gateway": { "port": 18789, "consolePort": 1878 }, "cache": { "enable": true, "expire": 3600 } }defaults.primary的写法是provider名/模型名,这里 provider 我命名为taotoken,所以写taotoken/gpt-4o。如果你后面想切到 Claude,只改这一行就行,不用动 provider 块。
cache.enable建议开着,OpenClaw 的很多技能会重复调用相似 prompt,缓存能省不少额度。expire设 3600 秒,也就是一小时,对大多数办公自动化场景够用。
3.3 两个配置的对照关系
| 配置项 | Hermes Agent (config.toml) | OpenClaw (settings.json) |
|---|---|---|
| 通道地址 | base_url | models.providers.taotoken.baseUrl |
| Key | api_key | models.providers.taotoken.apiKey |
| 默认模型 | default_model | models.defaults.primary |
| 端口 | 默认 8080 | gateway.port/gateway.consolePort |
| 缓存 | 无内置 | cache.enable |
这张表你可以存下来,后面改配置时对照着找位置,不用每次翻文档。
4. 部署与验证:从启动到确认生效
4.1 启动两个服务
配置写完后,先启动 Hermes Agent。如果你是用 pip 装的,命令是:
hermes agent start --config ~/.hermes/config.toml看到日志里输出model provider initialized: openai-compatible就说明配置被读到了。如果报invalid base_url,检查是不是多写了/v1。
OpenClaw 的启动方式取决于你的安装方式。用 Docker 的话:
docker run -d --name openclaw-core \ -p 18789:18789 -p 1878:1878 \ -v ~/.openclaw:/root/.openclaw \ openclaw/openclaw:latest启动后进容器确认配置挂载正确:
docker exec -it openclaw-core cat /root/.openclaw/settings.json | grep baseUrl输出应该是https://taotoken.net/api,如果显示的是默认地址,说明挂载路径不对,检查-v参数。
4.2 验证模型通道是否通
最直接的验证方式是发一个最小请求。Hermes Agent 自带健康检查:
curl http://localhost:8080/api/health返回{"status":"ok","model":"gpt-4o"}就说明模型通道通了。如果返回model: null,说明 Key 或 base_url 有问题。
OpenClaw 的验证走它自己的 CLI:
docker exec -it openclaw-core openclaw config get models.providers.taotoken.apiKey能打印出你的 Key 就说明配置写入成功。然后再发一条测试对话:
docker exec -it openclaw-core openclaw chat "用一句话介绍你自己"如果返回了正常的模型回复,说明整条链路从 OpenClaw 到 TaoToken 再到模型都是通的。
4.3 验证结果对照
| 检查项 | 预期结果 | 异常时的排查方向 |
|---|---|---|
| Hermes 健康检查 | status: ok | 检查 base_url 是否带/v1 |
| OpenClaw Key 读取 | 打印出完整 Key | 检查 settings.json 路径 |
| OpenClaw 测试对话 | 返回模型回复 | 检查网络能否访问 taotoken.net |
| 端口访问 | 浏览器能打开控制台 | 检查京东云安全组规则 |
5. 本篇常见错排查
5.1 报错401 Unauthorized
这是最常见的。原因通常是 Key 复制时带了空格,或者 Key 已经失效。先检查配置文件里的 Key 前后有没有多余字符:
grep api_key ~/.hermes/config.toml | cat -Acat -A会把行尾符号显示出来,如果看到$前面有空格,手动删掉。OpenClaw 那边同理,用jq检查:
jq '.models.providers.taotoken.apiKey' ~/.openclaw/settings.json如果 Key 确认没问题但还是 401,去 https://taotoken.net/api-keys 确认这个 Key 的状态是否正常,必要时重新生成一个。
5.2 报错Connection refused或超时
京东云主机默认能出公网,但如果你之前改过 iptables 或用了自定义网络,可能出不去。先测连通性:
curl -I https://taotoken.net/api如果卡住或报Could not resolve host,检查 DNS 配置。Ubuntu 下看/etc/resolv.conf,确保有可用的 nameserver。如果返回 403 或 404,说明网络是通的,问题在配置层。
5.3 OpenClaw 控制台打不开
端口没放行是最可能的原因。京东云的安全组规则要单独加,不是在系统里ufw allow就完事。去京东云控制台,找到你的实例,进安全组,添加入方向规则:协议 TCP,端口 1878 和 18789,来源填你的本地 IP 或 0.0.0.0/0(测试阶段)。
系统层面的防火墙也确认一下:
ufw status如果显示 active 且没有这两个端口,加一下:
ufw allow 1878/tcp ufw allow 18789/tcp5.4 Hermes Agent 启动后模型不响应
先看日志:
tail -f ~/.hermes/logs/agent.log如果日志里反复出现retrying model request,大概率是max_tokens设太大了,某些模型对单次请求的 token 上限有要求。把max_tokens从 4096 降到 2048 试试。另一个可能是temperature设成了 0,有些模型在 0 温度下会返回空,改成 0.1 以上。
5.5 两个工具同时跑时额度消耗快
这是 Token Plan 统一通道后的正常现象,因为两个工具共用一份额度。如果你发现消耗速度超出预期,先开 OpenClaw 的缓存,再把 Hermes Agent 的max_tokens调低。另外检查一下是不是有技能在后台轮询,OpenClaw 的skills list能看到已安装的技能,把不用的先卸掉。
6. 长期使用建议与入口
如果你打算把 Hermes Agent 和 OpenClaw 长期跑在京东云上做编码辅助或 Agent 任务,建议关注一下 Coding Plan 这个选项。它适合需要持续调用模型、做代码生成和自动化流程的场景,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。和按量计费相比,它在高频编码场景下更可控。
日常排查配置问题时,接入文档是最快的参考,地址是 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。里面有针对不同工具的配置示例,包括 Hermes Agent 和 OpenClaw 的字段说明。如果你用的是 Claude Code 这类工具,也有对应的接入说明在 https://taotoken.net/claudecode-anthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
控制台入口在 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,你可以在里面看额度消耗、管理 Key、切换模型。我自己的习惯是每周去控制台扫一眼用量,如果某个工具的消耗突然涨了,就去查它的日志,通常是有技能在跑循环任务。
最后说一个实际经验:京东云主机的系统盘不大,OpenClaw 跑久了日志和缓存会占空间。我一般设一个 cron 任务,每周清理一次~/.openclaw/cache和~/.hermes/logs里超过 7 天的文件。这个操作不复杂,但能避免某天突然发现磁盘满了导致服务挂掉。