Claude Code、OpenClaw 和 Hermes Agent 由三个独立团队构建,分布在不同大洲,面向不同用例,没有共享代码库。然而当你画出它们的架构图时,得到的是同样的四根支柱。
这不是巧合。这是趋同进化——相同的选择压力产生相同的结构性解决方案。这个模式揭示了一件重要的事:每个 Agent 框架做对了什么,以及它们都跳过了哪一层。
趋同
过去十二个月内,三个团队独立发布了架构惊人相似的 Agent 框架:
Claude Code(Anthropic)—— 一个终端原生的编程 Agent,能自主执行多步骤任务。它维护持久化的会话上下文,通过 MCP 动态注册工具,并通过权限系统在破坏性操作前要求人类批准。
OpenClaw(ClawCore)—— 一个自主 Agent 框架,具有 Soul(持久身份)、跨会话存活的文件化记忆、用于模块化能力获取的 Skill 系统,以及 Cron+Heartbeat 实现无提示执行。
Hermes Agent(NousResearch)—— 一个自我改进的 Agent,拥有 Agent 策展的知识库、自注册工具注册表、由强化学习驱动的闭环学习循环,以及 DANGEROUS_PATTERNS 审批系统——阻断危险操作直到被显式授权。
三个团队在解决不同的问题。Anthropic 在构建开发者工具。ClawCore 在构建自主框架。NousResearch 在构建自我改进的研究 Agent。然而它们抵达了相同的架构。
四大支柱
剥离实现细节,四大支柱浮现:
| 支柱 | Claude Code | OpenClaw | Hermes Agent |
|---|---|---|---|
| Persistent Memory | 会话上下文 + 项目知识 | 文件持久化的短期/长期记忆 | Agent 策展的知识库 + FTS5 搜索 |
| Dynamic Tool Registry | MCP 协议集成 | Skill 系统 + MCP | 自注册工具注册表 + 动态 Schema 补丁 |
| Self-Improvement Loop | 步骤间上下文精炼 | 手动 Skill 更新 | 闭环 RL 循环(compute_reward → Skill 创建) |
| Safety Mechanism | 权限系统(人类审批) | 应用级策略 | DANGEROUS_PATTERNS 审批门控 |
四大支柱,四个框架,零协调。
Persistent Memory 意味着 Agent 在交互之间保留知识。不仅是上下文窗口——而是随时间累积的持久化存储。Claude Code 通过项目上下文文件实现。OpenClaw 使用文件持久化记忆。Hermes 更进一步,使用一个由 Agent 自行策展的知识库,底层是全文搜索,Agent 自己决定什么值得记住。
Dynamic Tool Registry 意味着能力不是硬编码的。Agent 在运行时发现、注册和调用工具。MCP 已成为事实上的标准接口——Claude Code 和 OpenClaw 都直接使用。Hermes 实现了自注册模式:工具自行声明,并且可以在运行时进行 Schema 补丁。
Self-Improvement Loop 意味着 Agent 的能力基于经验而变化。这是三个框架分歧最大的地方。Claude Code 在会话内通过迭代精炼改进,但不修改自身工具集。OpenClaw 通过手动安装获取新 Skill。Hermes 取了最强立场:一个闭环强化学习循环,Agent 通过 compute_reward 函数评估自身表现,基于成功模式创建新 Skill,并存储供未来使用。
Safety Mechanism 意味着破坏性或不可逆操作需要显式授权。三个框架都实现了某种形式的人机协同安全门控。Claude Code 的权限系统在运行可能修改文件系统的 Shell 命令前征求许可。Hermes 的 DANGEROUS_PATTERNS 系统维护着一份显式的危险模式列表——网络操纵、进程终止、权限提升——匹配到的操作在获批前被阻断。
必要——但不充分
四大支柱是有用的自主 Agent 的最小可行架构。缺少任何一根,框架都会以可预测的方式失败:
- 无 Persistent Memory → Agent 在会话间遗忘一切,无限重复错误
- 无 Dynamic Tools → Agent 被限制在创建者预设的能力范围内
- 无 Self-Improvement → Agent 永远不会变得更擅长工作,无论运行多久
- 无 Safety Gate → Agent 太危险,无法无监督运行
趋同告诉我们这四项是必要的。但趋同也揭示了什么是缺失的——因为三个框架共享同一个结构性空白。
空白:个体学习 vs. 群体进化
三个框架都将自我改进实现为个体的、封闭的循环:
- Claude Code 在单次会话内精炼其方法
- OpenClaw 的 Skill 由人类作者更新
- Hermes 运行一个 RL 循环来改进同一个 Agent 的未来表现
这相当于生物学中单个有机体在其生命周期内的学习。它很强大——Hermes 的 RL 循环确实令人印象深刻,完整集成了 Atropos 强化训练——但它在结构上受到三个限制。
发现不传播。 当 Hermes Agent 发现一种更有效的任务处理方式时,这个发现留在该实例中。另一个 Hermes 部署,或完全不同的框架,在没有手动迁移的情况下无法受益。每个 Agent 从零开始。
质量是自我评估的。 每个 Agent 评估自身的改进。没有外部的、竞争性的评估来揭示一个 Agent 的学习方法是否客观上优于另一个的。compute_reward 函数由 Agent 自身框架定义——而非通过与替代方案的独立竞争。
没有跨群体的选择压力。 在生物学中,个体学习使有机体在其生命周期内更适应——但自然选择作用于群体,偏好那些基因变异产生更优结果的有机体。没有群体层面的选择,就没有机制让最佳能力存活、最差能力被淘汰。
这就是学习与进化之间的鸿沟。学习改进一个个体。进化改进一个物种。
从学习循环到进化协议
从个体学习到群体进化的转变,需要三个三个框架均未实现的机制:
量化适应度评估。 用正式的适应度函数替代自我评估的奖励,由独立评估器打分。在 Rotifer Protocol 中,这采用乘法函数的形式:
乘法结构确保可靠性或安全性为零的能力总分为零——无论其在其他维度上表现多好。关键是,评估器本身也是模块化单元(Judge Gene),在各自的 Arena 中竞争,因此评估的质量也随时间改进。这解决了自我评估的局限:评估器不是被评估 Agent 的一部分。
水平逻辑迁移(HLT)。 发现按适应度比例在 Agent 之间传播。当一个 Agent 开发出高性能能力时,该能力通过协议层传播提供给整个网络——不是通过手动分享,而是通过协议级别的传播。这是水平基因转移的计算类比——让蛭形轮虫在没有有性生殖提供的遗传多样性的情况下,繁盛了四千万年的生物学机制。
Collective Immunity。 当网络中任何 Agent 检测到恶意或有缺陷的能力时,防御信息传播到所有 Agent。个体安全门控(如 Hermes 的 DANGEROUS_PATTERNS 或 Claude Code 的权限系统)保护一个 Agent。Collective Immunity 保护整个群体。
| 机制 | 个体学习 | 群体进化 |
|---|---|---|
| 改进方式 | Agent 从自身经验学习 | 最佳能力在群体中被选择 |
| 评估方式 | 自评奖励 | 竞争性 Arena + 独立 Judge Gene |
| 传递方式 | 手动或无 | 适应度比例 HLT 传播 |
| 安全方式 | 单 Agent 安全门控 | 全网 Collective Immunity |
| 能力生命周期 | 全部无限期保留 | 低适应度能力被选择淘汰 |
趋同告诉我们什么
Claude Code、OpenClaw 和 Hermes Agent 的结构趋同是一个强信号。当三个独立团队抵达同一架构时,说明该架构反映的是问题域的真实约束——而非任何单一团队的偏好。
四大趋同支柱——Persistent Memory、Dynamic Tool Registry、Self-Improvement Loop、Safety Mechanism——是自主 Agent 的基础。每个严肃的 Agent 框架都会实现它们。它们是入场门槛。
但空白同样意味深长。三个框架都没有实现跨 Agent 能力迁移。都没有实现竞争性适应度评估。都没有实现集体安全。这不是疏忽——它们是协议层的问题,无法在单一框架内解决:
- 适应度评估需要竞争。 一个能力无法有意义地评估自身。它必须在标准化条件下与替代方案竞争——这需要一个共享的 Arena,而非私有的奖励函数。
- 传递需要统一格式。 如果每个框架使用自己的 Skill 格式,能力就无法传播。共享的中间表示——如带类型接口的编译 WASM——实现跨框架、跨环境的可移植性。
- 集体安全需要网络。 威胁信息只有到达尚未遭遇该威胁的 Agent 时才有价值。这需要通信协议,而非仅仅是单 Agent 的黑名单。
架构趋同是因为问题相同。区分不在于四大支柱——每个严肃框架都会有。区分在于 Agent 之间发生了什么:能力是否竞争,发现是否传播,群体是否改进。
三个团队构建了相同的 Agent。现在的问题是,Agent 能否进化到超越任何一个团队所能构建的水平。
Rotifer Protocol 是一个面向自主软件 Agent 的开源进化框架。协议规范、CLI 和 SDK 可在 npm 获取:@rotifer/playground。