最近刷到个视频,说"Hermes Agent 是 OpenClaw 最大的对手"。带着好奇,我直接把源码拉下来翻了个底朝天。这篇文章不是搬运 README,而是从产品经理+技术人员的双重视角,告诉你:它的架构到底怎么设计的、哪些设计值得学习、跟 OpenClaw 真正的区别在哪。
一、先搞清楚:Hermes Agent 是什么?
Hermes Agent 是 Nous Research 做的开源 AI Agent。Nous Research 在AI圈不算顶流,但之前做过 Mistral 7B 的微调,在 Hugging Face 上有不少粉丝。
它的核心卖点用一句话说:一个会自己学习、越来越了解你的 AI 助手。
但我翻完源码后,发现这个"自学习"的描述多少有点营销包装。更准确的说法是:一个架构设计非常完善的多平台 AI Agent 框架。
它真正厉害的不是"自学习",而是下面这些。
二、架构设计:为什么说它比大多数 Agent 框架成熟?
2.1 先看整体架构
用户入口├── CLI(本地终端交互)├── Gateway(多平台消息接入)│ ├── Telegram / Discord / Slack / WhatsApp / Signal│ ├── 飞书 / 钉钉 / 企业微信 / 微信│ └── 邮件 / Webhook / API Server└── ACP Server(VS Code / Zed / JetBrains 集成)Agent 核心├── AIAgent(对话循环)├── 工具系统(40+ 工具,统一注册中心)├── 技能系统(可扩展的工作流)├── 记忆系统(内置 + 插件式外接)└── 智能模型路由(便宜任务用便宜模型)运行环境├── 本地 / Docker / SSH├── Daytona(云开发环境)├── Modal(Serverless,闲置不花钱)└── Singularity(HPC 超算场景)2.2 这个架构解决了什么问题?
问题1:AI Agent 只能绑在一个终端上用
大多数 Agent(比如 Claude Code)都是你对着终端说话。但 Hermes 的 Gateway 层把"接收消息"和"处理任务"拆开了:
- 你在 Telegram 发一条消息
- Gateway 收到后转给 Agent 处理
- Agent 处理完,Gateway 把结果发回 Telegram
这意味着什么? AI Agent 不再是"你坐在电脑前才能用的工具",而是"你随时可以用手机指挥的远程助手"。
问题2:不同平台的对话无法打通
Hermes 的 Session 系统做到了跨平台会话连续。你在家用 CLI 聊到一半,出门用 Telegram 继续接上。这在代码里是通过统一的 SessionStore 实现的。
问题3:工具和 Agent 耦合太紧
Hermes 的工具系统用了注册中心模式(tools/registry.py)。每个工具独立注册,Agent 不需要知道工具的实现细节。这和前端开发里的"组件注册"是一个思路:
# 每个工具都这样注册registry.register(name="example_tool",toolset="example",schema={"name": "example_tool", "parameters": {...}},handler=lambda args, **kw: example_tool(...),check_fn=check_requirements,)
好处:加新工具只需要3步——写工具文件、加import、加到toolset列表。不需要改Agent核心代码。
三、真正硬核的技术设计
3.1 上下文压缩:不是简单删历史
我看了它的 context_compressor.py(700多行),发现这个设计很有意思。
普通的上下文管理:对话太长了就删掉最早的几条。
Hermes 的做法:
第1步:删除旧的工具输出(不需要LLM,直接删) → 已读取的网页内容、已执行的命令输出,没用了就清掉第2步:保护头部(系统提示词 + 前几轮对话不能动)第3步:保护尾部(最近的对话不能动,按token预算保留)第4步:压缩中间部分 → 用便宜的辅助模型做总结 → 结构化摘要模板:目标、进展、决策、文件变更、下一步 → 后续压缩时,在新摘要基础上迭代更新(不是每次重新总结)这个设计值得学习的点:
- 分层处理:先做不需要AI的清理(省钱),再做AI总结
- 迭代压缩:不是每次从头总结,而是在上次摘要基础上更新
- 结构化:摘要有固定模板,保证信息不丢失
3.2 智能模型路由:该省省该花花
Hermes 有个 smart_model_routing.py,逻辑很直接:
# 判断用户意图是否复杂_COMPLEX_KEYWORDS = {"debug", "implement", "refactor", "analyze","architecture", "design", "review", "delegate" ...}# 简单问题用便宜模型,复杂问题用强模型
打比方:就像公司里,简单问题找实习生,复杂问题找资深工程师。不用每次都请CTO出马。
这个功能在产品上很实用——大部分对话其实是简单问答,用便宜模型就能搞定,能省不少钱。
3.3 子代理协作:不只是并行,还有隔离
delegate_tool.py 的设计让我眼前一亮:
# 子代理的权限是受限的DELEGATE_BLOCKED_TOOLS = frozenset(["delegate_task", # 禁止递归委派"clarify", # 禁止和用户交互"memory", # 禁止写共享记忆"send_message", # 禁止跨平台发消息"execute_code", # 禁止执行代码(只推理不写脚本)])# 最大并发3个子代理,最大嵌套2层MAX_DEPTH = 2 # 父→子→孙子(拒绝)
这个设计解决了一个真实痛点:子代理乱搞。
- 不能递归委派(防止无限套娃)
- 不能发消息(防止子代理偷偷给你发消息)
- 不能写共享记忆(防止污染主Agent的记忆)
- 不能执行代码(子代理只能推理)
每个子代理有独立的对话上下文,父Agent只看到任务和结果摘要,看不到中间的工具调用。这既省上下文,又保证了信息隔离。
3.4 记忆系统:内置 + 插件双模式
Hermes 的记忆管理分两层:
内置记忆:基于文件的记忆(MEMORY.md),简单直接。
插件记忆:支持多种外部记忆后端:
- Honcho:AI原生的用户建模,支持语义搜索、辩证推理
- Mem0:开源记忆层
- Supermemory:云端记忆服务
- RetainDB:自托管记忆数据库
关键设计:同时只允许一个外部记忆插件,防止冲突。内置记忆始终可用。
class MemoryManager:"""内置provider始终第一个,最多加一个外部provider。一个provider失败不影响另一个。"""
这个设计哲学是:记忆可以有选择,但不能没有兜底。
四、"自学习"到底学到了什么?
Hermes 官方宣传的"self-improving",源码里到底怎么实现的?
实际上是这样的:
技能自动创建:当你完成一个复杂任务,系统会建议你把操作步骤封装成技能。本质上是一个"操作录制→模板化"的过程。
技能自进化:使用技能时,系统会根据实际使用情况微调技能描述。类似"根据用户反馈优化产品说明书"。
跨会话记忆:通过记忆系统记住你的偏好和项目上下文。
我的判断:这不是真正的"机器学习式的自我进化",而是经验积累式的改进。更像是"经验丰富的员工比新员工做得好",而不是"员工自己在学习新技能"。
但这个方向是对的。真正的 Agent 自学习,目前整个行业都还在探索中。
五、应用场景:哪些人适合用?
5.1 远程开发者(最契合)
你有一台云服务器,Hermes 跑在上面:
- 不在电脑前也能用手机指挥AI干活
- Modal 后端支持 Serverless,闲置时几乎不花钱
- 结果自动发到 Telegram/飞书/钉钉
5.2 团队协作
一个 Hermes 实例,全团队通过 IM 共用:
- 支持多用户(不同IM账号)
- 每个 Profile 完全隔离(配置、记忆、技能独立)
- 同一个 Bot 服务不同人
5.3 AI 研究者
这是 Hermes 独有的场景:
- 批量轨迹生成(一次跑几百个任务,收集数据)
- Atropos RL 环境(训练下一代 tool-calling 模型)
- 轨迹压缩(把长对话压缩成训练数据)
如果你在研究"怎么让 AI 更擅长使用工具",这个功能很有价值。
5.4 个人效率工具
配置好后,Hermes 可以成为你的:
- 每日简报生成器(Cron 定时任务)
- 代码审查助手(自动审查 PR)
- 知识管理助手(记住你看过的内容)
六、局限性和真实吐槽
6.1 Windows:不支持
官方原话:"Native Windows is not supported. Please install WSL2."
对国内大量 Windows 用户来说,这是第一道门槛。WSL2 配置虽然不复杂,但很多人连这个概念都不知道。
6.2 配置复杂度:真的高
我数了一下,光配置文件就有:
- config.yaml(主配置)
- .env(API密钥)
- honcho.json(记忆配置,如果用Honcho)
- mcp.json(MCP工具配置,如果用MCP)
- skins/*.yaml(主题,如果自定义)
而且每个都有几十个配置项。对于想"开箱即用"的用户来说,这劝退率不低。
6.3 测试多≠稳定性好
Hermes 有 3000+ 个测试,这很好。但测试多说明代码复杂度高,复杂度高意味着出 bug 的概率也高。从 GitHub Issues 来看,确实有不少"刚升级就挂了"的问题。
6.4 文档质量参差
核心架构文档写得不错,但很多新功能(比如 Honcho 集成、Profile 系统)的文档更新不及时,需要直接看源码才能搞清楚。
七、Hermes vs OpenClaw:从设计哲学看区别
很多人拿这两个项目对比,但它们的设计哲学完全不同。
本质上:
- Hermes 是"瑞士军刀":功能多、能力强,但你得学会怎么用每一把刀
- OpenClaw 是"随身小刀":功能聚焦、上手快,但遇到特殊场景可能不够用
我的观点:不存在谁替代谁。它们面向的是不同的需求层次。
如果你是技术团队,需要一个可以部署在服务器上、全团队通过 IM 共用的 AI Agent,Hermes 更合适。
如果你是个人用户,想在本地快速用起来,OpenClaw 更省心。
八、从 Hermes 学到的 5 个设计思路
不管你用不用 Hermes,这5个设计思路都值得学习:
1. 注册中心模式管理工具 工具独立注册、独立发现、独立禁用。Agent 核心代码不需要因为加了新工具而修改。
2. 分层上下文压缩 先做无成本的清理(删除旧工具输出),再做有成本的AI总结。省钱省时间。
3. 子代理权限隔离 子代理不能发消息、不能写共享记忆、不能递归。防止"小弟乱搞"。
4. 迭代式摘要 不是每次从头总结,而是在上次摘要基础上更新。信息损失更少。
5. 智能模型路由 简单任务用便宜模型,复杂任务用强模型。不用每次都上最贵的。
九、总结
Hermes Agent 是我目前看到的架构设计最成熟的开源 AI Agent 框架之一。它的多平台网关、上下文压缩、子代理隔离、智能路由,都是经过实战验证的设计。
但它也有明显短板:Windows 不支持、配置复杂、对新手不友好。
至于"OpenClaw 最大的对手"这个说法——就像说"卡车是轿车最大的对手"一样,它们解决的是不同的问题。
真正需要思考的不是"选哪个",而是"你的场景需要什么"。
我是鱼生,一个懂技术、爱吐槽的产品经理。如果你也在研究 AI Agent,欢迎交流。
夜雨聆风