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

1 架构定位
1.1 核心理念差异
OpenClaw与Hermes在设计中心上存在本质区别。OpenClaw是一个典型的AI网关与编排平台,官方将其定义为Self-hostedgateway。其核心是一个常驻网关,负责将Discord、Telegram、WhatsApp等全渠道聊天入口、工具、任务系统无缝对接,重心在于入口聚合与路由分发。
Hermes则更像一个长期存活的Agent内核。它强调Agent本体的持续进化与统一运行时,核心理念是Agent lives on your server, remembers what it learns, gets more capable the longer it runs。

1.2 语言与适用场景
OpenClaw构建在前端生态之上,推荐使用Node24(兼容Node22.14+),主语言为TypeScript。系统明显按Node平台产品打造,非常契合插件开发、前后端控制面及桌面/移动端配套的自然延伸。
Hermes则是彻头彻尾的Python-first。官方安装器自动处理uv、Python3.11,而Nodev22仅作为浏览器自动化和部分桥接依赖。其插件目录、工具注册与记忆提供者完全遵循Python生态语义。
•优先选OpenClaw:若你需要一个真正的个人AI基础设施入口层,看重多渠道接入(Telegram/WhatsApp等)、控制UI、移动节点、任务审计,并希望将外部CodingAgent纳入统一编排。
•优先选Hermes:若你在意Python生态、Agent本体能力进化、外部MemoryProvider接入、底层执行后端切换,或希望将其作为PythonLibrary嵌入自有系统。
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、EventHooks、Webhook),每次任务在FreshSession中执行,但未过度抽象运营层概念。
2.3 安全与扩展性
✅安全纵深理念
OpenClaw基于Trusted Single-operator假设,默认不将网关视为敌意多租户边界。默认允许HostExec,强调先让可信操作者高效,再按需开启审批与沙箱。
Hermes主打Defense-in-depth(纵深防御),官方列出7层安全架构,危险命令默认Manual审批,Docker后端硬编码限制特权,开箱即先谨慎、再放权。
✅ACP与生态兼容
OpenClaw将ACP清晰分为Gateway-backed桥接与ACPAgents(将Codex/ClaudeCode作为后台任务编排),擅长兼容外部生态。
Hermes同样将ACP视为一等公民(如Generalized ACP Client提案),迭代极快。
3 源码组织
3.1 OpenClaw横向分层
OpenClaw源码体现了先拆平台边界,再嵌Agent的横向分层思想。控制平面做主导,其他模块围绕展开。

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

3.3 源码差异
• 1.扩展路径:OpenClaw的Provider/Channel等能力基于SDK暴露为注册点,类似挂载插件。Hermes增加内建工具常需修改核心主干文件。
• 2.代码侵入度:在OpenClaw注册Provider仅需使用api.registerProvider();但在Hermes中,需修改auth.py、models.py、run_agent.py等深入内核的文件。
• 3.状态与调试:OpenClaw调试需查GatewayRPC、sessions.json与Workspace;Hermes调试往往只需追踪run_agent.py执行链与stat.db。
4 源码调试
4.1 OpenClaw调试路线
✅CLI总入口层
重点文件:src/cli/command-bootstrap.ts、src/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还是外部ACPHarness。修改运行时分流与沙箱校验,优先断点于此。
✅上下文与记忆引擎
重点文件:src/context-engine/registry.ts、delegates.ts。控制上下文组装与压缩。改造长期记忆检索与压缩策略,这里是最干净的切入点。
✅会话与持久化层
重点文件:src/sessions/session-id-resolution.ts、transcript-events.ts。处理消息映射与JSONL落盘。会话串话、压缩日志异常等问题,首查此处的resolve逻辑与落盘事件。
✅插件注册契约层
重点文件:src/plugins/api-builder.ts、packages/plugin-sdk/。OpenClaw的扩展正门。新增Provider、Channel,优先利用PluginSDK从此处构建注册接口,避免硬改Core。
4.2 Hermes调试路线
✅系统绝对中枢
重点文件:run_agent.py。Hermes80%核心行为发生地。涵盖主循环、工具派发、API选择与压缩触发。初始化、系统Prompt前、工具调用前后必下断点。
✅工具注册与分发
重点文件:model_tools.py、toolsets.py、tools/registry.py。工具发现与调度链路。排查工具未在Schema中显示,断在registry.register()或_discover_tools()。
✅系统提示词装配
重点文件:agent/prompt_builder.py。拼接SOUL/MEMORY及上下文文件。调优Prompt稳定性、平台性格差异或安全扫描策略的正入口。
✅上下文压缩接口
重点文件:agent/context_engine.py、agent/context_compressor.py。控制压缩时机与Token回写。长会话崩溃时,断在should_compress()与compress()。
✅模型解析链路
重点文件:hermes_cli/runtime_provider.py、hermes_cli/auth.py。处理Provider解析与BaseURL探测。模型接线、Key泄露或APIMode分流错误,断在resolve_runtime_provider()。
✅消息网关壳层
重点文件:gateway/run.py、gateway/session.py。外部平台消息统一转化为内部事件。排查Slash命令拦截失败、频道串联问题,断在GatewayRunner._handle_message()。
✅状态与数据库
重点文件:hermes_stat.py。操作stat.dbSQLite库。修改持久化策略、会话检索逻辑必须由此切入。
5 高效阅读
5.1 OpenClaw快读顺序
核心思路:顺着控制平面注册与会话路由线索。

改造建议:想加能力走PluginSDK注册;想改行为动Context-engine与Sessions;最后再碰Gateway协议层。
5.2 Hermes快读顺序
核心思路:直击Agent主循环,向外围追溯。

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