Hermes Agent

Hermes Agent Curator 使用与 Skill 维护指南

Hermes Agent Curator 用来维护长期积累的 Skill,通过状态流转、合并、归档和快照控制知识库膨胀。页面讲清闲置触发、两阶段维护、dry-run、回滚和来源边界,并标出新版内置 Skill 修剪配置的变化,帮助你在自动整理前保留恢复路径。查看完整拆解与风险提醒。并附关键选择建议。

自动化 进阶

📚 系列导航:上一篇 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 一个后台进程去干活。

默认两道闸门都得过:

Hermes Curator 按运行间隔和闲置时间触发维护

还有个我挺欣赏的细节:全新装好之后第一次 tick 不会立刻干活。它会把「上次运行时间」直接记成现在,逼自己等满一个完整的 7 天周期。注释里说得很实在:刚 hermes update 完就乱动你的 skill 库,体验太差。给你一整个星期去 pin 住你在乎的、opt-out 掉你不想要的。

Hermes Curator 的两阶段维护流程

Curator 真正动手时分两步。第一步完全不调用大模型,是一段纯函数状态机,按「这个 skill 多久没被用过」机械地推进它的生命周期。

Hermes 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 为分析基线,平台、工具、命令参数和默认配置可能继续变化;实际操作前请核对当前官方文档和本地命令帮助。