乐于分享
好东西不私藏

OpenClaw 最大的对手?我扒了 Hermes Agent 源码,发现事情没那么简单

OpenClaw 最大的对手?我扒了 Hermes Agent 源码,发现事情没那么简单

最近刷到个视频,说"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",源码里到底怎么实现的?

实际上是这样的

  1. 技能自动创建:当你完成一个复杂任务,系统会建议你把操作步骤封装成技能。本质上是一个"操作录制→模板化"的过程。

  2. 技能自进化:使用技能时,系统会根据实际使用情况微调技能描述。类似"根据用户反馈优化产品说明书"。

  3. 跨会话记忆:通过记忆系统记住你的偏好和项目上下文。

我的判断:这不是真正的"机器学习式的自我进化",而是经验积累式的改进。更像是"经验丰富的员工比新员工做得好",而不是"员工自己在学习新技能"。

但这个方向是对的。真正的 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 Agent
OpenClaw
设计哲学
框架优先,功能全
工具优先,简单易用
架构
Gateway + 多入口
CLI 为主,Gateway 辅助
运行方式
服务器部署,远程访问
本地运行,即时使用
扩展方式
写 Python 插件
写 Markdown 技能
模型支持
200+ 模型,智能路由
按需配置
目标用户
开发者、研究者
所有人
学习曲线
陡峭
平缓
Windows
❌ 需 WSL2
✅ 原生支持

本质上

  • 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,欢迎交流。