Skip to content

Hermes vs OpenClaw:Agent 架构差异怎么理解 ​

这篇文章解决什么问题 ​

源码阅读容易陷入两个问题:

  • 只记录模块名,不理解系统定位。
  • 只看单个项目,不知道不同 Agent 架构之间的设计差异。

这篇文章要回答:

  • Hermes 更适合从哪个角度理解?
  • OpenClaw 更适合从哪个角度理解?
  • 二者在 Agent 架构上的重点有什么不同?
  • 对个人项目设计有什么启发?

核心观点:Hermes 更适合作为"Agent 工作流与高级用法"的学习样本,OpenClaw 更适合作为"复杂 Agent 系统分层"的学习样本。 二者不是谁替代谁,而是强调的工程问题不同。


对比结论先行 ​

从站内已有拆解内容看,两个项目的核心差异可以总结为:

  • Hermes 更偏向任务组织、代理协作、技能扩展和开发工作流。 它的核心问题是"Agent 如何参与开发流程"——子代理派遣、Kanban 编排、TDD、预提交审查、MCP 集成、Cron 定时任务、Skills 技能系统。
  • OpenClaw 更偏向系统分层、会话、Runtime、Workspace、Memory、Tools、Security 和 Evaluation。 它的核心问题是"复杂 Agent 系统如何分层"——Gateway 控制面、Channel 多渠道接入、确定性路由、Workspace 文件化、安全防线 8 层。

学 Hermes 可以帮助理解 Agent 怎么进入具体工作流。学 OpenClaw 可以帮助理解复杂 Agent 系统怎么拆层。


对比维度总览 ​

维度HermesOpenClaw学习价值
系统定位自改进 AI Agent,Agent 工程框架Personal AI OS,复杂 Agent 平台理解不同规模的 Agent 系统设计目标
核心关注点任务组织、开发工作流、多代理协作系统分层、会话管理、安全边界理解 Agent 工程的不同切入角度
任务组织方式子代理派遣、Kanban 编排、计划系统确定性路由、Session 隔离、Queue 管理理解任务调度的不同策略
Runtime 理解AIAgent 作为 Runtime Kernel,驱动 Think-Act-Observe 循环Agent Runtime 使用 workspace 驱动理解 Runtime 的不同组织方式
Tool / SkillTool Registry 自注册 + Skill 任务说明书 + MCP 外部接入Tool + Skill + Plugin 三层能力体系理解工具系统的不同分层方式
Workspace项目上下文文件(AGENTS.md、SOUL.md)每个 Agent 独立 workspace,文件化可审查理解 Agent 上下文的不同管理方式
Memory / State三层记忆:messages + session DB + MEMORY.md三层分离:Session + Memory + Compaction理解记忆系统的不同分层策略
安全边界命令审批、密钥脱敏、PII 脱敏、工具集控制8 层安全防线:Gateway Auth → Channel ACL → Routing → Tool Policy → Approval → Sandbox → Plugin Trust → Audit理解安全设计的不同深度
EvaluationTDD、预提交审查、两阶段审查Trace、Transcript、Audit Trail理解质量保障的不同方式
适合学习的人想理解 Agent 如何参与开发流程的人想理解复杂 Agent 系统如何分层的人不同学习目标选择不同项目

系统定位差异 ​

从站内已有拆解内容看,两个项目的系统定位有明显差异:

Hermes 可以从以下角度理解:

  • 子代理驱动开发:每个任务派发新子代理,避免上下文污染。
  • Kanban 多代理协作:Orchestrator + Worker 模式,任务分解、依赖管理、故障恢复。
  • 计划系统:先写实施计划文档,再按计划执行。
  • TDD / 预提交审查:RED-GREEN-REFACTOR 流程 + 提交前质量门禁。
  • MCP / Skills / Cron:标准化工具接入 + 可复用能力包 + 定时任务。
  • 安全控制:命令审批、密钥脱敏、工具集控制。

OpenClaw 可以从以下角度理解:

  • Gateway:统一接入入口,管理多渠道消息、WebSocket API、事件推送。
  • Channel:不同接入来源的适配层,统一为内部 MessageEvent。
  • Routing:确定性路由,不是 LLM 决定,而是基于规则匹配。
  • Session:会话和上下文管理,Queue mode 控制消息并发。
  • Runtime:任务执行核心,使用 workspace 驱动。
  • Workspace:每个 Agent 独立工作空间,文件化可审查。
  • Memory:MEMORY.md + 每日记录,Session / Memory / Compaction 三层分离。
  • Tools / Skills / Plugins:三层能力体系。
  • Security:8 层安全防线。

核心差异: Hermes 更像"Agent 如何进入具体工作流",OpenClaw 更像"复杂 Agent 系统如何分层"。


任务组织方式差异 ​

Hermes 的任务组织方式:

  • 更容易从任务推进、开发流程、子代理协作角度理解。
  • 适合观察 Agent 如何把复杂开发任务拆成可执行步骤。
  • delegate_task 支持单任务、批量并行、leaf / orchestrator 角色分离。
  • Kanban 编排支持 Orchestrator 分解任务 → Worker 并行执行 → 人工审查。
  • 计划系统鼓励先写实施计划文档,再按计划执行。
  • 适合学习 AI 编程工作流。

OpenClaw 的任务组织方式:

  • 更容易从系统入口、会话管理、运行时、工具调用、工作区和安全治理角度理解。
  • 路由由确定性规则决定:精确 peer 匹配 > thread 继承 > guild+roles > team > accountId > channel 通配 > default agent。
  • Session Queue 控制消息并发:steer 模式新消息注入当前 run,followup/collect 模式等当前 turn 结束。
  • 多 Agent 隔离边界三层:Workspace 隔离、Session 隔离、Tool / Credential 隔离。
  • 适合学习 Agent 系统架构。

核心差异: Hermes 的任务组织更偏"工作流编排",OpenClaw 的任务组织更偏"系统级路由和隔离"。


Runtime 差异 ​

从站内已有拆解内容看,两个项目对 Runtime 的理解角度不同:

问题Hermes 视角OpenClaw 视角
谁接管任务AIAgent 作为 Runtime Kernel,所有入口最终调用 run_conversation()Agent Runtime 使用 workspace 驱动,Gateway 分发给对应 Agent
谁推进步骤while tool-calling loop,iteration budget 硬控Agent Runtime 执行 model/tool loop,Session Queue 控制并发
谁调用工具Tool Registry 自注册,handle_function_call 分发执行Tool Policy 控制 allow/deny,Approval 决定是否需要人工确认
谁记录状态messages 持久化 + session DB + MEMORY.mdSession transcript jsonl + MEMORY.md + 每日记录
谁处理异常错误分类 → 重试 → 压缩 → 换 provider → 修复格式 → 保存 partial state安全流程:Channel ACL → Gateway Auth → Routing → Tool Policy → Approval → Sandbox → Audit
谁产生最终结果无 tool_calls 时得到 final_response,保存会话并返回Agent Runtime 执行完成后回复回原 channel

核心差异: Hermes 的 Runtime 更像"任务执行循环引擎",OpenClaw 的 Runtime 更像"系统级任务执行节点",嵌入在 Gateway → Routing → Session → Runtime 的完整链路中。


Tool / Skill 差异 ​

Hermes 的工具体系:

  • 更容易从 Skill、MCP、Cron、开发辅助能力角度理解工具扩展。
  • Tool Registry 自注册:tools/*.py 自注册到 registry,model_tools 生成 schema 给模型。
  • 工具分两层:普通工具层(文件、终端、浏览器、Web、MCP)和 Agent 内核工具层(memory、todo、session_search、delegate_task、clarify)。
  • Skill 不是工具本身,更像"任务说明书 + 工作流协议 + 可加载知识包"。
  • MCP 作为原生客户端,支持连接 filesystem、GitHub、remote API 等外部工具。
  • Plugin 有三个发现来源:~/.hermes/plugins/、.hermes/plugins/、pip entry points。

OpenClaw 的工具体系:

  • 更容易从 Tools、权限、安全、系统边界角度理解工具接入。
  • Tool:具体执行动作(读文件、执行命令、发消息)。
  • Skill:任务方法论和流程说明(SKILL.md 进入模型上下文,能改变 Agent 行为)。
  • Plugin:进程内代码,通过 central registry 注册 provider、channel、tool、skill 等能力。
  • Plugin 有风险等级:Skill 是 prompt/文档层风险,Tool 是可执行动作风险,Plugin 是进程内代码风险。
  • 每个 Agent 可以有不同的 tool policy,通过 allow/deny 列表控制。

核心差异: Hermes 的工具体系更偏"能力扩展和开发辅助",OpenClaw 的工具体系更偏"权限控制和系统边界"。Tool / Skill 不只是函数调用,而是 Agent 能力边界。


Workspace 与 Memory 差异 ​

Workspace 差异:

  • Workspace 解决"任务中间产物和文件上下文"。
  • Hermes 更适合观察工作流中的上下文组织:项目上下文文件(AGENTS.md、SOUL.md)进入 system prompt,稳定信息 cached,临时信息动态注入。
  • OpenClaw 更适合理解 Workspace 在系统层的职责边界:每个 Agent 有独立 workspace,包含 AGENTS.md、SOUL.md、TOOLS.md、USER.md、MEMORY.md、skills/,文件化可读、可改、可备份、可迁移、可审计。

Memory 差异:

  • Memory 解决"长期信息、状态摘要、偏好和可复用经验"。
  • Hermes 的三层记忆:短期(当前 messages)、中期(session database SQLite + FTS5,可搜索历史对话)、长期(MEMORY.md / USER.md)。
  • OpenClaw 的三层分离:Session(原始会话历史)、Memory(提炼后的长期知识)、Compaction(压缩模型可见上下文)。
  • 二者都强调 Session 和 Memory 的分离,但 Hermes 更侧重可搜索的 session database,OpenClaw 更侧重文件化的 Memory 体系。

Security 与 Evaluation 差异 ​

Security 差异:

  • 复杂 Agent 系统必须考虑安全边界。
  • Hermes 提醒我们 AI 编程工作流需要约束:命令审批模式(manual / smart / off)、密钥与 PII 脱敏、工具集控制、按平台启用/禁用工具。
  • OpenClaw 提醒我们复杂 Agent 平台需要系统化安全设计:8 层安全防线(Gateway Auth → Channel ACL → Routing / Session Isolation → Tool Policy → Exec Approval → Sandbox → Plugin / Skill Trust → Logging / Audit)。
  • 核心思想一致:Prompt 规则只是软约束,不能替代硬边界。真正的防护来自工具权限、审批、沙箱、审计。

Evaluation 差异:

  • Hermes 更侧重开发流程中的质量保障:TDD(RED-GREEN-REFACTOR)、预提交审查(diff → 安全扫描 → 基线测试 → 自检清单 → 独立审查者 → 自动修复循环)、两阶段审查(规格审查 + 代码质量审查)。
  • OpenClaw 更侧重系统级的可观测性:Session transcript、Logging、Audit Trail。
  • 二者都强调执行过程需要记录,但 Hermes 更偏"开发质量门禁",OpenClaw 更偏"系统审计和追踪"。

对个人项目的启发 ​

项目 A(RAG 工单系统):

  • 可以借鉴 OpenClaw 的分层思路,把 RAG 查询链路拆成 API、Service、Trace、Evaluation。
  • 可以借鉴 Hermes 的任务推进思路,设计清晰的开发迭代步骤。
  • RAG 查询可以设计成可追踪的 run,每个阶段记录 step 和 tool_call。

项目 B(多 Agent 运营中台 Copilot):

  • 可以借鉴 OpenClaw 的 Runtime / Tool / Workspace / Memory / Security 分层。
  • 可以借鉴 Hermes 的多代理协作和开发工作流表达。
  • 多 Agent 需要确定性路由、隔离 workspace、隔离 session、隔离工具权限。

面试表达 ​

我读源码不会只记模块名,而会比较系统定位和设计取舍。在学习和架构抽象层面,Hermes 更适合理解 Agent 如何进入开发工作流——子代理派遣、Kanban 编排、TDD、预提交审查、MCP 集成、Skills 技能系统。OpenClaw 更适合理解复杂 Agent 系统如何分层——Gateway 控制面、确定性路由、Workspace 文件化、Session / Memory / Compaction 三层分离、8 层安全防线。

对生产级 Agent 来说,我更关注 Runtime、Tool、Workspace、Memory、Security、Trace 和 Evaluation 如何组合。Runtime 不是模型,而是任务执行引擎;Tool 不是函数调用,而是能力边界;Workspace 不是聊天记录,而是 Agent 的可审查工作空间;Memory 不是所有历史,而是提炼后的长期知识。

这种横向对比能帮助我从"会用框架"转向"能设计系统"。面试中,我可以根据岗位需求选择不同的表达角度:如果面试官关注开发工作流,我用 Hermes 的思路表达;如果面试官关注系统架构,我用 OpenClaw 的思路表达。


常见误区 ​

  • 把两个项目简单比较成谁更好——它们解决的问题不同。
  • 只记模块名,不理解设计目标——模块名不等于设计价值。
  • 把 Tool / Skill 当普通函数调用——Tool 是能力边界,Skill 是方法论。
  • 不关注 Workspace 和 Memory 边界——所有上下文混在一起会导致系统不可控。
  • 不关注安全和评测——Agent 能调用工具后,安全风险成倍增加。
  • 不考虑项目适用场景——不同规模的项目需要不同的架构策略。
  • 把源码阅读写成流水账——源码阅读的目标是抽象设计思想,不是记录代码细节。

更好的学习方式 ​

不推荐方式更好的方式
逐行记录源码提炼设计思想和可迁移模式
只看一个项目横向对比不同项目的设计取舍
只记模块名理解每个模块解决什么工程问题
把所有项目混在一起按维度对比:Runtime、Tool、Memory、Security
不关注适用场景理解不同项目的定位和适用范围
不考虑迁移价值提炼可迁移到个人项目的设计模式
不做面试表达准备把架构理解整理成可表达的面试话术
只看代码不看文档结合代码和文档理解设计意图

后续 TODO ​

  • 补充 Hermes / OpenClaw 架构图对比。
  • 补充 Runtime / Tool / Memory 的细粒度对比。
  • 补充面试口述稿。
  • 补充对项目 B 架构设计的迁移清单。