ARTICLE / 开源项目

补充技能库卫生清理器特性的研究

PR 地址NousResearch/hermes-agent#47110 · 一个可选技能,给技能库做内容级体检

研究摘要

技能库长到一定规模后会出现三种典型病变:覆盖能力高度重叠的近重复技能、本应合并成伞形技能(umbrella skill)的碎片技能、以及新增时与既有技能撞车的新技能。Hermes 官方 curator 只做基于时间的归档——它知道技能"多久没用",却不知道技能"和谁长得像",技能库的内容健康无人照看。

本 PR 以可选技能skill-curator)的形式补上内容级卫生能力:用户通过 hermes skills browse 安装后,获得相似度扫描、合并规划、新技能审查、定时扫描四组能力,覆盖"发现问题 → 规划合并 → 审查新增 → 定时巡检"的完整闭环。整个技能 +2310 行、纯标准库实现、跨平台、非破坏性——所有合并决策都要用户批准,原始技能保留在归档目录。设计意图明确,但 PR body 未附自动化测试记录,实测章节将标注为预期效果。

一、问题背景:时间维度之外的内容失控

1.1 curator 的边界

官方 curator 的技能健康模型只有一个维度:使用时间。长期未使用的技能会被归档。这个模型对"闲置"有效,对"冗余"无效——两个覆盖八成相同能力的技能可能都被频繁使用,curator 永远认为它们很健康,而用户的技能面板里躺着两个功能几乎一样的入口。

1.2 三种典型病变

安全、运维、研究这类领域技能库最容易积累三类问题:

  1. 近重复技能:同一能力被不同时期、不同思路写成多个技能,描述和功能大面积重叠;
  2. 碎片技能:若干小技能各自覆盖一个大领域的一小块,本应合并进一个带子章节的伞形技能;
  3. 新增撞车:用户或贡献者新写的技能,与库内既有技能重复,入库时无人提醒。

前两类是存量问题,第三类是增量问题。缺的不是"归档闲置技能"的能力,而是内容层面的相似性分析——检测重叠、规划合并、拦截重复新增。

二、特性设计:五脚本 + 三参考文档的卫生工具箱

2.1 安装与定位

skill-curator可选技能:默认 Hermes 体验完全不受影响,需要的人通过 hermes skills browse 安装。它定位为官方 curator 的补充层——curator 管时间维度,它管内容维度。

2.2 四组能力

  1. 相似度扫描:扫描技能库,找出描述与能力重叠的技能簇;
  2. 合并规划:针对重叠簇给出伞形技能建议与合并策略;
  3. 新技能审查:对新增技能自动做入库审查,比对既有库防止重复;
  4. 定时集成:支持每周自动扫描、每两小时自动审查的 cron 节奏。

2.3 组件拆解

实现由 5 个脚本与 3 份参考文档组成:

组件职责
consolidate.py相似度引擎 + 合并规划 + 健康报告
auto_review.py新技能审查流水线,支持 --days 时间窗与 --auto 自动应用安全决策
usage_tracker.py技能使用追踪,为相似度与合并决策提供使用数据支撑
post_install_hook.py技能安装后触发自动审查,把重复拦截前移到入库瞬间
redundant_validator.py冗余检测,识别能力被既有技能覆盖的条目
references/cron-integration.md定时任务配置指南
references/hermes-archive-exclusion.md归档豁免模式说明
references/redundant-merge-principle.md合并决策原则

2.4 四个关键设计决策

  • 纯标准库:零外部依赖,安装即用,不引入包管理负担;
  • 跨平台:Linux / macOS / Windows 均可运行;
  • 非破坏性:合并与自动应用都要求用户批准,原始技能保留在 .archive/ 目录,任何决策都可回退;
  • HERMES_HOME 感知:通过 HERMES_HOME 环境变量解析正确的配置文件目录,多配置文件场景下不会操作错库。

审查流水线的 --auto 模式只自动应用"安全决策"(无歧义的冗余移除等),涉及内容合并的决策仍留在人工确认环节——自动化只处理确定性场景。

三、实测结果

PR body 未附带自动化测试数据或真实技能库的扫描报告,本节内容为设计意图与预期效果,尚未获得实测验证:

  • 预期效果一:在积累了大量领域技能的真实库上运行 consolidate.py --scan,能输出相似技能簇清单,簇内技能描述重叠可被肉眼验证;
  • 预期效果二auto_review.py --days 7 能对近 7 天新增技能给出重复性审查结论;--auto 模式仅对无歧义项自动处理;
  • 预期效果三:健康报告(--health)能反映技能库的冗余比例与结构健康度。

以上均为设计意图,真实库上的效果需要安装后自行验证。

四、能力边界

  • 相似度判定基于描述与元数据:扫描依据是技能描述、能力表述这类文本信号,对"描述不同但功能相同"的技能可能漏判;
  • 合并决策是建议不是自动:伞形技能怎么组织、哪些技能并入,最终由用户判断,工具只给策略不给裁决;
  • cron 节奏是默认值:每周扫描、每两小时审查是推荐的起跑线,需要用户按自己技能库的增长速度调整;
  • 可选安装意味着默认不防护:未安装该技能的用户,技能库的内容健康仍无人值守;
  • 无自动化测试记录:PR body 未提供测试套件数据,脚本在极端输入(空库、超大库、损坏的 SKILL.md)下的表现未经验证。

五、PR 信息

  • PR 地址:https://github.com/NousResearch/hermes-agent/pull/47110
  • 改动规模:+2310 / -0,9 个文件
  • PR 状态:closed
  • 提交时间:2026-06-16

本文记录 x7peeps 向 Hermes Agent 上游贡献的特性研究,所有数据来自 PR 实测记录。