返回文章列表

OpenClaw、Hermes 和 Harness:它们到底是什么关系

梳理 OpenClaw、Hermes Agent 与 Harness 在 Agent 体系中的分层、定位与关系。

OpenClaw、Hermes 和 Harness:它们到底是什么关系

很多人第一次看到 OpenClawHermes AgentHarness 这几个名字,会有一种很自然的混乱:

它们是不是同一种东西?
是不是谁比谁更高级?
是不是 OpenClaw 和 Hermes 都是在做 Harness?
那 Harness 到底是一个产品,还是一种架构思想?

如果上来直接给定义,反而会越讲越绕。更好的方式是先回到 Agent 真正遇到的问题。

当大模型从”会聊天”变成”能替你做事”以后,最难的已经不是回答问题,而是把它放进什么样的运行环境里。

这是理解三者关系的入口:

OpenClaw 解决的是:Agent 怎么接入你的日常入口并被唤起
-> Hermes Agent 解决的是:Agent 怎么记住经验并逐渐沉淀能力
-> Harness.io 解决的是:Agent 怎么进入企业流水线并被治理
-> Agent Harness 是它们背后共同的工程思想

先说明一个小细节:Hermes AgentHarness 只差几个字母,但说的不是同一个东西。前者是一个具体系统,后者在这里主要指 Agent 外层运行系统这类架构思想。

为了让这篇文章不飘,我们固定一个例子:

我希望有一个 AI 助理,每天早上帮我:
1. 看一眼重要消息和技术新闻
2. 结合我的兴趣过滤掉噪音
3. 把值得看的内容整理成摘要
4. 如果发现项目 CI 失败,自动分析原因
5. 需要改代码或发 PR 时,先按团队规则走审批

这件事看起来像一句”让 AI 帮我自动化”。但拆开以后,你会发现它至少包含三层不同问题:

  • 它怎么从 Telegram、飞书、Slack 或网页入口被叫起来?
  • 它怎么记住我的偏好、历史任务和常用处理方式?
  • 它怎么在企业工程流程里安全执行、审计、审批和回滚?

OpenClaw、Hermes Agent、Harness.io 的差别,就藏在这三层问题里。

一、故事要从”Agent 已经能动起来”开始

前文已经讲过:[[03.从对话到干活-Agent#四、Agent 为什么会出现:因为真实任务不是一次问答,而是一串循环|Agent]] 不是模型突然长出了手脚,而是模型外面接了一套工具、状态和执行循环。

一个最小 Agent 大概长这样:

用户提出目标
-> 模型判断下一步
-> 调用工具
-> 工具结果回到上下文
-> 模型继续判断
-> 直到完成、失败或需要用户决策

这一步解决的是”模型怎么从说话变成做事”。

但一旦 Agent 真的能做事,新的问题马上出现:

它在哪里做事?谁能叫醒它?记不记得以前做过什么?能不能碰文件、浏览器、终端、密钥和生产环境?出了事谁负责?

这时就不能只说”模型 + 工具”了。

真实 Agent 系统需要的是一整套外壳:

  • 入口:消息从哪里来
  • 上下文:模型每轮看到什么
  • 工具:它能调用什么能力
  • 状态:它做到哪一步
  • 记忆:什么经验应该留下来
  • 调度:它什么时候被唤醒
  • 权限:哪些动作能直接做,哪些必须确认
  • 审计:做过什么能不能追踪
  • 验收:怎么判断真的完成

这套外壳,就是前文专门讲过的 [[04.如何让Agent更好干活-Harness#三、Harness 到底是什么|Agent Harness]]。这里可以直接沿用那个公式:

Agent = Model + Harness
Harness = Agent - Model

模型之外,所有让 Agent 能稳定、可控、可恢复、可审计地工作起来的工程系统,都可以放进 Harness 这个大框里理解。

接下来再看 OpenClaw、Hermes Agent 和 Harness.io,就清楚多了。

二、OpenClaw 为什么会出现:因为 Agent 需要”入口”和”控制平面”

先看我们的例子。

如果你希望每天早上收到 AI 整理的摘要,第一件事不是模型聪不聪明,而是:

这个任务从哪里进入系统?

你可能希望在飞书里发一句:

帮我整理今天 AI 新闻,十分钟后发给我。

也可能希望它每天早上自动触发。或者在 Telegram、Discord、Slack、WebChat、手机节点里都能叫它。

这就是 OpenClaw 最容易让人兴奋的地方。

OpenClaw 的核心价值不是”它有一个独家大模型”,而是把 Agent 放进了一个多入口、多通道、可持续运行的控制平面里。

你可以把它想成一个个人 Agent 总机:

Telegram / 飞书 / Slack / WebChat / 定时任务 / 设备节点
-> OpenClaw Gateway
-> Agent Session
-> Runtime + Tools + Workspace + Memory
-> 返回消息或执行动作

它解决的是:

怎样让 Agent 不只停在网页聊天框里,而是接到你已经在用的消息入口、设备入口和自动化入口上。

OpenClaw 的强项通常在这些地方:

  • 多渠道触发:从聊天工具、网页、移动端或设备节点唤起 Agent
  • 长期运行:通过 gateway、session、heartbeat、cron 维持持续工作感
  • 工具接入:浏览器、文件、命令、消息发送、节点能力等
  • workspace:用本地文件承载身份、规则、工具说明和记忆
  • skills / plugins:把任务套路和运行时扩展接入系统

换句话说,OpenClaw 就是那个”让 Agent 能从各种地方被叫醒”的基础设施。很多人第一次用的时候会觉得”终于不用只在网页里跟 AI 聊天了”,就是这个感觉。

回到刚才那个早报例子,OpenClaw 更像是在解决:

我怎么随时随地叫起这个 Agent?
它怎么接我的消息?
它怎么定时醒来?
它怎么把结果发回我常用的聊天入口?

所以说 OpenClaw 更像 Personal Agent Control Plane,也就是个人 Agent 控制平面。

但这里要降一降温。

OpenClaw 能把 Agent 接进现实入口,不代表它已经是一个成熟、稳定、低成本的个人助理。更准确地说,它是一个很有研究价值的 Agent 运行时样本:能跑,能做事,能把很多未来 Agent 的问题提前暴露出来,但离”普通人装上就能长期放心使用”还有明显距离。

OpenClaw 目前还不够在哪里

第一,它的”主动性”更多是调度意义上的主动,不是稳定自治。

比如每天早上整理新闻,本质上通常是:

cron / heartbeat 到点触发
-> 把任务 Prompt 重新送进 Agent Session
-> 模型再判断下一步要不要搜索、整理、发送

这当然有用,但它不等于模型真的拥有一个长期目标,也不等于它能在没有调度器、没有明确触发条件时稳定自我推进。很多看起来像”它自己在做事”的能力,其实是宿主系统在反复唤醒它。

第二,它的执行方式容易变贵。

OpenClaw 为了让模型知道”我是谁、能用什么工具、应该遵守什么规则”,往往会在首轮塞进大量 System Prompt(系统提示词,定义 LLM 角色和行为底线的全局指令)。结果就是,哪怕只是问一句”你有多少内存”,后台也可能变成:

用户消息
-> 大量系统提示词
-> 模型判断要调工具
-> 执行 shell 命令
-> 工具结果回流模型
-> 模型再整理成最终回答

这里有一个隐性成本:System Prompt 是每轮都带上的,上下文越长,Token 消耗越容易被低估。可以把它理解成”首轮税”:不管用户问多简单,都要先交一笔上下文税。

表面上像一次问答,实际上是多轮模型和工具闭环。任务越复杂,工具越多,首轮上下文和后续试错成本就越容易被放大。

第三,复杂任务容易滑向”高成本试错”。

还是早报例子。如果你让它”搜索今日 AI 新闻,整理成 PDF,再发到聊天软件”,它可能会一路做下去:

搜索新闻
-> 写 markdown
-> 尝试转 PDF
-> 发现依赖缺失
-> 安装或换命令
-> 格式不对再修
-> 发送失败再补救
-> 继续局部修补

每一步局部看都说得通,但整体可能已经不划算。OpenClaw 现在暴露出的一个典型问题,就是行动意愿强于成本意识,局部补洞能力强于全局重规划能力。它会努力把眼前这一步过掉,却不一定会及时停下来问:

这条路径还值得继续吗?
要不要换成 RSS、API 或已有工作流?
继续做会不会把环境弄乱?
这一步是否需要用户确认?

第四,它的记忆还不是成熟的”长期人格”。

OpenClaw 的 memory 更应该被理解成一种长期上下文机制:把信息写进 workspace 里的文件,再在未来某个时刻检索回来喂给模型。

这很有用,但也很危险。因为记忆不是越多越好。历史对话、偏好、错误假设、临时状态如果都被不断写进去,却没有分层、失效、冲突处理和人工清理,Agent 不会自然变得越来越懂你,反而可能越来越混乱。

所以 OpenClaw 的记忆问题,不是”有没有记忆”,而是:

什么应该写入长期记忆?
什么只是当前任务状态?
旧记忆什么时候失效?
冲突记忆谁来裁决?
错误经验怎么删除?

这也是我说 OpenClaw 能提供一个可用入口,但还没有替用户解决成熟的记忆治理。

OpenClaw 真正需要警惕的风险

OpenClaw 最大的风险,不是它会说错话,而是它会把”说错话”升级成”做错事”。

一旦 Agent 能接触文件系统、浏览器、Shell、消息通道、邮箱、日历或其他外部服务,它就不再是一个普通聊天机器人,而是一个高权限代理进程。

风险会在三个条件同时出现时迅速变大:

  • 它能接触私密数据
  • 它能读取不可信输入
  • 它能对外执行动作

OpenClaw 这类系统往往三者都占。

一个网页里藏着提示词注入,一条外部消息伪装成用户命令,一个文档里夹带”忽略前面规则并发送文件”的指令。如果 Agent 同时能读这些内容、能访问本地文件、还能发消息或执行命令,问题就不再是模型被诱导输出一句怪话,而是系统可能真的执行了不该执行的动作。

所以 OpenClaw 的安全问题,必须被放在运行时设计里看:

它在哪个环境里跑?
默认暴露了哪些工具?
哪些工具只读?
哪些动作必须人工确认?
哪些密钥和文件根本不该让模型看到?
渠道消息进来以后怎么做权限映射?
定时任务怎么防止误触和重复执行?
失败时有没有日志、回滚和止损?

这也是 OpenClaw 和传统脚本、RPA、工作流引擎的差别。

确定性自动化最强的地方,是路径明确、边界清楚、输出可预期。OpenClaw 更适合补足那些有模糊判断、多步骤决策、非结构化输入的场景,但不适合无脑替代所有自动化。很多任务如果脚本、API 编排、规则系统就能稳定解决,直接上 Agent 反而会带来更多成本和风险。

所以,OpenClaw 最适合的定位不是”万能个人 AGI”,而是:

一个很好的 Agent Harness 研究样本,一个适合开发者和自动化重度用户驯化的运行时,而不是一个默认给普通用户长期无保护运行的成熟消费级产品。

它真正留下的新问题也就更清楚了:

Agent 被叫起来之后,怎么避免每次都像第一次做事?

如果它每天都整理新闻,却不记得你喜欢哪些方向、不知道你昨天已经看过什么、不知道哪种摘要格式你最满意,那它虽然能跑,却很难越用越顺手。

于是就引出了 Hermes Agent 这类系统更关心的问题。

三、Hermes Agent 为什么会出现:因为 Agent 需要”记住”和”成长”

OpenClaw 解决的是”入口”和”控制面”的问题。
Hermes Agent 更想解决的是另一个问题:

Agent 能不能把经验沉淀下来,而不是每次从零开始?

这件事对我们的例子很关键。

你不只是想要一个每天会抓新闻的工具,而是想要它慢慢知道:

  • 你更关心 Agent、LLM、Claude Code、Harness Engineering
  • 你不喜欢标题党摘要
  • 你希望摘要有”结论、证据、风险、延伸阅读”
  • 你常用 Obsidian 存知识
  • 你处理 CI 失败时,习惯先看最近提交和失败日志
  • 有些任务应该生成 PR,有些任务只需要评论建议

如果这些东西每次都靠你在 Prompt 里重说一遍,Agent 就只是一个”能调用工具的临时工”。
如果这些东西能被整理成记忆、技能和项目上下文,它才开始像一个会积累经验的助手。

Hermes Agent 的重点就在这里。

它强调的不是单个入口有多炫,而是长期运行时里的几类能力:

  • 持久记忆:跨会话记住用户、项目、偏好和环境事实
  • 技能系统:把做过的复杂任务沉淀成可复用操作文档
  • 会话检索:需要时能回查过去会话,而不是全靠当前聊天历史
  • 上下文文件:读取项目里的规则文件来塑造当前行为
  • 任务委派和自动化:把任务拆给子 Agent 或定时任务执行
  • 多后端执行:本地、Docker、SSH、云沙箱等不同终端环境

用一句话说:

Hermes Agent 更像一个把”经验”放进运行时里的 Agent 系统。

OpenClaw 让 Agent 更容易被你叫起来,Hermes Agent 则试图让 Agent 更容易变得”熟练”。

还是早报例子。

OpenClaw 关心的是:

每天早上 8 点从哪里触发?
结果发到哪个聊天软件?
过程中能不能打开网页、读文件、发消息?

Hermes Agent 更关心的是:

哪些新闻源对你长期有价值?
哪些摘要格式上次被你接受了?
哪些处理步骤可以沉淀成 Skill?
哪些个人偏好应该写进 MEMORY.md / USER.md?
哪些历史会话值得在未来召回?

这就是 Hermes Agent 经常被描述成 Self-improving Agent Runtime(自我改进的 Agent 运行时,指能在使用过程中持续积累经验并优化自身行为的运行系统)的原因。

但这里要冷静一点。

“会记住”不等于”真的越来越聪明”。记忆如果缺少治理,会变成污染源;技能如果缺少审核,会变成错误套路;历史会话如果不加筛选,会让 Agent 把旧误判当成新事实。

所以 Hermes Agent 解决了 OpenClaw 留下的”经验沉淀”问题,同时也引出了下一层问题:

如果 Agent 要进入团队和企业工程流程,谁来管权限、密钥、审批、审计和标准化交付?

这就到了 Harness.io 更擅长的层面。

四、Harness.io 为什么会出现:因为 Agent 需要进入”企业流程”

这层最容易混淆。

Harness 有两种含义:

第一种是通用概念:[[04.如何让Agent更好干活-Harness#三、Harness 到底是什么|Agent Harness]],也就是模型外面的运行系统。
第二种是具体公司和产品:Harness.io,它本来就是做软件交付、CI/CD、DevOps 和平台工程的。

当我们说 OpenClaw 和 Hermes 都是 Harness 的工程落地时,说的是第一种:它们都是 Agent Harness 的不同样板。

当我们说 Harness.io Agents 时,说的是第二种:一个把 AI Agent 嵌进企业软件交付流水线的产品形态。

为什么这层会出现?

还是看早报例子里的最后两步:

如果发现项目 CI 失败,自动分析原因。
需要改代码或发 PR 时,先按团队规则走审批。

这已经不是个人助理场景了,而是企业工程场景。

在企业里,Agent 不能只靠”我觉得可以”就做事。它必须面对:

  • 代码仓库权限
  • CI/CD 执行上下文
  • secrets 和 connector
  • 环境、服务、部署历史
  • RBAC(基于角色的访问控制,按用户角色分配不同权限的权限管理模型)和组织权限
  • OPA policy(Open Policy Agent 策略,用声明式语言统一管理和执行访问控制规则)
  • 人工审批
  • 审计日志
  • PR review
  • 回滚与失败策略

这就是 Harness.io Agents 的切入点。

它不是把 Agent 当成一个漂在外面的聊天助手,而是把 Agent 做成流水线里的一级步骤。

也就是说,Agent 不再是:

外部聊天机器人
-> 调 API
-> 偷偷改一点东西

而更像:

Pipeline 触发
-> Agent 继承本次流水线上下文、权限、密钥和连接器
-> 分析仓库 / 日志 / 测试 / 部署状态
-> 生成建议或 PR
-> 经过审批、审计和团队规则
-> 进入正常交付流程

这解决的是:

怎样让 Agent 不只是”能干活”,而是在组织允许的边界里干活。

Harness.io 的重点不是个人多入口,也不是个人记忆成长,而是:

  • 流水线原生执行:Agent 是流水线步骤,不是外部脚本
  • RBAC / secrets / connectors:继承企业平台已有权限边界
  • Knowledge Graph:利用组织内部服务、部署和流水线上下文
  • OPA policy:用策略管住 Agent 行为
  • 人在环路:关键动作让人审批
  • 可审计性:每一步可追踪、可回放、可治理

用一句人话概括:

Harness.io 关心的不是”Agent 会不会做”,而是”Agent 做这件事是否符合企业交付流程”。

(这里有一个实际观感上的差异:OpenClaw 和 Hermes 给你的感觉是”我在用一个聪明的助手”,而 Harness.io 给你的感觉是”流水线里多了一个能自己看日志、写代码、提 PR 的步骤”。两者不是竞争关系,是不同层级的问题。)

五、把三者放回一条链里

不要把 OpenClaw、Hermes Agent、Harness.io 当成三个平级竞品。

更好的理解方式是,它们分别回答了 Agent 落地过程中的不同问题:

模型已经能调用工具
-> 需要入口和控制平面:OpenClaw
-> 需要记忆和能力沉淀:Hermes Agent
-> 需要企业流程和治理:Harness.io Agents
-> 这些共同属于 Agent Harness 的工程空间

可以压成一张表:

名字更像什么核心问题典型场景
OpenClawPersonal Agent Control PlaneAgent 怎么被多渠道唤起,并接入个人自动化入口Telegram / 飞书 / Slack / cron / 浏览器 / 本地文件
Hermes AgentSelf-improving Agent RuntimeAgent 怎么记住经验、沉淀技能、跨会话成长长期个人助理、技能复用、记忆治理、云端常驻
Harness.io AgentsEnterprise Workflow HarnessAgent 怎么进入企业流水线并被权限、审批和审计治理CI 修复、代码审查、测试补全、部署与 DevOps 自动化
Agent Harness架构思想模型外面需要什么系统,才能稳定做事所有生产级 Agent 系统

所以它们的关系不是:

OpenClaw vs Hermes vs Harness

而更像:

OpenClaw 是偏入口层的 Harness 实现
Hermes Agent 是偏运行时和成长层的 Harness 实现
Harness.io Agents 是偏企业治理层的 Harness 实现

六、初学者最容易混淆的几个点

1. OpenClaw 不是 Harness 本身

OpenClaw 是一个具体的 Agent 平台或运行时样本。它体现了很多 Harness 能力,比如 gateway、workspace、tools、skills、sessions、memory、cron、heartbeat。

但它不是 Harness 这个概念的全部。

它更偏:

入口接入 + 个人自动化 + 多渠道控制平面

2. Hermes Agent 不是”拼错的 Harness”

Hermes Agent 是另一个具体系统。它的名字和 Harness 很像,但重点不同。

它更偏:

长期记忆 + Skill 沉淀 + 会话召回 + 自我改进运行时

所以它和 OpenClaw 的区别,不是”谁更像 Agent”,而是:

OpenClaw 更会接入口
Hermes 更强调经验沉淀

3. Harness.io 不是泛泛的 Agent Harness

Harness.io 是具体公司和平台。它的 Agents 更偏企业软件交付。

它更关心:

Agent 如何作为流水线步骤被执行、审批、审计和治理

所以不要把 Harness.io Agents 和通用概念 Agent Harness 完全画等号。

4. Harness 不是万能药

Harness 不是把模型套一层壳,Agent 就稳定了。

一个糟糕的 Harness 仍然会:

  • 给模型太多不相关上下文
  • 暴露过多危险工具
  • 没有成本止损
  • 记忆越来越脏
  • 权限边界过宽
  • 失败后继续硬做
  • 做完后没有验收

真正的问题不是”有没有 Harness”,而是:

你的 Harness 有没有把入口、上下文、工具、状态、权限、记忆、调度、审计和验收设计清楚。

七、今天为什么会进一步走向 Harness Engineering

过去我们最关注的是模型能力。

后来大家发现,只调 [[02.如何让LLM更聪明#二、Prompt 为什么会出现:因为“只会接话”不等于“会按要求干活”|Prompt]] 不够,还要给模型正确上下文,于是有了 [[02.如何让LLM更聪明#三、Context 为什么会出现:因为只有任务,没有材料,模型还是干不好活|Context Engineering]]。

再后来 Agent 能调用工具、能执行任务,问题继续外扩:

Prompt 解决"怎么说清楚"
Context 解决"给什么信息"
Tool 解决"怎么让模型产生动作"
Agent 解决"怎么连续行动"
Harness 解决"怎么让连续行动稳定、可控、可治理"

OpenClaw、Hermes Agent、Harness.io 之所以值得放在一起看,不是因为它们名字像,而是因为它们刚好站在 Agent Harness 的三条不同分支上:

  • OpenClaw 暴露了个人 Agent 的入口、成本和安全问题
  • Hermes Agent 暴露了长期记忆、技能沉淀和自我改进问题
  • Harness.io 暴露了企业流程、权限治理和审计问题

这也是学习它们最有价值的地方。

你不一定要选择其中一个。
更重要的是,从它们身上拆出 Agent Harness 的工程清单:

入口怎么来
上下文怎么装
工具怎么控
状态怎么存
记忆怎么治
任务怎么调度
失败怎么恢复
权限怎么约束
结果怎么验收
过程怎么审计

只要你准备做一个真实可用的 Agent,这些问题迟早都会回来找你。

八、最后给读者一个最低成本记忆法

如果只想带走最短版本,可以这样记:

  • OpenClaw 像一个个人 Agent 总机:负责把 Agent 接到各种入口上。
  • Hermes Agent 像一个会写工作手册的助理:负责把经验沉淀成记忆和技能。
  • Harness.io Agents 像一条企业流水线里的 AI 工位:负责在权限、审批和审计下执行工程任务。
  • Agent Harness 是它们背后的共同问题:模型外面那套让 Agent 能稳定干活的系统。

再压缩一句:

OpenClaw 让 Agent 更容易被叫起来,Hermes 让 Agent 更容易记住和进步,Harness.io 让 Agent 更容易进入企业流程;它们都是 Harness Engineering 在不同层级上的落地样本。