我扒了 Hermes Agent 的源码,发现了它比 OpenClaw 聪明在哪

63.7k Star 的项目,我花了两天翻它的代码。不是看功能列表,是看设计决策——功能谁都能抄,”为什么这么设计”才是真东西。
先解决一个困惑
很多人看到 Hermes Agent 的第一反应:这不就是又一个 OpenClaw 吗?
表面看确实像。都能接 Telegram、Discord、Slack,都支持多模型,都能跑工具调用。但翻完代码我发现,这两个项目的”第一性原理”完全不同。
OpenClaw 的架构核心是 Gateway,一个 WebSocket 控制平面。所有消息、工具、事件都通过这个网关流转。它的设计语言是”路由”:消息来了,路由到正确的 Agent,结果再路由回去。
Hermes 的架构核心是 Agent 本身。Gateway 只是一个可选的接入层,真正的重心放在了 agent 目录下——技能系统、记忆管理、用户画像,全围着”让 Agent 变得更聪明”转。
一个优化通信效率,一个优化智能水平。起点不同,终点也不同。
技能系统的设计最让我惊艳
Hermes 的 skills 目录下不是一堆静态配置文件,而是一套有生命周期的技能系统:
技能创建(自动) → 技能使用 → 技能改进(基于反馈) → 技能复用
我看了技能创建的核心逻辑。当你完成一个多步骤任务后,Hermes 会把”你做了什么、每步的输入输出、最终结果”打包交给 LLM,让它总结成一个可复用的技能定义。这个技能不是简单的命令回放,它包含了意图理解和条件分支。
举个例子。你让 Hermes “帮我部署一个 Node 服务”,它第一次可能需要多轮交互——问端口、问环境变量、问域名。完成后它会自动创建一个 deploy-node-service 技能,里面记录了部署流程和需要确认的参数。下次再说”部署服务”,它直接走技能,只问差异化的部分。
这和 OpenClaw 的技能系统形成鲜明对比。OpenClaw 的技能更像”预设命令模板”——你写一个 SOUL.md 定义 Agent 人格,加上一些工具调用配置。能用,但不会自己长大。
记忆系统:FTS5 + LLM 摘要
记忆这块,Hermes 的实现有点东西。
它用了 SQLite 的 FTS5 做会话检索。不是什么新技术,但用法很巧妙:每次对话结束后,用 LLM 生成一段摘要,和原始对话一起存入 FTS5 索引。你问”上次聊的那个部署方案”,它先通过 FTS5 搜到相关会话,再用 LLM 从摘要中提取关键信息。
这种”搜索 + 摘要”的混合方案,比纯向量搜索更适合 Agent 场景。因为 Agent 的记忆不只是”语义相似”,更重要的是时间顺序和因果关系——FTS5 的布尔查询刚好擅长这个。
OpenClaw 目前有会话上下文压缩,但没有跨会话的持久记忆。每个新会话都是一张白纸。
用户画像:Honcho 集成
这个功能我一开始觉得可有可无,直到看到实现方式。
Hermes 集成了 Honcho(plastic-labs 的开源项目),对用户进行画像建模。它不是简单地给你打标签,而是维护一个”用户理解”的动态文档。每次交互后,Honcho 会更新这个文档——你最近在忙什么项目、偏好什么技术栈、回复风格是简洁还是详细。
画像存在本地,Agent 在生成回复时会参考它。用得越久,回复越对你的胃口。
我在代码里看到了一个细节:画像更新是异步的,不会阻塞主交互流程。说明团队对延迟很敏感,不想因为画像计算影响用户体验。
并行委托的设计
Hermes 可以生成子 Agent 并行处理任务。OpenClaw 也有类似能力(多智能体路由),但实现思路不同。
OpenClaw 的并行是”不同渠道不同 Agent”——群组A用 Agent-1,群组B用 Agent-2,互不干扰。
Hermes 的并行是”同一任务拆分子任务”——你说”帮我调研这三个框架”,它会同时派出三个子 Agent,各自调研一个,最后汇总结果。子 Agent 之间是隔离的,共享父 Agent 的上下文但不互相干扰。
从代码看,子 Agent 通过 RPC 和父 Agent 通信,工具调用结果以流式返回。父 Agent 可以实时看到每个子 Agent 的进展,中途调整策略。
我看不太懂的地方
MCP 集成那块代码我没完全看明白。文档说是用来连接外部工具服务的,但具体怎么发现工具、怎么管理工具的生命周期,代码注释比较少,需要看 MCP 的上游规范才能理解。
另外,技能系统有个隐含假设:LLM 能准确总结出技能定义。但如果任务很复杂(比如涉及多轮调试),LLM 的总结可能遗漏关键步骤。这个问题在官方文档里没看到讨论。
值不值得关注
做 Agent 开发的,Hermes 的技能系统和记忆架构值得认真研究。它的设计比 OpenClaw 更面向长期使用,而不仅仅是多渠道接入。
普通用户,我的建议是:先用 OpenClaw 入门(生态更成熟、上手更简单),等你的需求超过”跟 AI 聊天”这个阶段了,再试试 Hermes。毕竟一键迁移就在那等着。
项目地址:https://github.com/NousResearch/hermes-agent[1]
夜雨聆风