乐于分享
好东西不私藏

超越 OpenClaw, 越用越强的 Agent:15万Star,Hermes Agent 架构拆解

超越 OpenClaw, 越用越强的 Agent:15万Star,Hermes Agent 架构拆解

Hermes Agent Masterclass 封面

你用过的每一个 AI Agent 都有同一个问题:会话结束,一切归零。

你的编码习惯、你纠正过三次的项目规范、它昨天花 10 分钟才摸索出来的解法——全部丢失。下次对话,从头再来。

Hermes Agent(Nous Research 开源)走了一条完全不同的路。两个月,GitHub Star 突破 90,000,今天 152k star:

Hermes Agent Star History

它内置了一套学习闭环:

  • • 跨会话记忆——三层分级,关键事实永远在场
  • • 自生成 Skills——Agent 自己把成功路径写成可复用流程
  • • Curator 修剪——后台自动清理过时技能,防止垃圾堆积
  • • GEPA 离线优化——用进化算法打磨 Skills 和 Prompt,不碰模型权重

没有其他开源 Agent 同时做到这三件事。

这篇拆它的设计思想。如果你在自研 Agent 框架,或者想理解”会成长的 Agent”到底怎么做,往下看。


它和 Claude Code、OpenClaw 有什么不同?

为了快速理解 Hermes 的定位,我用三个你可能已经熟悉的工具做对比:

维度
Claude Code
OpenClaw
Hermes Agent
核心定位
编程 Agent(终端内)
多模型个人 AI 助手
会自我沉淀经验的 Agent runtime
记忆能力
CLAUDE.md(手动维护)
会话内记忆
三层记忆:关键事实 + 历史搜索 + 外部语义记忆
技能沉淀
无(每次重新摸索)
Skills 生态(社区贡献)
Agent 自己创建、修改、治理 Skills
多平台
终端 + IDE
终端 + Web
CLI + Telegram + Discord + Slack + API + Cron
是否常驻
否,用完即走
是,Gateway 24/7 在线
自我进化
GEPA 离线优化 Skills/Prompt

如果再把 OpenClaw 和 Hermes 拉出来做更细粒度的对比,差异会更明显:

维度
OpenClaw
Hermes Agent
架构哲学
Gateway-first,WebSocket 路由挂载 Agent
Agent-first,学习型 runtime,Gateway 只是入口之一
渠道覆盖
50+ messaging channels
18+ channels,聚焦高频使用场景
技能生态
13,700+ 社区贡献 Skills
~120 内置 + skills.sh + GitHub taps
学习闭环
Skills 静态不变
Skills 自演化 + Curator 修剪 + GEPA 离线优化
记忆机制
纯 Markdown 文件
三层:有界 Markdown + FTS5 搜索 + 8 种外部 Provider
安全态势
2026 年已有 6 个 CVE,341+ 恶意 Skills 被标记,135K+ Shodan 暴露实例
截至 2026 年 4 月零 Agent 相关 CVE,文件操作前快照回滚
一句话总结区别:
  • • Claude Code 是最强的编程 Agent,但它不记得你,也不会自己变强。
  • • OpenClaw 是最灵活的个人 AI 助手入口,但它的 Skills 靠社区贡献,不是 Agent 自己沉淀的。
  • • Hermes 不是最好用的产品,但它在架构层面回答了一个更底层的问题:Agent 怎么从”一次性工具调用器”进化成”长期协作伙伴”?

如果你的目标是”用一个好用的 AI 助手”,Claude Code 和 OpenClaw 已经很好了。

如果你的目标是”自研一个 Agent 底层框架”,Hermes 的设计思想更值得拆。

Hermes Agent 架构图

Hermes 最值得学的 5 个设计

设计一:Agent Core 平台无关

很多自研 Agent 一开始会写成这样:

CLI Agent 一套逻辑Web Agent 一套逻辑微信 Bot 一套逻辑飞书 Bot 一套逻辑

三个月后代码库变成 if-else 地狱,修一个 bug 要改四个地方。

Hermes 的做法是:入口可以很多,但 Agent Core 只有一个。

CLI / TUI / Gateway / ACP / Batch / API                 ↓              AIAgent(唯一内核)                 ↓Prompt Builder / Provider Router / Tool Dispatcher                 ↓SQLite / Memory / Skills / Tools / MCP / Cron

官方架构文档里有一句话值得抄到你的设计文档里:

One AIAgent class serves CLI, gateway, ACP, batch, and API server. Platform differences live in the entry point, not the agent.

我的判断:这是自研框架第一天就该定下的原则。我见过太多项目因为”先做个微信 bot 再说”,最后被入口层绑架了整个架构。先写一个干净的 Agent Core,再接入口,永远不会错。


设计二:Prompt 不是字符串,是可组合资产

Hermes 的系统 Prompt 不是一大坨写死的文本,而是由多种上下文资产拼出来:

SOUL.md(它是谁)+ MEMORY.md(它知道什么)+ USER.md(它了解你什么)+ Skills index(它会什么)+ Context files+ Tool guidance+ Model-specific instructions

其中 SOUL.md 定义 Agent 的身份——语气、边界、禁区。这比”你是一个 XX 专家”高级得多。

原文有一句话很精辟:SOUL.md 是固定框架,记忆和技能是框架内的移动部件。 身份不变,能力在长。这才是多 Agent 人格隔离的正确基础。

我的判断:Claude Code 的 CLAUDE.md 其实是这个方向的简化版——一个静态的项目级 Prompt 资产。但 Hermes 把它拆成了身份层、记忆层、技能层三个独立维度,每个维度可以独立演化。如果你要做多个 Agent(程序员、研究员、运营),这种分层比”换一句系统提示词”强太多。


设计三:记忆分层,不要把一切都塞进 Prompt

很多 Agent 做记忆时会犯一个错误:把所有历史都塞进上下文。结果就是贵、慢、乱,还容易污染当前任务。

Hermes 的记忆是分层的:

Hermes Agent 三层记忆
层级
机制
适合保存什么
第一层
MEMORY.md

 / USER.md(≤2200 字符)
必须每次都知道的关键事实
第二层
SQLite + FTS5 会话搜索
过去讨论过的内容,按需检索
第三层
外部 Memory Provider
语义记忆、用户模型、知识图谱

核心原则:

关键事实永远在场,普通历史按需搜索,深层记忆交给外部插件。

我的判断:这个设计很克制,也很正确。我之前试过”无限记忆”方案(把所有对话存向量库,每次 RAG 召回),效果很差——召回的内容经常和当前任务无关,反而干扰模型判断。Hermes 的”少量关键事实 + 按需搜索”是更务实的路线。


设计四:Skills 是 Agent 的”肌肉记忆”

这是 Hermes 最有特色的部分。

Memory 记的是事实,Skills 记的是流程。

比如:怎么给 Python 项目做测试、怎么写 GitHub PR、怎么调研一个开源项目、怎么发布 Docker 服务。

这些东西如果每次都让 Agent 重新摸索,就很浪费。Hermes 把它们沉淀成结构化的 Skill:

skill-name/├── SKILL.md        # 流程描述├── references/     # 参考资料├── templates/      # 模板├── scripts/        # 脚本└── assets/         # 素材

更关键的是:Agent 可以自己创建和修改 Skill。

典型触发场景:

  • • 完成了一个复杂任务
  • • 中途踩坑后找到了正确路径
  • • 用户纠正了它的做法
  • • 发现了一个非平凡工作流
Hermes Self Improvement Loop

闭环是这样的:

遇到问题 → 尝试解决 → 找到成功路径 → 写成 Skill → 下次复用

我的判断:这是 Hermes 和其他所有 Agent 框架拉开差距的地方。Claude Code 每次都在重新摸索你的项目规范;OpenClaw 的 Skills 靠社区写好给你用。只有 Hermes 让 Agent 自己从实践中沉淀能力。这才像一个真正会成长的系统。

当然,自生成 Skills 会越来越多,所以 Hermes 还配了 Curator——一个后台垃圾回收机制。核心规则:

  • • 30 天未使用 → 标记为 stale
  • • 90 天未使用 → 自动归档到 .archive/
  • • 永不自动删除,最坏情况只是归档,一条命令可恢复
  • • 每次 Curator 运行前,自动对整个 skills 目录做 tar.gz 快照
  • • 关键 Skill 可以 hermes curator pin 锁定,防止被归档

否则”会学习”很快变成”会堆垃圾”。Curator 让自演化有了安全网。

Hermes Curator

设计五:Gateway 让 Agent 真正 24/7 在线

如果一个 Agent 只能在终端里用,它更像开发工具。

如果它能在 Telegram、Discord、Slack、API 里常驻,还能定时执行任务、主动推送结果,它才开始像”个人 AI 操作系统”。

三个 Telegram Agent

Hermes Gateway 做了这些事:

  • • 接收不同平台消息
  • • 鉴权和 allowlist
  • • 路由到对应 session
  • • 调用 AIAgent
  • • 把结果发回平台
  • • 运行 Cron scheduler(定时任务)
  • • 处理后台任务
  • • 主动推送进度
Hermes Cron Digest

我的判断:Gateway + Cron 是让 Agent 从”等你提问”变成”到点主动工作”的关键。我个人最想要的场景是:每天早上 Agent 自动帮我看 GitHub notifications、总结 PR review 状态、推送到 Telegram。这在 Claude Code 里做不到,但在 Hermes 架构里是原生支持的。


额外加分项:GEPA——不训练模型,优化”操作手册”

Hermes 还有一个 companion repo 做离线优化。

为什么需要它?因为 Agent 的运行时学习闭环有一个已知弱点:Agent 倾向于”自我表扬”——它几乎总是觉得自己做得不错,即使实际翻车了。让它自己评估自己,不靠谱。

GEPA 的思路是:不问 Agent “你做得好不好”,而是读取执行轨迹,从外部分析失败原因,再用进化搜索生成更好的版本。不微调模型权重,只打磨 Agent 的”操作手册”(Skill / Prompt / 工具描述)。

GEPA Pipeline

流程:读取执行轨迹 → 分析失败原因 → 生成候选版本 → LLM-as-judge 评估 → 最优版本提交。

我的判断:对个人开发者来说,这个方向比微调模型现实得多——不用 GPU、不碰权重,先把 Agent 的操作手册打磨好。这也是为什么我觉得 Skills 设计是 Hermes 最核心的资产:它不仅是运行时能力,还是可被离线优化的对象。


如果你要自研 Agent 框架,按什么优先级抄?

我的建议排序:

第一,抄分层架构。 入口可以变,核心不能乱。

Entry Points → Agent Core → Provider Router → Tool Registry → Memory / Skills / Session Store → Sandbox / Gateway / Cron

第二,抄工具注册表。 每个工具要有 name、schema、handler、risk_level、timeout、approval_policy。不要把工具写成散落各处的函数。

第三,抄记忆分层。 少量关键事实永远注入,历史会话按需搜索,深层语义记忆插件化。

第四,抄 Skills。 Agent 真正的成长不是”记住你喜欢喝咖啡”,而是”记住遇到这类任务该按什么流程做”。

第五,抄 Gateway + Cron。 Agent 要从聊天工具变成工作伙伴,必须能常驻、接消息、定时执行、主动推送。


一个适合自研的最小架构蓝图

如果我从零做一个 Agent 底层框架,第一版只需要跑通:

一个 Agent Core + 一个 Provider + 一个 Tool Registry + 一个 Session Store + 一个 Memory Store + 一个 Skill Loader + 一个 CLI

然后再叠加 Gateway、Cron、Profiles、MCP。

完整骨架参考:

agent-framework/├── core/           # agent_loop, prompt_builder, provider_router, tool_dispatcher├── tools/          # registry, terminal, file, web, browser, mcp├── memory/         # memory_store, session_search, providers/├── skills/         # loader, manager, auditor, curator├── gateway/        # router, auth, platforms/, delivery├── cron/├── profiles/├── storage/└── cli/

最大的风险:能力越强,安全边界越要提前做

一个能读写文件、跑命令、联网、长期在线、接消息平台、自我修改 Skills 的 Agent,风险也是成比例的。

自研框架必须一开始就设计:

风险
必须有的机制
工具误用
approval / allowlist / risk level
Bot 被陌生人调用
user allowlist / pairing
命令破坏主机
Docker / SSH sandbox
记忆污染
memory scan / prompt injection 检测
Skill 被污染
security audit / provenance / rollback
API key 泄漏
.env

 隔离 / secret redaction
失控循环
max turns / budget / timeout

最后

Hermes Agent 给我最大的启发不是”这个工具我能不能日常用”,而是:

一个真正可持续的 Agent 框架,必须把执行、记忆、技能、入口、安全、评估都设计成系统。

如果只做 tool call,它只是一个会调用函数的聊天机器人。

加上长期记忆,它开始认识你。

加上 Skills,它开始记住做事方法。

加上 Gateway,它开始常驻工作。

加上 Curator 和 GEPA,它开始有机会持续变强。

这才是自研 Agent 底层框架应该瞄准的方向。


下一篇我会写 Hermes Agent 的完整实操:macOS 安装、模型配置、接 Telegram、玩转 Skills 和 Profiles。先把理论吃透,再动手不迟。


参考资料

  • • Hermes Agent GitHub:https://github.com/NousResearch/hermes-agent
  • • 官方文档:https://hermes-agent.nousresearch.com/docs/
  • • 架构文档:https://hermes-agent.nousresearch.com/docs/developer-guide/architecture
  • • Skills 文档:https://hermes-agent.nousresearch.com/docs/user-guide/features/skills
  • • Memory 文档:https://hermes-agent.nousresearch.com/docs/user-guide/features/memory
  • • GEPA 论文:https://arxiv.org/abs/2507.19457
  • • Hermes Agent Self-Evolution:https://github.com/NousResearch/hermes-agent-self-evolution