找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4217

积分

0

好友

612

主题
发表于 2 小时前 | 查看: 2| 回复: 0

一文彻底透视两大顶级开源 AI 基础设施的架构底色与源码流向,助你精准选型与高效调试。

欢迎来到 云栈社区。本文将深入对比 OpenClaw 与 Hermes,从定位、源码组织到调试路线全覆盖,帮你快速理清选择方向。

OpenClaw vs Hermes 对比封面图

1 架构定位

1.1 核心理念差异

OpenClaw 与 Hermes 在设计中心上存在本质区别。OpenClaw 是一个典型的 AI 网关与编排平台,官方将其定义为 Self-hosted gateway。其核心是一个常驻网关,负责将 Discord、Telegram、WhatsApp 等全渠道聊天入口、工具、任务系统无缝对接,重心在于入口聚合与路由分发。

Hermes 则更像一个长期存活的 Agent 内核。它强调 Agent 本体的持续进化与统一运行时,核心理念是 “Agent lives on your server, remembers what it learns, gets more capable the longer it runs”。

OpenClaw与Hermes对比维度表

1.2 语言与适用场景

OpenClaw 构建在前端生态之上,推荐使用 Node 24(兼容 Node 22.14+),主语言为 TypeScript。系统明显按 Node 平台产品打造,非常契合插件开发、前后端控制面及桌面/移动端配套的自然延伸。

Hermes 则是彻头彻尾的 Python-first。官方安装器自动处理 uv、Python 3.11,而 Node v22 仅作为浏览器自动化和部分桥接依赖。其插件目录、工具注册与记忆提供者完全遵循 Python 生态语义。

  • 优先选 OpenClaw:若你需要一个真正的个人 AI 基础设施入口层,看重多渠道接入(Telegram/WhatsApp 等)、控制 UI、移动节点、任务审计,并希望将外部 Coding Agent 纳入统一编排。
  • 优先选 Hermes:若你在意 Python 生态、Agent 本体能力进化、外部 Memory Provider 接入、底层执行后端切换,或希望将其作为 Python Library 嵌入自有系统。

2 核心系统

2.1 记忆与技能层

记忆体系设计

OpenClaw 的记忆机制极其平台化。它将 MEMORY.md 等文件切块存入每 Agent 专属 SQLite 索引,支持外挂 QMD 等本地优先检索,并拥有 Dreaming / Grounded backfill 机制,逐步将日记转入长期记忆。

Hermes 的内建记忆克制且轻量,核心仅限受限字符的 MEMORY.md 和 USER.md。但其支持外挂 8 种 External Memory Provider(如 Mem0、Hindsight 等),实现轮次前后的预取回写,思路是默认极轻,复杂交由插件。

技能学习机制

Hermes 强调内建学习循环,从经验中提取技能,其技能本质是文档化的资产。

OpenClaw 采用治理化分层,将 Tools(函数)、Skills(注入 Prompt 的文档)和 Plugins(渠道/模型打包)严格拆分,具备极细粒度的优先级和可见性控制。

2.2 编排与自动化

多实例与隔离

OpenClaw 偏向控制平面式编排,单个 Gateway 可托管多个 Agent,每个拥有独立的 Workspace、凭证与 Sandbox。

Hermes 采用 Profile + Delegation 模式。每个 Profile 是完整的隔离世界(独立配置与数据库),在 Agent 内部通过 delegate_task 生成子代理处理独立上下文。

自动化任务层

OpenClaw 的自动化极厚,包含 Cron、Background Tasks、Task Flow、Standing Orders 与 Heartbeat,形成了一套平台级运营框架。

Hermes 同样具备完善的自动化(自然语言 Cron、Event Hooks、Webhook),每次任务在 Fresh Session 中执行,但未过度抽象运营层概念。

2.3 安全与扩展性

安全纵深理念

OpenClaw 基于 Trusted Single-operator 假设,默认不将网关视为敌意多租户边界。默认允许 Host Exec,强调先让可信操作者高效,再按需开启审批与沙箱。

Hermes 主打 Defense-in-depth(纵深防御),官方列出 7 层安全架构,危险命令默认 Manual 审批,Docker 后端硬编码限制特权,开箱即先谨慎、再放权。

ACP 与生态兼容

OpenClaw 将 ACP 清晰分为 Gateway-backed 桥接与 ACP Agents(将 Codex/Claude Code 作为后台任务编排),擅长兼容外部生态。

Hermes 同样将 ACP 视为一等公民(如 Generalized ACP Client 提案),迭代极快。

3 源码组织

3.1 OpenClaw 横向分层

OpenClaw 源码体现了先拆平台边界,再嵌 Agent 的横向分层思想。控制平面做主导,其他模块围绕展开。

OpenClaw项目目录结构

3.2 Hermes 垂直主干

Hermes 源码是典型的 Python Agent Runtime + 一级子系统,热路径极度集中。CLI、Gateway 等最后全部汇集于单一中枢。

Hermes文件结构图

3.3 源码差异

  • 扩展路径:OpenClaw 的 Provider/Channel 等能力基于 SDK 暴露为注册点,类似挂载插件。Hermes 增加内建工具常需修改核心主干文件。
  • 代码侵入度:在 OpenClaw 注册 Provider 仅需使用 api.registerProvider();但在 Hermes 中,需修改 auth.py、models.py、run_agent.py 等深入内核的文件。
  • 状态与调试:OpenClaw 调试需查 Gateway RPC、sessions.json 与 Workspace;Hermes 调试往往只需追踪 run_agent.py 执行链与 stat.db。

4 源码调试

4.1 OpenClaw 调试路线

CLI 总入口层

重点文件:src/cli/command-bootstrap.tssrc/cli/argv.ts。用于追踪子命令如何装配、配置与 Token 如何规范化。改造命令行为、注入全局开关优先在此下断点。

网关核心通信层

重点文件:src/gateway/protocol/src/gateway/server-methods/。处理 WS 握手与 RPC 方法分发。当遇节点能力未生效或 Dashboard 行为异常时,断在握手写入 Presence 或 RPC 路由处。

Agent 输入处理层

重点文件:src/gateway/agent-prompt.ts。负责将 transcript 转化为 Agent 输入。排查 Agent 回复错乱、多模态抽文本问题时,断点打在 currentIndex 选取逻辑处。

Agent 运行时分流

重点文件:src/agents/harness/src/agents/sandbox/。决定本轮走内建 Subagent 还是外部 ACP Harness。修改运行时分流与沙箱校验,优先断点于此。

上下文与记忆引擎

重点文件:src/context-engine/registry.tsdelegates.ts。控制上下文组装与压缩。改造长期记忆检索与压缩策略,这里是最干净的切入点。

会话与持久化层

重点文件:src/sessions/session-id-resolution.tstranscript-events.ts。处理消息映射与 JSONL 落盘。会话串话、压缩日志异常等问题,首查此处的 resolve 逻辑与落盘事件。

插件注册契约层

重点文件:src/plugins/api-builder.tspackages/plugin-sdk/。OpenClaw 的扩展正门。新增 Provider、Channel,优先利用 Plugin SDK 从此处构建注册接口,避免硬改 Core。

4.2 Hermes 调试路线

系统绝对中枢

重点文件:run_agent.py。Hermes 80% 核心行为发生地。涵盖主循环、工具派发、API 选择与压缩触发。初始化、系统 Prompt 前、工具调用前后必下断点。

工具注册与分发

重点文件:model_tools.pytoolsets.pytools/registry.py。工具发现与调度链路。排查工具未在 Schema 中显示,断在 registry.register() 或 _discover_tools()。

系统提示词装配

重点文件:agent/prompt_builder.py。拼接 SOUL/MEMORY 及上下文文件。调优 Prompt 稳定性、平台性格差异或安全扫描策略的正入口。

上下文压缩接口

重点文件:agent/context_engine.pyagent/context_compressor.py。控制压缩时机与 Token 回写。长会话崩溃时,断在 should_compress() 与 compress()。

模型解析链路

重点文件:hermes_cli/runtime_provider.pyhermes_cli/auth.py。处理 Provider 解析与 Base URL 探测。模型接线、Key 泄露或 API Mode 分流错误,断在 resolve_runtime_provider()。

消息网关壳层

重点文件:gateway/run.pygateway/session.py。外部平台消息统一转化为内部事件。排查 Slash 命令拦截失败、频道串联问题,断在 GatewayRunner._handle_message()。

状态与数据库

重点文件:hermes_stat.py。操作 stat.db SQLite 库。修改持久化策略、会话检索逻辑必须由此切入。

5 高效阅读

5.1 OpenClaw 快读顺序

核心思路:顺着控制平面注册与会话路由线索。

OpenClaw快读文件顺序

改造建议:想加能力走 Plugin SDK 注册;想改行为动 Context-engine 与 Sessions;最后再碰 Gateway 协议层。

5.2 Hermes 快读顺序

核心思路:直击 Agent 主循环,向外围追溯。

Hermes快读文件顺序

改造建议:加工具走固定的三文件路径(tools/*.py -> toolsets.py -> model_tools.py);加 Provider 按官方 Checklist 贯穿 auth.py 与 run_agent.py,顺应其沿主干扩张的设计哲学。




上一篇:拆解字节UI-TARS:8大数据格式与三阶段GUI大模型训练指南
下一篇:OpenClaw 调用 ClawHub 镜像站:Weather 技能极速安装全记录
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-27 02:18 , Processed in 0.833374 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表