基于 hermes-agent v0.8.0 / openclaw v2026.4.10 源码分析
项目概述
| 属性 | Hermes-Agent | OpenClaw |
|---|---|---|
| 开发方 | Nous Research | 开源社区(Peter Steinberger 主导) |
| 版本 | v0.8.0 | v2026.4.10 |
| 许可证 | MIT | MIT |
| 定位 | "自我改进的 AI Agent",具备学习循环 | "个人 AI 助手",多渠道接入 |
| 主语言 | Python 3.11+ | TypeScript(ESM,Node 22+) |
架构哲学对比
Hermes-Agent:一体化、自我进化
Hermes-Agent 的核心设计哲学是一体化的自我改进循环。以 AIAgent 类为核心,所有功能(工具、记忆、技能、网关)都在同一 Python 进程中运行并紧密耦合。这种设计使得:
- 学习闭环:Agent 可以在任务完成后自主创建和改进技能
- 用户建模:通过 Honcho 持续构建用户画像
- 研究导向:提供完整的 RL 训练环境(Atropos)、批量轨迹生成、轨迹压缩等研究工具
代价:单体结构导致扩展时需要修改核心代码,插件边界不清晰。
OpenClaw:网关优先、插件化解耦
OpenClaw 的核心设计哲学是 Gateway 控制平面 + 插件化扩展。Gateway 是唯一的控制中心,所有客户端(CLI、App、节点)都是 Gateway 的消费者,通过严格的 Plugin SDK 边界隔离核心与扩展。这种设计使得:
- 第三方生态:严格的 SDK 边界和向后兼容承诺支撑第三方插件
- 多设备原生体验:macOS/iOS/Android 原生 App 与 Gateway 无缝集成
- 核心精简:避免功能膨胀,新能力优先通过插件实现
代价:架构复杂度更高,学习曲线更陡,功能演进需要维护 SDK。
技术栈对比
Hermes-Agent
- 语言:Python 3.11+
- 构建:setuptools / uv
- 核心依赖:openai / anthropic(LLM 客户端)、prompt_toolkit(TUI 交互)、rich(终端美化)、pydantic(数据验证)、sqlite3(状态持久化,FTS5)、jinja2(模板)、tenacity(重试)
- 可选扩展:modal / daytona(云沙箱)、mcp(Model Context Protocol)、elevenlabs / edge-tts(TTS)、faster-whisper(本地 STT)、croniter(定时任务)、honcho-ai(用户建模)、matrix / slack / discord / telegram 等(消息平台)
OpenClaw
- 语言:TypeScript(ESM)
- 构建:tsdown / tsc(pnpm build)
- 运行时:Node.js 22+ / Bun
- 核心依赖:内部 Plugin SDK、zod(外部边界 schema 验证)、vitest(测试)、oxlint / oxfmt(代码质量)、jiti(TypeScript 运行时加载)
- 平台层:macOS App(Swift / SwiftUI)、iOS Node / Android Node(原生应用)、WebChat UI(内置前端)
核心子系统对比
Agent 循环(推理引擎)
Hermes-Agent:核心类为 AIAgent(run_agent.py),采用完全同步的 while 循环,最大迭代次数默认 90 次。消息格式采用 OpenAI 格式,支持上下文压缩和 Anthropic prompt caching。
OpenClaw:核心模块为 src/agents/agent-command.ts(runAgentAttempt),采用异步(TypeScript async/await)和事件驱动模式。Pi Agent 以 RPC 模式运行,支持工具流和块流,内置模型降级(model fallback)和上下文压缩。
总结:两者都重视 prompt 缓存稳定性,但 Hermes 是同步 Python 循环,OpenClaw 是异步 TypeScript 事件驱动。
Gateway(消息网关)
Hermes-Agent:入口为 gateway/run.py(单文件 ~400KB),采用进程内直接调用,网关与 Agent 在同一 Python 进程。支持 20 个平台:Telegram、Discord、Slack、WhatsApp、Signal、BlueBubbles、iMessage、Matrix、Mattermost、DingTalk、Feishu、WeChat、WeCom、LINE、SMS、Email、Home Assistant、API Server、Webhook。
OpenClaw:入口为 src/gateway/server.impl.ts,控制平面为 WebSocket(ws://127.0.0.1:18789),所有客户端通过 WS 连接。支持 23 个平台,包括 WhatsApp、Telegram、Slack、Discord、Google Chat、Signal、Microsoft Teams、Matrix、Feishu、WeChat、WebChat 等。
关键差异:OpenClaw 的 Gateway 是独立的 WebSocket 控制平面;Hermes 的 Gateway 是进程内模块,直接调用 Agent。
工具系统(Tool System)
Hermes-Agent:中心化注册机制(tools/registry.py),核心工具集约 50+ 个,包括 web_search、terminal、read_file、write_file、browser_navigate、vision_analyze、delegate_task、cronjob 等。支持工具发现和动态加载。
OpenClaw:工具通过 Plugin SDK 注册,核心工具包括 bash/exec、文件工具(read/write/edit/patch)、browser(CDP 控制)、canvas(A2UI 可视化工作区)、sessions 系列工具。支持工具调用审批(iOS push 通知审批)。
关键差异:Hermes 工具是 Python 函数 + 中心注册表;OpenClaw 工具通过 Plugin SDK 注册,具有更严格的边界隔离和沙箱支持。
技能系统(Skills System)
Hermes-Agent:技能路径为 ~/.hermes/skills/,仓库内置 400+ 项技能,采用 Markdown 文件格式(SKILL.md)+ YAML frontmatter。调用方式为斜杠命令触发,注入为用户消息。支持技能自我改进,在线技能市场为 agentskills.io。
OpenClaw:技能路径为 ~/.openclaw/workspace/skills/,仓库内置约 50 项技能,更专注于 macOS 生态系统和个人效率工具。在线技能市场为 clawhub.com。
关键差异:Hermes 技能系统具有自我改进和学习闭环能力,技能数量更多且更偏向 AI/MLOps/研究场景;OpenClaw 技能更偏向 macOS 生态系统和个人效率工具。
插件/扩展系统
Hermes-Agent:无正式插件 SDK,扩展以 Python 模块形式添加。可选技能目录存放 130 项可选技能,主要靠 toolsets.py 组合工具集实现功能扩展。
OpenClaw:拥有完整的 Plugin SDK(src/plugin-sdk/),严格的 SDK 边界和向后兼容承诺,支持第三方插件生态。
会话与持久化
Hermes-Agent:使用 SQLite(FTS5)进行状态持久化,支持历史会话全文搜索(session_search),上下文压缩生成新会话分支(parent_session_id)。
OpenClaw:会话存储在 Gateway 层面,支持会话历史查看和会话发送,支持会话压缩(session compaction)。
调度系统(Cron)
Hermes-Agent:使用 croniter 实现定时任务,通过 cronjob 工具进行调度,支持持久化的定时任务配置。
OpenClaw:内置 cron 工具,支持定时任务调度。
MCP 支持
Hermes-Agent:通过 mcp_* 系列工具透传 MCP 工具(约 1050 行代码),支持 MCP 服务器连接和工具发现。
OpenClaw:通过插件系统支持 MCP 协议扩展。
ACP 支持
Hermes-Agent:原生支持 ACP(Agent Communication Protocol),支持与其他 Agent 的通信和协调。
安全模型
Hermes-Agent:工具调用需要审批,支持终端命令执行的安全控制。
OpenClaw:工具调用审批通过 iOS push 通知,支持沙箱模式隔离运行。
相同点汇总
- 都是开源项目,采用 MIT 许可证
- 都支持多平台消息集成
- 都重视 prompt 缓存稳定性
- 都支持定时任务调度
- 都提供技能系统和工作区管理
- 都支持上下文压缩和会话管理
不同点汇总
- 架构哲学:Hermes 一体化 vs OpenClaw 插件化
- 编程语言:Python vs TypeScript
- 控制流:Hermes 同步集中 vs OpenClaw 异步去中心化
- 技能数量:Hermes 400+ vs OpenClaw ~50
- 技能改进:Hermes 支持自我改进 vs OpenClaw 不支持
- 原生应用:OpenClaw 有 macOS/iOS/Android 原生 App,Hermes 无
- 插件生态:OpenClaw 有正式 Plugin SDK,Hermes 无
总结
Hermes-Agent 和 OpenClaw 代表了 AI Agent 框架的两种不同设计哲学。Hermes-Agent 以其一体化的自我改进循环和强大的研究工具集,成为 AI 研究者和追求自主学习能力用户的首选;而 OpenClaw 以其网关优先的插件化架构和多平台原生支持,更适合追求生态扩展性和多设备无缝体验的用户。
随着 AI Agent 领域的快速发展,两者都在不断演进。对于开发者而言,选择哪个框架取决于具体需求:如果追求深度定制和自我进化能力,Hermes-Agent 是更好的选择;如果追求生态扩展和跨平台一致性体验,OpenClaw 更适合。