1. 先把“自我训练”这四个字拆开看hermes-agent 是什么一句话说清它是 Nous Research 开源的一个 agent 框架主打“self-improving AI agent”能接 OpenRouter、Claude、GPT、Nous Portal 等任意模型。适合谁适合想研究 agent 记忆机制、想跑 RL 数据管道、又不想从零写调度逻辑的开发者。但它的“self-improving”被中文社区传着传着就变味了很多人以为挂上 Claude 就能让模型自己变强这其实是把两条完全不同的电路看成了同一条。我先把结论摆前面hermes-agent 的自我改进分两层。第一层是推理期的“软进化”改的是本地记忆文件模型权重一动不动第二层是真正的权重训练必须自托管开源模型、拿到 token 级 logprobs 才能跑。你日常用 OpenRouter 调 Claude永远停在第一层。下面我把这两层拆开再给你一套可复制的 OpenRouter 配置骨架让你在本地亲手验证 agent 到底触发了哪一层。2. TaoToken 前置把模型入口先接稳在验证 hermes-agent 之前你得先有一个稳定的模型调用入口。hermes-agent 支持任意 OpenAI 兼容端点所以你可以用 TaoToken 作为统一网关把 OpenRouter、Claude 这类模型都收口到一个 base_url 上省得在多个 Key 之间来回切。TaoToken 官网在这里https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 注意这个地址不带任何查询参数。你需要先去控制台生成一个 API Key后面 hermes-agent 的配置里会用到。这一步的意义在于hermes-agent 的“软进化”会把每次对话的总结写进本地文件如果模型入口不稳定记忆写入会断断续续你就很难判断到底是 agent 没触发改进还是请求根本没成功。先把入口接稳后面的验证才有意义。3. 可复制配置hermes-agent 接 OpenRouter 的骨架hermes-agent 的模型配置走的是 OpenAI 兼容格式。你可以在项目根目录建一个.env文件把 base_url 和 key 写进去。下面这份骨架你可以直接抄把sk-xxx换成你在 TaoToken 控制台拿到的真实 Key。# .env OPENAI_API_KEYsk-xxx OPENAI_BASE_URLhttps://taotoken.net/api DEFAULT_MODELanthropic/claude-opus-4.5然后在 hermes-agent 的配置里指定模型。不同版本的配置文件名可能不一样常见的是config.yaml或hermes.toml核心字段是这几个# config.yaml model: provider: openai name: anthropic/claude-opus-4.5 base_url: https://taotoken.net/api api_key_env: OPENAI_API_KEY memory: enabled: true path: ~/.hermes/ skills_dir: ~/.hermes/skills/ semantic_file: ~/.hermes/MEMORY.md user_file: ~/.hermes/USER.md这里有个关键点memory.enabled打开后hermes-agent 会在任务完成后往~/.hermes/skills/写程序性记忆往MEMORY.md和USER.md写语义记忆。这些全是 agent 进程自己的状态文件跟模型权重没有任何关系。你接的是 ClaudeClaude 那边不会因为你多跑几次就记住你。如果你要跑 RL 相关的环境还需要额外配TINKER_API_KEY和WANDB_API_KEY并且把tinker-atropos子模块 clone 下来。但那是第二层的事我们先把第一层验证清楚。4. 验证请求确认 agent 到底改了什么配置写好后起一个对话让它做一个稍微复杂点的任务比如“帮我整理一份 Python 异步编程的要点存成笔记”。任务完成后去看~/.hermes/目录。ls -la ~/.hermes/ cat ~/.hermes/MEMORY.md cat ~/.hermes/USER.md ls ~/.hermes/skills/你会看到 agent 自己写进去的内容。MEMORY.md里可能是它对这次任务的总结USER.md里可能是它推断出的你的偏好skills/下可能多了一个新文件记录它完成这类任务的步骤。这就是“软进化”的全部——它改的是这些文本文件不是模型参数。再做一个对照实验把~/.hermes/整个删掉重新跑一次同样的任务。你会发现 agent 又变回“白纸”之前积累的记忆全没了。而 Claude 那边无论你跑多少次它的权重和策略都不会因为你本地删了文件而变化。这个对照能帮你彻底看清边界。如果你想验证模型调用本身是否走通可以单独发一个请求curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-xxx \ -H Content-Type: application/json \ -d { model: anthropic/claude-opus-4.5, messages: [{role: user, content: 回复 OK}] }返回正常就说明入口没问题接下来 agent 的记忆写入失败就只可能是 hermes 自身配置的问题。5. 本篇常见错排查第一个坑以为用 Claude 跑得越多模型越聪明。不会发生。路径 A 改的是本地文件模型权重和提供商策略一寸不动。你卸载 hermes等于把“进化成果”留在本地Claude 那边没记忆。第二个坑以为训完的 LoRA 能叠回 Claude。同样不会。Tinker 训出来的 LoRA 只兼容它训的那个开源 base默认是 Qwen3-8B换 base 就要重训。tool_call_parsers/里收录的 11 个解析器全是开源系没有 Claude、GPT、Gemini 的位置这本身就是代码级的边界证据。第三个坑以为 Phase 1 出的 SFT 数据能替代 RL。分场景。Phase 1 适合做评测和监督微调用的 (prompt, response) 对但奖励信号要落到 token 级时必须 Phase 2 拿原始 logprobs否则 GRPO 没法算 advantage。用 OpenRouter 转发的闭源模型永远停在 Phase 1拿不到 token logprobs没有更新参数所需的梯度信号。第四个坑rl_cli.py里DEFAULT_MODEL anthropic/claude-opus-4.5被误读成“这个 CLI 在训 Claude”。看完 system prompt 才明白Claude 在这里是 post-training engineer 操作员它读 environment 文件、编辑 config、调起rl_start_training、查 WandB 指标。被训的另有其人是 Qwen3-8B 那类开源模型。6. 下一步该把精力投在哪看清这两条电路的接线图后选择就清楚了。如果你只是想打磨 agent 的记忆和技能继续用 OpenRouter 接 Claude把~/.hermes/skills/和MEMORY.md养厚这条路成本低、见效快。如果你要真训权重就得单独搭一台 GPU 机器把开源模型挂到 VLLM 上配好 Tinker 和 Atropos让 hermes-agent 当工头而不是被训对象。验证模型调用是否正常可以直接用模型对话页面发一条测试请求https://taotoken.net/api-keys 拿 Key接入文档在 https://taotoken.net/doc 。如果你打算长期跑编码类 agent 任务Coding Plan 会更省心https://taotoken.net/coding-plan 。先把第一层跑通再决定要不要碰第二层这样你不会在“自我训练”这四个字上浪费太多时间。
