小龙虾养成记:小龙虾和爱马仕(OpenClaw vs Hermes)源码对比与选型指南

23 阅读6分钟

适用人群:第一次接触 OpenClaw / Hermes,想快速看懂差异、做选型、不踩坑。

**OpenClaw:**偏本地与可控编排 | **Hermes:**偏在线与持续运营

小龙虾和爱马仕怎么选?是不是很多朋友都有这个疑惑。其实很多朋友第一次看 OpenClawHermes,会有同一个感受:
“都能接微信/飞书/Telegram,都能调模型、调工具,那到底差别在哪?又该如何选呢?”

大家好,我是寒山!今天用一张图 + 源码视角,把差异讲清楚,并给你一套可直接照搬的选型方法。

前言

先给结论

  • **更适合选 OpenClaw:**本地个人助手、强控制感、与 OpenClaw 生态深度一致。

  • **更适合选 Hermes:**云端长期在线、越用越聪明、适合持续运营。

一句话类比:

  • OpenClaw 像一台你自己改装得很强的「私人工作站」。

  • Hermes 像一个可以长期驻场、持续学习的「线上智能同事」。

一、先把概念讲白:它们都在做什么?

无论 OpenClaw 还是 Hermes,核心流程都差不多:

  1. 用户在某个平台发消息(比如飞书/Telegram)。

  2. Gateway 收到消息:鉴权、路由、会话绑定。

  3. Agent Loop 组织上下文,调用模型。

  4. 若模型要求调用工具:执行工具 → 结果回填 → 继续推理。

  5. 最后把回复发回用户。

你可以把它理解成“客服系统 + 大脑 + 工具箱”的组合。

二、源码里真正不同的地方

1) 谁在当“总指挥”?

OpenClaw:编排层是主角

openclaw-main/src/agents/pi-embedded-runner/run/attempt.ts 里,能看到它把很多能力拆成了可组合模块:
系统提示、技能注入、上下文压缩、MCP 工具接入、沙箱策略、流式输出、超时恢复……

这意味着 OpenClaw 更像“精细化控制中心”:
每一段流程都有明确挂点,适合希望“每个开关都可管”的团队。

Hermes:主循环是主角

hermes-agent-main/run_agent.py 里,核心回合逻辑更集中:
多轮 tool_calls、并行/串行执行、失败重试、上下文压缩都在主循环中强驱动。

这意味着 Hermes 更像“强执行中枢”:
想快速做“连续任务推进”,它会更直接。

2) 记忆和技能,谁更“主动学习”?

OpenClaw:技能管理工程化、可控性强

openclaw-main/src/agents/skills.tsskills/* 目录可看到:
技能加载、过滤、frontmatter、配置注入、命令映射都比较规范,偏“工程治理”。

简单说:你可以精细控制“什么技能能进来、怎么进来”。

展开:把“工程化注入”讲透(加载 / 过滤 / frontmatter / env 覆盖)

很多同学看到这几个词会懵,这里用一个最小例子解释。

先看 frontmatter 是什么:
就是写在 SKILL.md 顶部的结构化元数据(通常是 YAML),给系统读,不是给人看的正文。

一个简化例子(示意):

---name: deploy-helperdescription: 帮我执行发布前检查---# 使用说明1. 先检查分支2. 再检查测试

系统会做四步:

1) 加载(load)

  • 从技能目录扫描 SKILL.md(OpenClaw 在 skills/workspace、本地/插件技能目录等来源聚合)。

  • 读取正文 + frontmatter,形成技能条目(名字、描述、来源、元信息)。

2) 过滤(filter)

  • 按配置决定是否启用:例如技能开关、允许列表、agent 级 skills 过滤、平台约束等。

  • 被禁用或不匹配条件的技能,不会进最终 prompt,也不会暴露成可用命令/能力。

3) frontmatter 解析(frontmatter parse)

  • 把结构化字段(如 namedescription、命令映射相关字段)解析出来。

  • 这些字段会影响:技能名、展示描述、命令映射、以及后续注入行为。

4) env 覆盖(env override)

  • 不是“随便改系统环境变量”,而是按技能配置与安全规则,注入允许的变量到运行上下文。

  • 在 OpenClaw 里这部分由 skills/env-overrides.ts 处理,并有拦截逻辑,避免危险变量覆盖运行时核心行为。

  • 所以你可以理解成:“可控地给技能补配置”,不是“放开权限任意改环境”。

一句话总结这个链路:
先收集技能 -> 再按规则筛选 -> 再读元数据组织成可调用能力 -> 最后在安全边界内注入必要配置。

Hermes:记忆 + 技能直接嵌入主行为

hermes-agent-main/agent/memory_manager.py,记忆管理被抽象为 provider,且限制“内建 + 一个外部”来降低冲突。
agent/prompt_builder.py,记忆策略、技能策略、平台提示会被系统化注入每一轮。

简单说:Hermes 更强调“边做边沉淀经验,下次直接复用”。

3) Gateway 的“性格”不同

OpenClaw Gateway:像本地助手中枢

OpenClaw 的 gateway + tools 一体化很强(见 openclaw-main/src/agents/openclaw-tools.ts),
会根据运行模式、沙箱、模型能力动态裁剪工具。

适合:你把它当“自己桌面/设备体系的一部分”来用。

Hermes Gateway:像在线服务守护进程

Hermes 的 gateway/run.py 非常重视运行期治理:
锁、重启接管、状态恢复、多平台连接稳定性、审批通路等。

适合:你把它当“持续在线服务”来运营。

三、给小白的三个真实例子

例子 A:你想做“自己的个人工作助理”

需求:
“我在微信或飞书给它发一句话:‘帮我整理今天待办,顺手去项目目录改个文件,再回我结果。’”

更适合:OpenClaw
原因:

  1. 本地工具链、工作区、权限策略更容易统一管理。

  2. 会话和工具编排颗粒细,遇到“要控权限”的情况好处理。

  3. 对“我就是想在自己机器上稳定跑”的场景更自然。

例子 B:你要做 7x24 在线机器人

需求:
“机器人要一直在线,白天处理群消息,晚上跑日报,还要偶尔切换模型降成本。”

更适合:Hermes
原因:

  1. 网关守护和长跑能力更强。

  2. 云端部署路径更成熟(VPS/容器等)。

  3. 持续运行时的状态管理和恢复链路更完整。

例子 C:你希望它“越用越懂你”

需求:
“我不想每周重复教它同样流程,希望它逐步记住我的偏好和方法。”

更适合:Hermes(优先)
原因:

  1. 记忆管理在主循环里是核心能力,不是旁路。

  2. 技能沉淀和后续复用的设计目标很明确。

  3. 更偏向持续演化的使用方式。

四、怎么选才不踩坑:三步法

你只要按这三步做,很难选错。

  1. 先问自己:主战场是 本地个人效率 还是 在线持续运营

  2. 再问自己:你更在意 精细控制 还是 持续学习进化

  3. 最后做测试,看四个指标:
    成功率、平均响应时延、人工介入次数、维护时长。

谁在你的真实任务里更省心,就选谁,不要只看功能清单。

五、最后一句话

OpenClawHermes 不是“谁替代谁”,而是“同类问题的两种工程答案”。
看清你的主场景,你就会发现选型并不难。

更多的AI内容,我们下期再分享!