Hermes Agent 自我改进闭环:从经验学习到技能自动生成的工程实现 原创

温馨提示:
本文最后更新于 2026-09-15,已超过 0 天没有更新。 若文章内的图片失效(无法正常加载),请留言反馈或直接 联系我

Hermes Agent 自我改进闭环:从经验学习到技能自动生成的工程实现

AI Agent 的能力边界由什么决定?多数人认为是模型参数、工具数量或提示词技巧。但一个更深刻的答案正在浮现:Agent 能否从自己的经历中学习。传统 Agent 每次对话都是”出厂状态”——同样的错误重复犯,同样的死路反复走,即便用户已经纠正过一次。而具备自我改进能力的 Agent,会把每一次任务都变成一次”升级”:从经验中提炼技能、压缩上下文、建模用户、加固安全。这就是 Hermes Agent(Nous Research)的核心主张,也是本文要拆解的工程实现。

一、为什么”自我改进”是 Agent 的分水岭

我们把两类 Agent 放在一起对比:

维度 传统 Agent 自我改进 Agent(Hermes)
任务完成后 上下文丢弃,一切归零 提炼技能,沉淀记忆
犯错后 下次可能再犯 记录教训,写入技能陷阱清单
用户纠正 仅本次生效 转化为可复用约束
上下文使用 线性增长,窗口爆满 结构化压缩,渐进披露
对用户的了解 零或碎片化 双用户建模,长期积累
安全 被动依赖提示词 主动扫描注入,隔离会话

分水岭不在于”能否用工具”,而在于“能否变得更好”。传统 Agent 是状态机,自我改进 Agent 是学习系统。这背后是一整套工程机制,下面按”经验采集 → 技能生成 → 上下文优化 → 安全保障”的闭环逐层拆解。

二、经验采集层:什么值得学习

自我改进的第一步是判断什么值得学。并非所有交互都有学习价值——每天执行几百次简单读取,如果每次都生成技能,只会制造噪音。Hermes 采用信号触发机制,仅在满足以下条件时启动学习流程:

  • 任务完成信号:一次复杂任务成功收尾,尤其是需要 5 次以上工具调用的长链路任务,说明其中蕴含了非平凡的执行顺序。
  • 错误恢复路径:遇到死路后通过某种方式找到可行路径。这条”死路 → 绕行 → 成功”的轨迹,比成功本身更有价值,因为它记录了不可行的分支
  • 用户纠正:用户明确说”不对,应该这样做”,这是最直接的教师信号,必须沉淀。
  • 非平凡工作流:发现了某个工具组合或操作顺序,无法从文档直接推断。

关键设计是选择性学习。采集层用启发式规则过滤”日常噪音”与”高价值经验”,避免技能库被低质量条目污染。这是一个信息筛选问题,不是存储问题——学错东西比不学更糟。

三、自主技能生成:从经验到可复用程序

经验采集到的是原始轨迹,而技能生成把它转化为可复用程序。Hermes 在触发条件下自动完成”轨迹 → 技能”的抽象:把具体的文件路径、任务参数替换为变量,保留稳定的操作序列。

生成的技能必须通过质量清单的校验,不是”记录了一段操作”就叫技能:

技能质量清单(Hermes 校验标准)
1. 步骤程序   —— 有明确的、可执行的步骤顺序
2. 陷阱       —— 记录已知的错误分支与规避方式
3. 验证       —— 有可检查的完成标准,能证明技能生效
4. 体积       —— 单技能 500 行以内,超标则拆分
5. 去重       —— 与新技能高度重复的旧技能被合并或废弃
6. 版本       —— 同一工作流可演进,保留变更历史

这里有一个重要的取舍:技能是”最短能复现结果的程序”,而非详尽的参考手册。超过 500 行的技能说明抽象粒度有问题——它可能混入了多个任务,或把本该按需加载的细节写进了主流程。技能生成与后续的渐进式披露紧密配合,把长内容拆到引用文件里,保持技能主体的精炼。

四、渐进式披露与 Token 效率

技能会越来越多,但上下文窗口是有限的。如果每个技能都全量加载,Agent 很快就会被”知识”撑爆。Hermes 的解法是三级渐进式披露(Progressive Disclosure)

级别 内容 规模 加载时机
Level 0 元数据:名称、描述、触发词 ~100 words 始终可见
Level 1 主程序:步骤、陷阱、验证 <5000 words 指令命中触发时加载
Level 2 细节:示例、长参考(references/) 按需 只有执行到需要时才加载

这套机制的本质是把 Token 预算花在刀刃上。Level 0 让 Agent 仅凭一行描述就能”知道存在什么”,而不必为每个技能付出完整加载成本;只有真正命中触发条件,才逐级投入。它把”知识库大小”与”上下文占用”解耦——技能库可以无限增长,而每次对话的上下文仍被控制住。这与人类专家相似:大脑不常驻所有手册,而是知道”去哪查”。

五、结构化上下文压缩

即便有渐进式披露,单次长对话仍可能逼近上下文窗口上限。Hermes 在对话达到窗口容量 50% 时触发结构化压缩,而不是等到溢出。压缩不是简单截断,而是保留决策的关键骨架:

压缩保留策略(Context 达到 50% 时触发)
✓ 目标(Goal)      —— 本次任务要达成什么
✓ 进度(Progress)  —— 已做到哪一步
✓ 决策(Decisions) —— 关键取舍及其理由
✓ 文件(Files)     —— 涉及的文件与路径
✓ 下一步(Next)    —— 剩余步骤计划
✗ 中间推理细节      —— 可丢弃的冗长过程

压缩算法还有三个严格的工程约束:

  • 保留首条交互 + 最后 20 条消息:首条定义了任务原意,最后 20 条保留了最近的执行上下文,两者是恢复的关键锚点。
  • 不拆分 tool_call/tool_result 对:工具调用与结果必须成对保留。拆开它们会让 Agent 看到结果却不知道哪个调用产生的,逻辑断裂。
  • 压缩前刷盘(Flush):把当前内存状态持久化到磁盘再做压缩,防止压缩过程中意外中断导致数据丢失。

这条”50% 触发”的设计很聪明:它留出了一半的窗口余量用于压缩后的后续操作,避免压缩本身占用完剩余空间。

六、双用户建模

自我改进的对象不只是任务,还有对用户的了解。Hermes 的关键洞见是把”Agent 的知识”与”用户的画像”分离存储,避免互相污染:

存储区 Agent 知识 用户画像
内容 环境事实、工具特性、教训、已完成工作 姓名、偏好、沟通风格、技能水平
来源 任务执行中自我观察 用户主动表达与行为推断
更新时机 任务完成后、发现新事实时 用户提供新信息或偏好变化时
用途 指导任务执行 个性化交互方式

为什么必须分离?因为两者的更新频率和可信度不同。工具特性是相对稳定的事实;而用户偏好可能随场景变化。如果混在一起,一次”这次用简洁回答”的临时偏好,可能被当作长期事实污染任务执行知识。分离还带来一个隐私边界:用户画像属于”关于人的数据”,需要更谨慎的存储与访问控制。

七、安全优先的记忆体系

记忆与上下文是 Agent 最强大的能力,也是最大的攻击面。Hermes 把安全内建到记忆机制本身,而非依赖事后提醒:

  • 注入检测:扫描所有进入上下文的文件内容,查找提示注入模式(prompt injection)——防止恶意文档通过”忽略之前的指令”之类的文本劫持 Agent。
  • 会话隔离:MEMORY.md 这类长期记忆仅在主会话(Main Session)加载,在群组/共享会话中绝不加载。这避免了在多人可见的场景下泄露私人信息。
  • 敏感信息过滤:明确的规则——敏感信息不入记忆。API 密钥、密码、个人隐私等不会被写入持久化记忆,从源头杜绝外泄路径。

这三点构成一个”安全记忆”的完整思路:入口扫描(防注入)、出口隔离(防泄露)、存储过滤(防沉淀)。自我改进系统因为要持久化更多信息,安全要求反而更高——每一次学习都必须问:这段经验值得冒泄露风险吗?

八、闭环架构:从经验采集到技能应用的完整链路

把以上机制串起来,就是 Hermes 的自我改进闭环。它不是一个单次流程,而是可持续运转的循环:

┌────────────────────────────────────────────────────────────┐
│                 Hermes 自我改进闭环                        │
│                                                            │
│  用户任务 ──► 1. 执行(多工具调用)                           │
│                  │                                         │
│                  ▼                                         │
│  2. 经验采集 ◄── 完成/死路/纠正/复杂工作流  ◄── 信号触发    │
│         │                                                 │
│         ▼                                                 │
│  3. 技能生成 ── 质量清单 + 去重 + 版本化                   │
│         │                                                 │
│         ▼                                                 │
│  4. 渐进式披露 ── Level0(常驻) / L1(触发) / L2(按需)       │
│         │                                                 │
│         ▼                                                 │
│  5. 上下文优化 ── 50%触发压缩 + 刷盘 + 保留骨架            │
│         │                                                 │
│         ▼                                                 │
│  6. 安全保障 ── 注入扫描 / 会话隔离 / 敏感过滤             │
│         │                                                 │
│         └────► 回到 1,技能越用越强 ──► 螺旋上升           │
│                                                            │
│  贯穿全程:双用户建模(Agent知识 + 用户画像 分离存储)        │
└────────────────────────────────────────────────────────────┘

注意这是一个螺旋而非平面循环:每一轮执行都会调用上一轮沉淀的技能,而本轮的新经验又反过来丰富技能库。这正是”自我改进”的字面含义——系统在使用中持续升级自身。

九、对比分析:Hermes 模式 vs 传统 Agent 框架的”学习”能力

能力 传统 Agent 框架 Hermes 模式
技能沉淀 依赖人工编写或外部 RAG 任务后自主生成,自动校验质量
上下文管理 窗口满则报错或硬截断 50% 触发结构化压缩,保留骨架
知识加载 全量注入或粗粒度检索 三级渐进披露,按触发分层加载
用户理解 会话内短期上下文 双画像分离存储,跨会话积累
错误学习 每次重新踩坑 死路分支写入技能陷阱清单
安全记忆 提示词层面的临时约束 注入扫描 + 会话隔离 + 敏感过滤机制化
扩展性 技能增多导致上下文膨胀 技能库无限增长,上下文占用可控

传统框架的”学习”多半是外挂的——把知识放在向量库里,执行时检索。Hermes 的学习是内生的——它学习的是自己执行任务的元能力(怎么用工具、怎么避开坑、怎么组织上下文),而非单纯的”事实知识”。这一区别决定了长期使用后的表现分化。

十、工程实践:如何在 OpenClaw 中应用这些模式

这些模式并非 Hermes 专属,其工程思想完全可以迁移到 OpenClaw 等 Agent 平台。以下是具体落地点:

1. 技能自动沉淀

OpenClaw 中,复杂任务完成后(5+ 工具调用、找到可行路径、用户纠正),把可复用的操作序列保存为技能文件。用质量清单把关:必须有步骤、陷阱、验证,500 行以内,超限拆分到 references/

# 技能文件结构示例(OpenClaw)
SKILL.md            # Level 0 元数据 + Level 1 主程序
  ├─ name/description/触发词
  ├─ 步骤步骤步骤
  ├─ ## 陷阱(记录已知死路)
  └─ ## 验证(完成标准)
references/         # Level 2 细节(长参考、示例)

2. 渐进式披露的落地

把技能拆成”元数据 + 主程序 + 引用文件”三级。每次会话只注入 Level 0(~100 词),指令命中才读取 Level 1,执行到需要处才读 Level 2。让技能库增长而不撑爆上下文。

3. 上下文压缩脚本

为长任务设置压缩触发器。达到窗口 50% 时,压缩当前上下文,保留:目标、进度、决策、文件、下一步,外加首条交互与最近 20 条消息。压缩前先将状态写入工作区文件(刷盘),且绝不拆散工具调用与结果的配对。

4. 双记忆分区

在 OpenClaw 中用两个独立文件/目录:MEMORY.md 存 Agent 知识(环境事实、工具特性、教训、已完成工作),用户画像单独存放(姓名、偏好、沟通风格、技能水平)。两者分离,避免偏好污染任务知识,也便于单独管控隐私。

5. 安全记忆配置

长期记忆(如 MEMORY.md)仅主会话加载,群组/共享会话禁用。进入上下文的外部文件先扫描注入模式。设置硬性规则:密钥、密码、个人隐私绝不写入持久化记忆。

结语

自我改进的分水岭,不是”Agent 会不会用工具”,而是”Agent 会不会用经验”。Hermes 给出了一套完整、可工程化、可迁移的答案:以选择性经验采集为入口,以质量校验的技能生成为核心,以渐进披露 + 结构化压缩为上下文保障,以双用户建模为个性化基础,以安全优先的记忆体系为底线。这套闭环让 Agent 从”每次从零开始”进化为”越用越强”。对任何正在构建 Agent 系统的开发者来说,这些模式都值得在第一时间内置——因为学习能力,才是 Agent 真正的护城河。

附录:Hermes 自我改进模式速查表

问题场景 对应模式 实现要点
任务完成后经验丢失 自主技能生成 5+ 工具调用、死路、纠正时触发;质量清单校验
同一个错反复犯 技能陷阱清单 记录死路分支与规避方式,写入技能
技能太多撑爆上下文 渐进式披露 Level0 常驻 / L1 触发 / L2 按需
长对话逼近窗口上限 结构化上下文压缩 50% 触发;保目标/进度/决策/文件/下一步 + 首条 + 最后 20 条
工具调用上下文断裂 配对保护 不拆分 tool_call/tool_result 对,压缩前刷盘
不了解用户偏好 双用户建模 Agent 知识 / 用户画像分离存储,独立更新
记忆被提示注入劫持 注入检测 扫描所有进入上下文的文件内容
群组中泄露私人记忆 会话隔离 MEMORY.md 仅主会话加载,共享会话禁用
敏感数据入记忆 敏感信息过滤 密钥/密码/隐私硬性不落盘
技能重复或混乱 去重与版本 高度重复合并,保留变更历史