Hermes Decision Trace

Hermes Skill 治理与月度审计链路收口复盘

核心结论:本次治理没有把“退役 skill”当主目标,而是把月度 skill 审计从模型自由判断改为确定性事实采集与轻量策略评估:先保证事实口径可复现,再对缺字段、坏引用、同名误伤和保护项冲突做最小治理。

HTML完整论证
Wiki可检索归档
Feishu短入口交付
🎯
核心结论

本次治理没有把“退役 skill”当主目标,而是把月度 skill 审计从模型自由判断改为确定性事实采集与轻量策略评估:先保证事实口径可复现,再对缺字段、坏引用、同名误伤和保护项冲突做最小治理。

🧭
推荐路径

后续 skill 治理应继续走“deterministic facts script + lifecycle policy + 人工确认”的路径;月度审计只产出卡片、facts JSON 和建议,不直接修改 skill 文件。

🛡️
关键边界

平台型能力、搜索/抓取/Office/Agent Browser/OpenClaw fallback 等保护组不因窄路由或同名冲突被自动退役;archive 项保持归档,不批量洗白。

关键判断

判断项摘要
推荐方案推荐路径:后续 skill 治理应继续走“deterministic facts script + lifecycle policy + 人工确认”的路径;月度审计只产出卡片、facts JSON 和建议,不直接修改 skill 文件。
关键依据Frontmatter 审计已通过,skills_checked=168、issue_count=0;月度审计 facts 显示非归档 status 缺失为 0、bad related 为 0。
落地方式按行动清单推进,保持可回退。
风险边界风险:策略规则写得过宽会误退役平台/采集类能力;回退方式是保留显式保护清单,并让审计只给建议。

证据摘要

  • 关键依据:Frontmatter 审计已通过,skills_checked=168、issue_count=0;月度审计 facts 显示非归档 status 缺失为 0、bad related 为 0。

行动清单

月度审计继续只做建议,不自动写 skill 文件。 这能避免模型误删或误降级保护项。
weekly frontmatter audit 作为准入红线。 修改 skill 后必须回跑,目标是非 archive issue_count=0。
同名 skill 输出必须带路径。 下月审计继续关注 humanizermcporter
观察 compat 项触发量。 尤其是 plan,如果一个月无真实触发,再考虑 deprecated。
OpenClaw imports 维持 fallback/compat。 只有确认 Hermes native 完整覆盖且无历史调用,再进入退役讨论。
通道禁用属于配置层,不等于凭证删除。 如需恢复 Telegram/Discord/Slack 等,只需要重新启用配置并重启/刷新 gateway 运行态。

边界 / 风险

风险 / 边界

风险:策略规则写得过宽会误退役平台/采集类能力;回退方式是保留显式保护清单,并让审计只给建议。

风险 / 边界

风险:cron 如果重新改回 agent 型,会再次受模型发挥、卡片落盘不完整和 CPA/Codex 资源池污染影响;回退方式是恢复 monthly_skill_exit_audit.py script-only 定义。

风险 / 边界

风险:禁用通道属于 gateway config 层变更,当前运行进程可能需要重启或新进程才完全吃到;本轮已完成 fresh config 验证。

完整记录

Hermes Skill 治理与月度审计链路收口复盘(2026-06-01)

背景

2026-06-01 凌晨 4 点多,monthly-skill-exit-audit 执行了一次月度 skill 退出机制审计,并成功发送 Feishu interactive card。复盘后发现审计结果有参考价值,但链路本身存在几个隐患:

  1. 审计把“实际状态分布”和“建议状态分布”混在一起,容易误读。
  2. humanizer 等同名 skill 没带路径,容易把 creative/humanizeropenclaw-imports/humanizer 混淆。
  3. 模型可能把窄路由 skill 判成 disabled,例如 yuanbao,但平台能力窄是设计属性,不等于应退役。
  4. 卡片展示只是摘要,完整事实没有稳定 JSON 事实源。
  5. 原 cron 是 agent 型,夜间运行可能继承默认模型,误打 CPA/Codex 资源池。

因此本轮治理目标不是“批量删 skill”,而是:

  • 先修确定性 frontmatter 问题;
  • 再把月度审计链路改成可复现脚本;
  • 最后调整 gateway 通道启用面,减少无关外部通道噪声。

治理原则

原则含义本次执行方式
事实先行生命周期建议必须基于可复现事实,而不是模型临场发挥新增 monthly_skill_exit_audit.py,先输出 facts JSON
最小治理只修确定性问题,不批量改状态、不批量删除只补缺失 status、坏 related_skills 和 metadata 字段
路径消歧同名 skill 必须带路径展示报告中使用 path + name,避免 humanizer 误伤
保护组优先搜索、采集、Office、Agent Browser、OpenClaw fallback 不自动退役保留显式 policy 与保护清单
script-only稳定审计任务用脚本主导,agent 不负责自由判断cron 改为 no_agent=true
可追溯卡片发送前后必须落 payload 和 receipt固定产出 card_payload_*.jsonsend_receipt_*.json

已完成动作

1. 修复确定性 skill metadata 问题

文件问题处理结果
software-development/hermes-s6-container-supervision/SKILL.mdstatus,且 related_skills 指向不存在的 hermes-agent-devstatus: active,移除坏引用,补 triggers/scope/replacement
creative/baoyu-article-illustrator/SKILL.mdstatus 和部分 metadata.hermes 字段status: active,补 related_skills/triggers/scope/replacement
autonomous-ai-agents/kanban-codex-lane/SKILL.mdstatus 和部分 metadata.hermes 字段status: active,补 triggers/scope/replacement
devops/vps-proxy-ops/SKILL.mdweekly frontmatter audit 发现缺 metadata.hermes.replacement补 replacement
devops/vps-proxy-deploy/SKILL.mdweekly frontmatter audit 发现缺 metadata.hermes.replacement补 replacement

2. 将月度审计改为 deterministic script-only

项目变更后状态
cron namemonthly-skill-exit-audit
job_id60350e570c0b
schedule0 4 1 * *
scriptmonthly_skill_exit_audit.py
no_agenttrue
deliverfeishu
成功行为主动发送 Feishu interactive card,stdout 为空,避免重复文本投递
失败行为写 receipt 并输出失败摘要

脚本路径:

/home/ht/.hermes/scripts/monthly_skill_exit_audit.py

固定产物目录:

/home/ht/.hermes/cron/output/60350e570c0b/

固定产物类型:

skill_audit_facts_*.json skill_audit_report_*.md card_payload_*.json send_receipt_*.json

3. 暂时禁用飞书和微信系以外通道

本轮根据要求,暂时禁用了以下 gateway 外部通道:

telegram, discord, slack, whatsapp, signal, bluebubbles, email, sms, homeassistant, mattermost, matrix, dingtalk, qqbot, yuanbao, webhook, msgraph_webhook, google_chat

保留:

feishu, wecom, wecom_callback, weixin, api_server

说明:api_server 是本地 API/WebUI/内部能力入口,不是普通外部消息通道,因此保留。

配置备份:

/home/ht/.hermes/backups/config.yaml.pre-channel-disable-20260601-083243

验证结果

Frontmatter 准入检查

执行:

python3 /home/ht/.hermes/scripts/audit_skills_frontmatter.py /home/ht/.hermes/skills

结果:

{ "skills_checked": 168, "issue_count": 0, "ok": true }

月度审计 dry-run

执行:

python3 /home/ht/.hermes/scripts/monthly_skill_exit_audit.py --no-card

最新 dry-run 产物:

/home/ht/.hermes/cron/output/60350e570c0b/skill_audit_facts_20260601_083551.json /home/ht/.hermes/cron/output/60350e570c0b/card_payload_20260601_083551.json /home/ht/.hermes/cron/output/60350e570c0b/send_receipt_20260601_083551.json

dry-run receipt 显示:

{ "success": true, "dry_run": true, "feishu_msg": "no-card dry run" }

Skill 库事实摘要

指标数值
SKILL.md 总数197
archive 数量29
非归档 active161
非归档 compat7
非归档 status 缺失0
bad related_skills0

当前仍需路径消歧的同名项

namepaths处理口径
humanizercreative/humanizer/SKILL.md; openclaw-imports/humanizer/SKILL.md保留路径展示;creative 现行,openclaw-imports 兼容
mcporter.archive/openclaw-imports/mcporter/SKILL.md; mcp/mcporter/SKILL.mdarchive 与现行并存,审计报告必须带路径

Gateway fresh config 验证

fresh process 读取结果:

connected_platforms ['api_server', 'feishu'] enabled_platform api_server connected True enabled_platform feishu connected True

说明:微信系未禁用,但当前 .env 没有微信/企微凭证,所以未 connected。

Cron 定义验证

目标 cron 当前定义摘要:

{ "id": "60350e570c0b", "name": "monthly-skill-exit-audit", "script": "monthly_skill_exit_audit.py", "no_agent": true, "deliver": "feishu", "schedule_display": "0 4 1 * *", "enabled": true, "workdir": "/home/ht", "skills": [], "last_error": null }

关键判断

判断项结论理由
是否批量退役 skill不做本次问题主要是 metadata 和审计链路,不是大量 skill 已废弃
yuanbao 是否 disabled不做平台特定能力窄是正常属性,不能因窄路由判退役
humanizer 是否 deprecated不整体处理同名项必须按路径区分,creative 与 openclaw-imports 生命周期不同
plan 是否 deprecated暂缓当前已 compat,继续观察真实触发量
.archive 项是否补 status不批量补archive 保持历史状态,不为统计好看洗白
月度审计是否继续 agent 型不建议稳定审计应 facts script 主导,减少自由发挥和夜间模型池污染

后续治理建议

  1. 月度审计继续只做建议,不自动写 skill 文件。 这能避免模型误删或误降级保护项。
  2. weekly frontmatter audit 作为准入红线。 修改 skill 后必须回跑,目标是非 archive issue_count=0。
  3. 同名 skill 输出必须带路径。 下月审计继续关注 humanizermcporter
  4. 观察 compat 项触发量。 尤其是 plan,如果一个月无真实触发,再考虑 deprecated。
  5. OpenClaw imports 维持 fallback/compat。 只有确认 Hermes native 完整覆盖且无历史调用,再进入退役讨论。
  6. 通道禁用属于配置层,不等于凭证删除。 如需恢复 Telegram/Discord/Slack 等,只需要重新启用配置并重启/刷新 gateway 运行态。

完整记录

本轮执行完成后,Hermes skill 库进入更干净的生命周期基线:非 archive skill 不再缺 status,坏 related_skills 已清零,月度审计链路改为 script-only 且具备 facts JSON、Markdown 报告、Feishu card payload 和 send receipt 四类审计产物。

真正重要的不是“本月退役了多少 skill”,而是把治理方法从“模型看一眼给建议”改为“确定性事实 + 显式策略 + 人工确认”。这个模式更适合 Hermes 当前 skill 数量增长后的长期治理,也能减少夜间 cron 对默认模型池和外部通道的副作用。