📚 系列导航:上一篇 Hermes Agent 自改进机制教程 已经讲清“自改进机制:Background Review、Curator 与 Goals”;本篇聚焦 Hermes Agent Curator 使用;下一篇 Hermes Agent 自改进边界指南 继续学习“自改进边界:哪些经验不该写进 Skill”。
先给结论:Curator 是 Skill 库的维护者,不是拥有删除权的清理机器人。 它会合并、归档和打包 Agent 自己生成的 Skill;动手前有预览和快照,出问题还能回滚。
ℹ️ 版本说明: 原稿基于 Hermes Agent v0.16.0(2026 年 6 月)源码整理。本文保留其版本化机制分析;命令、数量和界面请以 Hermes Agent 官方文档 与本地输出为准。
Hermes Agent 为什么需要 Curator
上一节讲到 Hermes 每轮对话后都会 fork 一个后台复盘,把这次学到的东西写成 skill。听起来很美,但我第一反应是担心:它会不会越攒越多,最后攒出几十个长得差不多的小破 skill?
这个担心是对的。你今天修了个 bug,它存一个;明天换个项目又撞上类似的坑,它再存一个。一周下来,Skill 目录里躺着十几个名字不一样、内容八成重叠的文件。每次 agent 要选 skill 时,都得在这堆近重复里翻,既费 token 又容易选错。
这不是假想。后台复盘的 prompt 里有一句话,态度很激进:「大多数会话至少该产出一次 skill 更新,什么都不做是错过了学习机会,不是中性结果。」一个被要求「尽量多学」的系统,必然伴生「学太多」的副作用。
Curator 就是为这个副作用存在的。它在 v0.12.0 才诞生,那一版官方直接起名叫「The Curator Release」,副标题是一句很有底气的话:Hermes Agent now maintains itself,它开始自己维护自己了。
接着 §04 那个比喻说:background review 负责增殖,Curator 负责凋亡—而 Curator 正是这里要拆的那台「凋亡引擎」。Karpathy 也说过类似的话,对一个学习系统来说,遗忘和学习同样重要。
Hermes Curator 的触发条件
Curator 不是个一直转的定时任务。源码里没有 cron daemon,它靠「闲置触发」:CLI 启动时、网关 tick 时顺便检查一下,距上次跑够久了,而且 agent 也闲够久了,才 fork 一个后台进程去干活。
默认两道闸门都得过:

还有个我挺欣赏的细节:全新装好之后第一次 tick 不会立刻干活。它会把「上次运行时间」直接记成现在,逼自己等满一个完整的 7 天周期。注释里说得很实在:刚 hermes update 完就乱动你的 skill 库,体验太差。给你一整个星期去 pin 住你在乎的、opt-out 掉你不想要的。
Hermes Curator 的两阶段维护流程
Curator 真正动手时分两步。第一步完全不调用大模型,是一段纯函数状态机,按「这个 skill 多久没被用过」机械地推进它的生命周期。

这套状态机有意思的地方在于它是可逆的、确定性的。一个被标成 stale 的 skill,只要再被用上一次,就自动弹回 active。没有玄学,没有大模型的判断,纯靠时间戳算。被 pin 住的 skill 则完全跳过这一步,时间再久也不会被动。
为什么第一步刻意不用 LLM?我猜是为了把「能用规则确定的事」和「需要判断的事」分开。归不归档纯看时间,这种事让模型来判断纯属浪费钱还不稳定。真正需要品味的活留给第二步。
第二步才 fork 一个用辅助模型跑的 agent,让它巡视那些 agent 自己造的 skill,逐个决定:保留、改一改、跟别的合并、还是归档。这一步是有「想法」的,下面这套想法是两个月里 Curator 最大的进化。
Curator 如何合并重复 Skills
早期你会以为 Curator 干的是去重:找出两个像的,删掉一个。但 v0.16.0 的 review prompt 第一句就把这个理解否了:「这是一次建伞式的归并,不是被动审计,也不是找重复。
差别在哪?去重的思路是「这俩像不像」,建伞的思路是「一个人类维护者会把它写成几个独立 skill,还是写成一个带几个小节的 skill」。prompt 里甚至明确禁止用「每个 skill 触发词不同」当不合并的借口,触发词各异不是理由,该收进一把伞的就得收。
Curator 的三种 Skill 归并方式
| 手法 | 什么时候用 | 怎么做 |
|---|---|---|
| 并进现有伞 | 已经有一个够大的 skill 能当伞 | 把兄弟 skill 的独特点 patch 进去,归档兄弟 |
| 新建一把伞 | 没有现成的伞罩得住 | 新建一个类级的 SKILL.md,把零散的收进来 |
| 降级成子文件 | 内容窄但有价值 | 降成 umbrella 下的 references/templates/scripts |
这个转向其实很有产品味道。它把「一个好的知识库长什么样」这种很难量化的人类品味,编码进了一段自动维护逻辑。prompt 里那句话我特别喜欢:「几百个各管一个 session 具体 bug 的窄 skill,是这个库的失败,不是它的特性。
Hermes Curator 的四道安全机制
讲到这你可能跟我一样有个本能的不安:让一个 AI 自动改、自动归档我的 skill 库,万一它判断错了呢?万一它把我重要的东西归档了呢?
这正是§05 的核心。Curator 不是一脚油门踩到底的自动化,它的刹车做得很重,重到我觉得值得逐条讲。
归档代替自动删除
源码文件头写了一条不变量:Never auto-deletes — only archives. Archive is recoverable. 所谓归档,就是把 skill 目录挪进 ~/.hermes/skills/.archive/ ,随时能 restore 回来。Curator 没有「删除」这个动作,它最狠也只是把东西搬到旁边的抽屉里。
正式维护前创建快照
每次正式维护之前,Curator 会先把整个 skills 目录打成一个 tar.gz 快照,连 .archive/ 一起存进.curator_backups/ ,文件名是 UTC 时间戳。
⚠️ 注意
这意味着哪怕这一轮归档错了一片,你一条 hermes curator rollback 就能把整轮撤销,包括它这次归档的、之前归档的,全救回来。快照连旧归档一起存,所以回滚是真的「时光倒流」,不是只撤销最近一步。
使用 dry-run 预览维护计划
不放心自动跑,先在终端执行预览:
hermes curator run --dry-run
预期结果: 命令只列出计划合并、归档或调整的 Skill,不修改 Skill 库。确认报告没有误伤后,再执行正式维护:
hermes curator run
如果你本地版本不识别 --dry-run,先运行 hermes curator run --help,以当前版本显示的参数为准。
这一点对应 MartinFowler 那个著名的框架:人和自动化系统的关系,是 in the loop(事事亲为)、on the loop(在旁监督可干预)、还是 outtheloop(完全放手)。Hermes 明确选了 on the loop,你不必盯着它每一步,但报告随时可审,结果随时可回滚。它没把你踢出去。
使用 provenance 控制修改范围
最优雅的一道在这。Curator 凭什么知道哪些 skill 能动、哪些碰都不能碰?靠的是每个 skill 的「出身」标记。
| skill 出身 | 谁造的 | Curator 能动吗 |
|---|---|---|
| bundled 内置 | Hermes 出厂自带 | 是否参与归档由 curator.prune_builtins 控制 |
| hub 安装 | 从社区市场装的 | 永远豁免,绝不自动碰 |
| 用户前台要求写的 | 你明确让 agent 写的 | 属于你,Curator 永不染指 |
| agent 后台复盘造的 | agent 自己 fork 出来造的 | 这才是 Curator 唯一的管辖区 |
在原稿分析的 v0.16.0 中,实现依靠来源标记区分后台复盘生成的 Skill 与其他来源。当前官方文档说明,Hub 安装的 Skill 仍不受 Curator 管理;内置 Skill 是否参与归档则由 curator.prune_builtins 控制,使用前应核对本地配置。
这句话值得停一下:来源追踪的目的,是把 Agent 自我进化的破坏半径尽量锁在可识别、可恢复的范围里。版本升级后默认配置可能变化,所以不能只凭旧版表格判断哪些 Skill 一定不会被归档。
💡 核心建议
有个容易混淆的细节:pin 一个 skill,只挡删除、归档、合并,不挡内容改进。被 pin 的 skill 照样能被 Curator 改得更好,pin 保护的是「它不会消失」,不是「它不会变」。
Hermes Curator 的安全边界
「自进化会不会失控」是悬在所有这类系统头上的问题。很多产品的回答是含糊的,无非「我们有安全机制「会持续监控」。Hermes 的回答是一组能指着源码念的具体设计。
💡 推荐
永不删(只归档可恢复)+跑前 tar.gz 快照+dry-run 预览+provenance 锁死破坏半径。每一条都对应一个「万一出错怎么办」。
不推荐:
「我们有完善的安全机制保障自进化过程的可控性」:
一句听着安心、出了事什么都兜不住的空话。
我觉得这才是「装刹车」的正确姿势。刹车不是限制车跑多快,而是让你敢把车开快。正因为永不删、能回滚、动不了你的东西,那个「尽量多学」的激进复盘才敢真的激进。没有这套刹车,你根本不敢让一个 AI 自动改你的工具库。
下一节我们看这套自进化里最反直觉的一笔:在所有「该学什么」的规则之外,Hermes 还专门写了一份「不该学什么」的黑名单。一个会自我进化的 agent,真正的危险不是学不会,而是学错了之后拿错误的规则反复拒绝自己。
常见问题
Hermes Agent Curator 会删除 Skill 吗?
Curator 的自动维护以归档为主,归档内容可以恢复;正式运行前还可以先做预览和快照。当前版本对内置 Skill 的处理范围要以 curator 配置为准。
Hermes Curator 怎么安全试运行?
先查看状态和帮助信息,再使用当前版本支持的 dry-run 方式预览计划。确认合并与归档目标无误后再正式运行,并保留自动快照。
这篇教程里的版本数字会变化吗?
会。原稿以 Hermes Agent v0.16.0 为分析基线,平台、工具、命令参数和默认配置可能继续变化;实际操作前请核对当前官方文档和本地命令帮助。