audit-hermes-agent-skills
Audit Hermes Agent Skills
审计 Hermes Agent 已安装技能的使用频率,识别长期不使用的技能并安全清理。
通过 hermes 内部 API(_find_all_skills、_read_manifest、HubLockFile)获取权威的技能来源分类(hub/builtin/local/external),结合文件系统扫描定位实际目录路径。
使用方式
所有命令使用 uv 运行(自动管理依赖):
第一步:生成审计 XLSX
uv run ~/.hermes/skills/audit-hermes-agent-skills/scripts/audit.py
打印简单概览后生成 技能审计报告.xlsx 到当前目录。
第二步:在 Excel 中填写决策
打开 技能审计报告.xlsx,通过「我的决策」列的下拉框标记每个技能:
| 技能来源 | 下拉选项 | 默认值 |
|---|---|---|
| 内置技能 | 启用 / 禁用 | 当前状态 |
| 其他技能 | 保留 / 删除 | 保留 |
颜色标记:🟢绿色=在用,🔴粉色=建议删除,🟠橙色=建议禁用,⚪灰色=已禁用。
第三步:执行清理
uv run ~/.hermes/skills/audit-hermes-agent-skills/scripts/audit.py --apply
先打印变更摘要(删除/禁用/启用各多少),用户确认 y 后自动执行:
- 备份
config.yaml - 备份要删除的技能目录到
~/.hermes/skills/.audit-backups/并删除 - 更新
config.yaml的skills.disabled列表(合并新增和移除)
核心原理
技能调用记录存储在 ~/.hermes/state.db 的 messages.tool_calls 字段中。通过解析 skill_view 和 skill_manage 工具调用,统计每个技能的调用历史。
脚本通过 三种数据源 确定技能属性和健康度:
| 数据源 | 用途 | 优先级 |
|---|---|---|
Hermes 内部 API(_find_all_skills、_read_manifest、HubLockFile) |
基础来源分类:builtin / hub / local / external | 主分类 |
Hermes Curator(hermes curator status + run.json) |
交叉验证来源分类,补充 Curator 活跃度指标(activity/use/view/patches)和 consolidation/archive 关系 | 权威覆盖(高于 API) |
文件系统扫描 + state.db tool_calls 解析 |
定位物理目录路径、统计调用频次 | 基础覆盖 |
Hermes Curator 集成点:
- 来源分类权责:如果 Curator 认定某技能为
agent-created,覆盖 API 返回的local分类(agent-created 是 local 的真子集) - Consolidation 感知:从 Curator 的
run.json读取技能合并关系(如dida365-openapi → platform-integration),告知用户该技能已被 umbrella 替代 - 归档感知:curator 归档的技能在建议中标记为「已归档」,防止用户重新启用
- 活跃度指标:
activity= 总操作次数,use= skill_view 调用,patches= 修改次数,last_activity= 最近活动
来源分类映射:
| 来源 | 识别方式 | 含义 | 清理方式 |
|---|---|---|---|
builtin |
Hermes .bundled_manifest |
Hermes 内置技能 | 添加到 config.yaml disabled 列表 |
skills.sh |
~/.agents/.skill-lock.json |
通过 skills.sh 安装的社区技能 | bunx skills add / hermes skills uninstall |
skillhub |
~/.hermes/skills/.hub/lock.json |
通过 SkillHub 安装的技能 | skillhub remove |
agent-created |
Curator agent-created 列表 |
Agent 在用户监督下创建的技能(首次方) | 直接删除目录(先备份),低优先级清理 |
local |
不在以上任何来源 | 其他本地安装的技能 | 直接删除目录(先备份) |
external |
~/.agents/skills/ 路径 |
外部共享技能,影响所有 Agent | 删除需谨慎,确认不影响其他 Agent |
备份恢复
# 查看备份
ls -la ~/.hermes/skills/.audit-backups/
# 恢复单个技能
tar -xzf ~/.hermes/skills/.audit-backups/cleanup-<timestamp>/<skill-name>.tar.gz -C ~/.hermes/skills/
注意事项
--apply必须用户输入 y 确认,不会自动执行- 执行前自动备份 config.yaml 和目标技能目录
- config.yaml 修改会合并现有 disabled 列表而非覆盖
- 已禁用的零调用技能不会重复建议
More from cnife/skills
obsidian-diary
将会话内容总结并写入 Obsidian 工作日志或个人日记,管理待办事项。当用户说「记录一下」「保存这个」「记一笔」「总结工作」「更新日志」「写日记」「记录会议」「更新待办」,或会话末尾有多个可记录的事件/结论/决策时,必须加载此技能。工作相关(代码开发、方案设计、运维部署、正式会议)用 work 变体;个人方向(技术探索、学习笔记、投资复盘、生活记录)用 personal 变体。不要等用户明确说「写日记」——会话中出现结构化结论、技术选型决策、部署结果、调研成果时就应该主动检查是否需要记录。
18skill-evaluator
>
17optimize-agents-md
AGENTS.md 编写与优化指南,遵循渐进式披露原则。当用户创建、修改或重构 AGENTS.md,讨论 AI agent 指令结构、规则放置位置,或提到「渐进式披露」「模块化」「AGENTS.md 最佳实践」时,务必加载此 skill。即使用户只是说「帮我写个 AGENTS.md」「优化一下这个配置文件」「拆分一下规则」,也应该使用此 skill。
13git-master
MUST USE for ANY git operations. Atomic commits, rebase/squash, history search (blame, bisect, log -S). Use when the user mentions commit, rebase, squash, git blame, bisect, who wrote, when was X added, find the commit that, git history, or any git-related operations.
8arch-wsl-cleanup
>-
5worklog
从多个数据源收集用户活动轨迹 → 分析并区分工作与个人内容 → 排版为 PDF → 投递到邮箱。触发词:「发日报」「生成日报」「发我的今天」「今日汇总」「日记 PDF」「每天总结」「保存日志」「生成日报发邮件」。当你发现用户需要做每日回顾、日志汇总、生成日报 PDF 并发送时触发。
4