Appearance
Hermes Agent — 全景导读
一句话定位:一个自带学习闭环、多平台接入、模型无关的开源 AI Agent,能从经验中创建 Skill、跨会话记忆,且可用于 RL 训练数据生成。
本文作为 hermes 目录的入口主索引——把 6 篇深度文档串成一张地图,让你按需进入。 新读者建议按本篇的顺序通读三大主线后,再根据兴趣点深入对应专题文档。
1. 项目核心数据
| 维度 | 数据 |
|---|---|
| 仓库 | nousresearch/hermes-agent |
| Stars | 118K+ |
| 语言 | Python (核心) + TypeScript (TUI/Web) |
| 协议 | MIT |
| 版本 | v0.11.0 |
| 核心代码量 | run_agent.py 12.8K 行, cli.py 11K 行 |
| 创建时间 | 2025-07-22 |
| 维护者 | Nous Research |
详细项目背景与目标用户画像见下文 §5 落地评估,或 Hermes 仓库 README。
2. 整体架构地图
┌────────────────────────────────────────────────┐
│ 多平台 Gateway 层 │
│ CLI / Telegram / Discord / Slack / 钉钉 / 飞书 │
│ WhatsApp / Signal / 企微 / Webhook / Email │
└────────────────────────┬───────────────────────┘
│ Session 抽象(PII 脱敏)
▼
┌────────────────────────────────────────────────┐
│ AIAgent.run_conversation() │
│ ┌────────────────────────────────────────┐ │
│ │ System Prompt 组装 │ │
│ │ SOUL.md + Skills 索引 + Memory │ │
│ │ + Context Files + 环境提示 │ │
│ └────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────┐ │
│ │ Tool-Calling Loop(同步迭代) │ │
│ │ while iter < max: │ │
│ │ LLM.chat() → tool_calls → 调度执行 │ │
│ └────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────┐ │
│ │ 后处理(异步后台) │ │
│ │ Memory 同步 / Skill 自动创建 │ │
│ │ Trajectory 保存 / Context 压缩 │ │
│ └────────────────────────────────────────┘ │
└────────┬───────────────────────┬───────────────┘
│ │
┌──────────────▼─────────┐ ┌────────▼─────────────┐
│ 工具系统 │ │ 自进化系统 │
│ Registry / Toolset │ │ Background Review │
│ 70+ 内置 + MCP │ │ Skill Manager │
│ 并行/串行调度 │ │ Curator (7天周期) │
└──────────────┬─────────┘ └────────┬─────────────┘
│ │
┌────────▼───────────────────────▼───────────┐
│ 多模型适配层 │
│ OpenAI SDK 统一入口 │
│ + anthropic / gemini / bedrock / codex │
│ + ollama / NVIDIA / 智谱 / Kimi / MiniMax │
│ + Tool-call 解析器(按模型分发) │
└────────────────────────────────────────────────┘子系统职责一览:
| 子系统 | 关键能力 |
|---|---|
| 多平台 Gateway | 11+ 平台 adapter / 统一 Session / PII 脱敏 / Cron 跨平台投递 |
| AIAgent 主循环 | Prompt 组装 / Tool-calling / 后处理(Memory 同步 + Skill 创建 + Trajectory + Context 压缩) |
| 多模型适配层 | Provider 抽象 / Tool-call 解析器按模型分发 / 降级容错 |
| 工具系统 | Tool(70+ 内置 + MCP)/ Toolset 分组 / 并行调度 / Skill 渐进式披露 |
| 自进化系统 | Background Review Fork(异步隔离 16 轮)/ Skill Manager / Curator(7 天周期 + 状态机 + LLM 合并) |
| 设计哲学与 PM 启发 | 横切产品视角的复盘 → 设计哲学与 PM 启发录 |
3. 三大设计主线
Hermes 的全部技术决策都收敛到三条主线,理解这三条就能理解 70% 的架构选择。
主线一:模型无关 — 用户自由 = 长期信任
核心命题:不绑定任何单一模型厂商,用户随时可在 Claude / GPT / Gemini / Ollama / 国产模型之间切换;任一 Provider 故障时自动降级到备选模型。
实现要点:
- 统一通过 OpenAI SDK 调用,针对各厂商写适配器(anthropic / gemini_native / bedrock / codex_responses / moonshot 等)
- Tool-call 解析器分发:不同模型输出的工具调用格式不一致,按 model 名称路由到对应 parser(hermes / qwen / deepseek_v3 / llama / glm45 等)
- 模型异构 Prompt 注入:根据模型特点注入差异化指导(GPT 容易"只说不做" → 强制要求执行;Gemini 路径粗糙 → 强调绝对路径并行调用)
- 比例阈值压缩:上下文压缩按窗口占比触发(默认 50%),自动适配任意窗口大小,而非固定 Token 数
模型异构 Prompt 注入与 Provider 适配的设计权衡见 设计哲学篇 §权衡 1 / 模板 2。
主线二:多平台一体 — 一个 Agent,到处可达
核心命题:一个 Gateway 进程统一所有 IM 平台,Agent 不感知消息来源,用户在哪都能召唤同一个 Agent 实例。
实现要点:
- 每个平台一个 adapter 文件(Telegram / Discord / Slack / WhatsApp / Signal / 钉钉 / 飞书 / 企微 / QQ Bot / Home Assistant / Email / SMS / Webhook)
SessionSource数据类抽象消息来源(平台 / chat_id / thread_id),用于路由回复- PII 自动脱敏:sender_id 和 chat_id 走 SHA256 哈希,日志中不出现原始 ID
- Cron 调度:内置 croniter,定时任务可投递到任何平台
- TUI 前端:CLI 端通过 prompt-toolkit 提供 streaming / spinner / kawaii 表情 / skin 主题 / markdown 三模式渲染
多平台 Gateway 与 TUI 前端(Streaming / Spinner / Skin / Markdown 三模式)的设计权衡见 设计哲学篇 §哲学 2。
主线三:自进化闭环 — 越用越强
核心命题:Agent 在执行任务的同时持续从对话中学习——把成功经验沉淀为 Skill,把用户挫败感转为程序性修正,由 Curator 定期合并整理,防止知识库退化。
实现要点(三层闭环):
- Layer 1 — Background Review Fork:每 10 轮对话或 10 次工具迭代后,后台异步 fork 一个隔离的 Review Agent,从记忆 / 技能 / 综合三维度复盘
- Layer 2 — Skill Manager:结构化存储
~/.hermes/skills/,包含 SKILL.md + references/ + templates/ + scripts/,6 个操作(create / edit / patch / delete / write_file / remove_file) - Layer 3 — Curator:每 7 天运行一次,自动状态转换(active → stale → archived)+ LLM 驱动的 umbrella 合并
与"营销化自进化"的本质区别:Hermes 不自动用用户数据训练模型权重;自进化的真正内涵是「动态 Skill 生成(外部知识扩充)+ 可选的 RL 训练(用 Teacher 模型蒸馏到小模型)」。
三层闭环(Background Review / Skill Manager / Curator)的设计权衡与可复用模板见 设计哲学篇 §哲学 1 / §哲学 7 / §模板 1。
4. 关键差异化清单(vs Claude Code / OpenClaw / Codex)
| 维度 | Hermes | Claude Code | OpenClaw | Codex |
|---|---|---|---|---|
| 模型自由度 | ⭐⭐⭐ 200+ 模型 | ⭐ 仅 Claude | ⭐⭐ 主流厂商 | ⭐ 仅 OpenAI |
| 多平台接入 | ⭐⭐⭐ 11+ IM 平台 | CLI / IDE | CLI | CLI |
| Skill 自创建 | ⭐⭐⭐ 动态生成 + Curator 维护 | ⭐⭐ 静态预置 | ⭐⭐ 静态预置 | ⭐ 无 |
| RL 训练数据生成 | ⭐⭐⭐ Atropos 集成 | ⭐ 无 | ⭐ 无 | ⭐ 无 |
| 上下文压缩 | 比例阈值(窗口 %) | 绝对阈值 | 绝对阈值 | 绝对阈值 |
| 错误自愈 | 14 类结构化错误分类 + 退避 | 通用重试 | 通用重试 | 通用重试 |
| 模块化 | ⚠️ run_agent.py 12K 行巨石 | ⭐⭐⭐ 模块化 | ⭐⭐ 中等 | ⭐⭐ 中等 |
| IDE 集成 | ⚠️ 无 | ⭐⭐⭐ VS Code / Cursor | ⭐ 无 | ⭐⭐ 部分 |
| 生态兼容 | 读 AGENT.md / SOUL.md / CLAUDE.md / .cursorrules | 只读自家 CLAUDE.md | 自家格式 | 自家格式 |
Hermes 的差异化定位:
在 模型自由 × 多平台接入 × 自进化 三个维度同时最强。 代价是单文件巨石架构(贡献者门槛高)+ 缺 IDE 集成(不适合 IDE-first 工作流)。
完整三方对比(vs Claude Code / OpenClaw / Codex)见 设计哲学与 PM 启发录
5. 落地评估
| 维度 | 评估 |
|---|---|
| 部署复杂度 | 低 — 一行 curl 安装,hermes setup 向导式配置 |
| 最低成本 | $5 VPS 即可运行;Modal/Daytona serverless 闲时接近零成本 |
| 成熟度 | 高 — 118K stars,v0.11,10 个 Release Notes 累计 30 万字 |
| 风险 | run_agent.py 12K 行巨石架构,社区贡献门槛极高;无 IDE 集成 |
| 适合场景 | 独立开发者 / OPC / AI 研究员(RL 数据生成)/ 极客自部署 / 多 IM 平台团队 |
| 不适合场景 | 重度 IDE workflow(用 Cursor / Windsurf)/ 企业级合规要求高的场景 |
目标用户画像:
| 用户类型 | 核心需求 |
|---|---|
| 独立开发者 / OPC | 不绑定笔记本、能在 VPS 上 7×24 运行的 AI 助手,通过 Telegram / Discord 随时交互 |
| AI 研究员 | 用 Atropos RL 环境生成 Agent 轨迹数据,训练下一代 tool-calling 模型 |
| 极客 / 自部署用户 | 不想被锁定在 Claude / OpenAI 生态,需要支持 200+ 模型的自由切换 |
| 团队 | 多平台 Gateway 统一入口,Slack / Discord / 钉钉 / 飞书全覆盖 |
6. 推荐阅读顺序
| 读者画像 | 关注章节 |
|---|---|
| PM / 决策者(快速判断要不要研究 / 选型) | 本文 §3 三大主线 + §4 差异化清单 + §5 落地评估 → 设计哲学与 PM 启发录 §第一部分七大哲学 |
| 架构师(理解技术决策) | 本文 §2 架构地图 + §3 三大主线 → 设计哲学与 PM 启发录 §第二部分五处权衡 |
| 要做类似产品 | 本文 §3 三大主线 → 设计哲学与 PM 启发录 §第三部分四套设计模板 + §第五部分 PM 检查清单 |
| 要做 RL 训练 / 研究 | 本文 §3 主线三(自进化闭环)→ Hermes 仓库 environments/ 目录 直接看源码 |
| 要做多平台 IM Bot | 本文 §3 主线二(多平台一体)→ 设计哲学与 PM 启发录 §哲学 2 |
想看源码级深度拆解(Provider 适配器代码 / Curator 1675 行 / Tool 5 部分注册结构 / Streaming pipeline):直接读 Hermes 仓库 源码,配合 Hermes Release Notes 累计 30 万字的设计说明。
7. 与全库其他文档的关联
| 全库文档 | 关联点 |
|---|---|
| Agent 范式演进与工程方法论 | Hermes 代表"自进化 Agent"演进新阶段 |
| Agent 记忆系统 | 内外双驱 Memory(SQLite + Mem0/Honcho) |
| Agent 工程实践与工具生态 | Tool vs Skill 区分 / Registry / 渐进式披露 |
| Agent 架构与协作模式 | Gateway 多平台一体 / 子 Agent 沙箱 |
| Agent 设计哲学与决策框架 | "自进化的边界与误区" / 模型无关战略 / 安全即产品 |
| Harness 概念架构与 Coding 工程实践 | 全生命周期 9 个 Hook 钩子链 |
| Harness 失效模式与演化方向 | 14 类结构化错误分类与恢复策略 |
| OpenClaw 架构深度拆解 | Hermes 在 Prompt/Context/Harness 上继承并演进 OpenClaw |