Hermes Agent Masterclass

Hermes Agent Masterclass

你需要了解和自定义 Hermes Agent 的一切

自进化技能、三层记忆、GEPA 优化,以及从 1 个到 10 个全天候为你工作的 AI 代理。

Hermes Agent 在两个月内就获得了超过 9 万个 GitHub Star。开发者们正在悄悄构建属于自己的个人 AI 代理——它们能学习你的工作流程、记住上下文,并且 24/7 不间断运行。

你用过的每一个 AI 代理都有同一个问题:会话一结束,它就忘掉一切。

你纠正过三次的编码偏好、项目规范、昨天花了 10 分钟才找到的修复方案……全都没了。下次会话,你又得从零开始。

Nous Research 推出的 Hermes Agent 采用了完全不同的方法。它内置了一个学习循环,能够:

  • 跨会话记忆
  • 自主编写可复用的技能
  • 在后台自动修剪技能
  • 通过名为 GEPA 的进化引擎进行离线验证 目前还没有任何开源代理同时具备这三项能力,就连 OpenClaw 也没有。

这篇指南将详细讲解这个学习循环的工作原理、每一层记忆的作用,以及如何从零开始完整配置。

读完之后,你就能在自己的机器上运行三个完全隔离的代理:

  • 一个程序员(使用你的 Claude 代码)
  • 一个深度研究员
  • 一个设计师 每个代理都有独立的人格、记忆、技能和 Telegram 机器人。

整个搭建过程只需几分钟,而且所有步骤都可以在你自己的硬件上完美复现。

注意:本文中的所有插图都是由 Pixel(你最后会学会构建的 Hermes 代理之一)设计的。阅读时留意它们!

开始阅读吧!

如何阅读这篇文章

分为两大部分:先理论,后动手。

时间不够?直接跳到“快速上手”部分,命令可以独立运行。

但理论部分值得阅读——理解技能如何自进化、记忆如何组合、GEPA 在何时发挥作用,能让你把 Hermes 从“带笔记的聊天机器人”变成真正能持续积累价值的智能体。

本文内容一览

  • Hermes Agent 究竟是什么?(附与 OpenClaw 的对比)
  • 架构总览(一张图看懂)
  • 记忆之前:代理的“灵魂”——SOUL.md
  • 三层记忆系统
  • 自进化技能:代理自己写操作手册 + Curator
  • GEPA:离线技能优化
  • 快速上手:安装、Telegram、第一个代理
  • 运行多个代理:多配置、三种人格、定时摘要
  • 按需自定义代理 Hermes Agent 到底是什么?它在架构上有什么不同?

一句话总结:一个越用越聪明的代理

真正让它实现这一点的,是把三种通常相互独立的特性整合到一个框架中:

  • 运行时技能学习
  • 持久的多层记忆
  • 可选的权重训练流水线 目前开源生态中还没有其他代理同时具备这三点。

最接近的对比是 OpenClaw。两者都支持持久化和消息交互,但架构选择完全相反。Kilo 博客的一句话总结得很好:

“Hermes 把学习代理包装成一个网关;OpenClaw 把消息网关包装成一个代理。”

架构总览

在理解学习循环之前,先看一下 Hermes 的整体结构。

一切都通过 run_agent.py 中的单个 AIAgent 类来调度。CLI、消息网关、批量运行、IDE 集成……所有入口最终都指向同一个核心代理。这也是它真正实现平台无关的关键。

核心循环采用 ReAct 风格且同步运行:构建系统提示 → 检查是否需要压缩 → 可中断的 API 调用 → 执行工具调用 → 循环继续。

几个重要细节会在后面发挥作用:

  • 代理可以在 6 个不同位置执行命令:本地终端、Docker、SSH、Modal、Daytona 或 Singularity。只需改一下配置,就能把执行环境从笔记本迁移到云端 GPU 服务器。
  • 几乎兼容所有模型。通过翻译层,任意提供商都能统一成三种 API 格式。因此你可以一条命令就把 Claude 换成 GPT、Gemini 或本地 Ollama,一切照常运行。
  • 每个任务硬性限制 90 个回合。否则陷入死循环的代理会悄悄烧光你的额度。子代理也共享预算,不会让失控的委托链逃过限制。 基础架构讲完了,接下来才是真正有趣的部分。

记忆之前:代理到底是谁?

在讨论记忆和自进化技能之前,还有一个更高层的“身份”层。

记忆是代理“知道什么”,技能是代理“怎么做”。但这两者都无法回答“你是谁”。没有身份层,每个代理都像同一个家伙戴着不同帽子。

Hermes 用一个单独的文件解决这个问题:SOUL.md

它位于 ~/.hermes/SOUL.md,在系统提示中占据第 1 号槽位,先于其他任何内容加载。它定义了代理的人格、语气、沟通风格和硬性限制。

SOUL.md 是人工编写且静态的。你写一次,慢慢微调,它就会在所有项目、所有会话中保持一致。如果文件缺失,Hermes 会回退到内置的默认身份。

为什么这对“自我提升”故事如此重要?因为后续所有的记忆写入、技能创建、知识整合,都是通过这个身份的镜头来完成的。SOUL.md 是固定框架,记忆和技能是里面的可变部分。

三层记忆系统:三种速度

Hermes 没有单一的“记忆”,而是三层,每层用途不同。

第 1 层:两个极小的 Markdown 文件

核心是磁盘上的两个文件:

  • MEMORY.md(最多 2200 字符):记录环境、项目规范、工具 quirks、已吸取的教训。
  • USER.md(最多 1375 字符):记录你的个人资料(姓名、沟通偏好、技能水平、避免事项)。 会话开始时,这两个文件以冻结快照的形式注入系统提示。如果代理在会话中写入新记忆,会立即保存到磁盘,但要到下一次会话才会出现在提示中。

当记忆快满(约 80% 容量,系统提示头部会显示百分比)时,代理会自动合并,把相关条目浓缩成信息密度更高的版本,只保留真正有用的内容。

第 2 层:全文会话搜索

所有对话(CLI 和消息)都保存在 SQLite 中,支持全文搜索。代理可以搜索过去几周的任何对话。

权衡很明显:第 1 层始终在上下文内,但容量极小;第 2 层容量无限,但需要主动搜索 + LLM 总结。

关键事实放第 1 层,其余全部按需搜索。

第 3 层:外部记忆提供商(8 个插件)

更深的持久化记忆可通过 8 个可插拔提供商实现(与内置记忆并行,从不替换)。同一时间只能激活一个。

激活后,Hermes 会在每次对话前自动预取相关记忆、每次回复后同步对话、在会话结束时提取记忆。

自进化技能:代理自己写操作手册

记忆管“事实”,技能管“流程”。

技能是带 YAML 前置信息的 Markdown 文件,相当于代理的“程序性记忆”——不是它知道什么,而是它怎么做事。

技能的结构(此处省略原文插图描述)

为了节省 token,技能采用渐进式披露:

  • Level 0:只显示名称 + 描述(完整目录约 3k token)
  • Level 1:真正需要时才加载完整内容
  • Level 2:可进一步钻取技能内的参考文件 自进化循环(核心差异点)

代理通过 skill_manage 工具自主创建技能。触发时机包括:

  • 完成复杂任务(5+ 个工具调用)
  • 遇到错误或死胡同后找到正确路径
  • 用户纠正它的做法
  • 发现非平凡的工作流 循环流程:

遇到问题 → 试错解决 → 把成功方案保存为 SKILL.md → 下次遇到类似问题,直接加载技能按成熟流程执行,而非重新探索。

工具支持 6 种操作:create、patch(推荐,节省 token)、edit、delete、write_file、remove_file。

Curator:技能的垃圾回收

如果不维护,代理创建的技能会堆积成山,出现大量狭窄、重叠的手册,既浪费 token 又污染目录。

Curator 是后台维护系统,仅在“闲置 2 小时且 7 天未运行”时触发。它会启动一个独立的代理 fork(不影响当前对话),进行两阶段处理:

  1. 自动过渡(确定性,无需 LLM):30 天未用 → 标记为 stale;90 天未用 → 归档。
  2. LLM 审查(最多 8 轮):fork 代理逐个评估所有自创技能,决定保留、修补、合并或归档。 重要限制:
  • 绝不碰官方或 Hub 安装的技能,只处理代理自创的。
  • 绝不自动删除,最坏结果是归档到 ~/.hermes/skills/.archive/,一条命令即可恢复。
  • 每次运行前会自动备份整个 skills 目录为 tar.gz,随时可回滚。 你也可以用 hermes curator pin 固定关键技能,保护它们不被归档(但仍可被修补)。

GEPA:用执行轨迹离线进化技能

这是最精彩的部分。

代理内学习循环(技能创建 + Curator)有一个已知弱点:代理容易“自我表扬”,即使表现不佳也觉得自己做得很好。社区反馈已多次证实这一点。同一个系统既能自动生成技能,也可能把人工自定义覆盖成更差的版本。

GEPA(Genetic-Pareto Prompt Evolution)正是为此而生。它不在 Hermes 运行时中,而是放在伴侣仓库 NousResearch/hermes-agent-self-evolution 中,作为离线优化流水线运行(ICLR 2026 Oral 论文,MIT 许可)。

核心思路:不再问代理“你做得好吗?”,而是让 GEPA 阅读执行轨迹,理解失败原因,再通过进化搜索提出针对性改进。

流水线步骤:

  1. 读取当前技能
  2. 生成评估数据集(Claude Opus 合成测试用例、SQLite 真实会话历史或人工金标集)
  3. 运行 GEPA 优化器:分析轨迹 → 找出失败点 → 生成候选变体
  4. 用 LLM-as-judge + 评分规则评估(非简单通过/失败)
  5. 施加约束门:完整测试套件 100% 通过、技能大小 <15KB、缓存兼容性、语义目的不漂移
  6. 最优变体以 PR 形式提交到 Hermes 仓库(绝不直接提交) 无需 GPU,全程 API 调用,单次优化成本约 2-10 美元。

这套方案在你遇到瓶颈又不想花钱做微调(RL/GRPO)时特别有效。

总结

SOUL.md 设定身份 → 运行时循环捕捉经验 → Curator 保持库干净 → GEPA 确保库里的东西真正有效。

理论部分结束,下面开始在你的机器上实际运行!

快速上手

支持 Linux、macOS 或 WSL2,Python 3.11+,8GB 内存即可(API 使用模式)。

一条命令安装:

(原文命令此处省略,实际操作请按原帖复制)

运行设置向导,依次配置提供商、API Key、模型和工具。

在终端开始聊天:

(命令略)

连接 Telegram

想在手机上和代理聊天?指向一个 Telegram Bot 即可。

从 @BotFather 获取 Bot Token,再从 @userinfobot 获取你的用户 ID,配置完成。

~/.hermes 目录里有什么?

安装后会在家目录新建一个文件夹,了解布局会让后续操作更清晰。

重点文件:

  • config.yaml:所有非敏感配置的真相源头(模型、终端后端、工具开关等)。
  • .env:存放所有密钥(API Key、Bot Token 等)。
  • SOUL.md:身份层。
  • skills/:整个学习循环的核心。
  • state.db:SQLite 数据库,支持全文搜索。 添加新技能

Hermes 官方 Skills Hub 已有 687 个技能,分 18 类。你也可以把任意 GitHub 仓库添加为自定义源,方便团队共享或维护私有集合。

从 1 个代理扩展到 10 个

单个代理就很好,但多个专业化代理才是 Hermes 的真正威力所在。

Hermes 内置“profiles”功能,每个 profile 都是完全隔离的 Hermes 实例,拥有独立的配置、记忆、技能、会话和 SOUL.md。

我们来搭建三个:设计师、程序员、研究员。

为每个 profile 创建专属 Telegram Bot

每个 profile 需要独立的 Bot Token。

通过 SOUL.md 赋予每个人格

这是让代理真正不同的关键。

(原文给出了设计师、程序员、研究员的 SOUL.md 示例)

自定义程序员:让它通过 Claude Code 执行

激活提示(单条消息发送即可):

“I already have a Claude Max subscription. You are my staff engineer who helps me with my day-to-day coding tasks, and under the hood you use Claude Code for all the executions. Set yourself up accordingly.”

自定义设计师:教它你的视觉风格

把参考设计图拖进 CLI 或 Telegram,然后发送提示,设计师会自主学习并创建专属技能。

定时任务:用自然语言写 Cron

研究员的 SOUL.md 提到每天发送 Telegram 摘要,这就需要定时任务。

Hermes 内置调度器,你只需用英语描述任务,它会自动转换成 cron。

其他实用模式

  • 单次延时:/cron add 30m “提醒我检查构建”
  • 周期任务:/cron add “every 2h” “检查服务器状态”
  • 精确 cron 表达式
  • 技能挂载、任务链等高级用法

原帖链接:https://x.com/i/status/2054564519280804028