资讯动态

hermes-agent 真的会自我训练吗:被‘self-improving‘误导的人都没看清这层

发布时间:2026/8/16 5:25:41 来源:尧图企业网站定制
把 Nous Research 的 hermes-agent 主页拉到顶部最显眼的一句是“The self-improving AI agent”翻一行又写“Use any model you want — OpenRouter, Claude, GPT, Nous Portal…”。社区里给它做的中文解读把这层包装得更亮——“研究友好”“自带 RL 数据生成管道”。老实人很快会卡在一个矛盾上闭源 API 没把权重给我们凭什么自我进化翻完仓库再来回答这个问题hermes-agent 其实把进化拆成了两层完全独立的电路市面上不少介绍只看到了上面那层。一个反直觉的类比它更像 IDE不像 AutoML把 hermes-agent 想成 IDE 比想成 AutoML 更准。IDE 自己不会替我们编译——但 IDE 把项目结构、构建脚本、调试器全集成好了所以编译—跑测试—改代码这条路看起来很顺。哪天我们要从源码改到字节码仍然得靠后端的 javac / clang不是 IDE 的 UI。hermes-agent 同理。日常用它跑 Claude是IDE 在帮我们组织对话、记笔记、调工具真要训模型权重得另开一台后端机器跑 Atropos Tinkerhermes-agent 在那边的角色是工头不是被训的对象。拆开看两条通路分别怎么工作路径 A日常推理时的软进化。我们用hermes起一个对话、调/model anthropic/claude-opus-4.5全程发生在 OpenRouter 的 HTTP 请求层。hermes 会写四类东西到~/.hermes/skills/完成复杂任务后自动总结的程序性记忆受 agentskills.io 标准约束MEMORY.md/USER.md语义记忆由 agent 主动 nudge 自己写入Honcho 维护的 dialectic 用户模型我们是谁、偏好什么FTS5 索引的历史会话可跨 session 检索注意这些全是 agent 进程自己的状态。Claude 那一侧没有任何回写——OpenAI / Anthropic 也不会把权重回写口子开给我们。所以self-improving在这条路上是真的但范畴限定在 prompt 工程和外部记忆不是模型微调。路径 B真训权重的硬进化。这条路要打开environments/才能看见全貌。仓库里实际存在的环境包括environments/ ├── agent_loop.py # 多轮 agent 引擎 ├── web_research_env.py # 网络研究 RL 环境 ├── agentic_opd_env.py # On-Policy Distillation ├── hermes_swe_env/ # SWE-bench 风格代码任务 ├── terminal_test_env/ # 全链路自检 ├── tool_call_parsers/ # 11 个开源模型 parser └── benchmarks/{terminalbench_2,tblite,yc_bench}environments/README.md里把这套体系拆成Phase 1 / Phase 2两态——细节决定了 hermes 能不能训阶段服务端拿到的东西用途Phase 1OpenAI 兼容 server含 OpenRouterchat_completion 解析好的tool_callsSFT 数据、评测Phase 2VLLM ManagedServer 的/generate原始 token IDs logprobsGRPO / PPO 才能跑也就是说用 OpenRouter 转发的 Claude 永远只能停在 Phase 1——拿不到 token logprobs没有更新参数所需的梯度信号。要进 Phase 2必须自托管 VLLM把开源权重模型挂上去。tool_call_parsers/收录的 11 个解析器hermes / mistral / llama3 / qwen / qwen3_coder / deepseek_v3 / deepseek_v3_1 / kimi_k2 / longcat / glm45 / glm47都是开源系——没有 Claude / GPT / Gemini 的位置这本身就是一条强证据。rl_cli.py 这把钥匙。翻rl_cli.py顶部会看到一段非常容易被误读的设定DEFAULT_MODELanthropic/claude-opus-4.5DEFAULT_BASE_URLOPENROUTER_BASE_URL RL_SYSTEM_PROMPTYou are an automated post-training engineer specializing in reinforcement learning for language models. 1. DISCOVER: Use rl_list_environments to see available RL environments 2. INSPECT: Read environment files to understand how they work ... 6. CONFIGURE: Use rl_select_environment and rl_edit_config 7. TEST: Always use rl_test_inference before full training 8. TRAIN: Use rl_start_training to begin 读到DEFAULT_MODEL anthropic/claude-opus-4.5容易以为这个 CLI 是在训 Claude。看完 system prompt 才明白Claude 在这里是 post-training engineer 操作员它读 environment 文件、编辑 config、调起rl_start_training、查 WandB 指标。被训的另有其人——根据社区文档Tinker 默认锁死lora_rank32、learning_rate4e-5、tokenizerQwen/Qwen3-8B优化器是 Adamβ₁0.9, β₂0.95目标函数是带 importance sampling 的 GRPO loss。一句话总结路径 B 的形状Claude 是司机Atropos 是变速箱Tinker 是发动机被训的车是 Qwen3-8B。日常用 OpenRouter API 走的是路径 A路径 B 永远要单独把整套设施搭起来——TINKER_API_KEY和WANDB_API_KEY必填tinker-atropossubmodule 必须 clone 下来。它不解决什么知道了上面这层三种常见误判可以避开“用 Claude 跑得越多越聪明”——不会发生。路径 A 改的是本地~/.hermes/文件模型权重和提供商策略一寸不动卸载 hermes 等于把进化成果留在本地、Claude 那边没记忆。“训完的 LoRA 可以叠回 Claude”——同样不会。Tinker 训出来的 LoRA 只兼容它训的那个开源 base默认 Qwen3-8B换 base 就要重训tool_call_parsers/里没有闭源条目就是这个边界的代码级体现。“Phase 1 出 SFT 数据可以替代 RL”——分场景。Phase 1 适合做评测和监督微调用的 (prompt, response) 对但奖励信号要落到 token 级时必须 Phase 2 拿原始 logprobs否则 GRPO 没法算 advantage。environments/yc_bench这类长程基准就吃这种细粒度信号跨不过 Phase 1。回到开头那个矛盾hermes-agent 的self-improving是真的随便用闭源 API也是真的只是它们各自管不同的电路。看清这两条电路的接线图就知道下一步该把精力投在哪——继续打磨 skills / memory还是搭一台 GPU 机器把 Qwen3-8B 推进 Phase 2。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价