2026-06-01 · DECISION TRACE

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

保留方案、指标、验证、复盘和治理判断,让结论能够追溯。

2026-06-01记录日期
治理记录记录类型
23章节数

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

  • HTML: https://decision.ht1072.top/2026-06-01-hermes-skill-governance-monthly-audit-2026-06-01.html
  • Local HTML: [已移除本地路径]
  • Generated: 2026-06-01T09:47:52+08:00

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

页面摘要区

核心结论

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

推荐路径

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

关键边界

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

关键依据

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

行动清单

  • 继续保留 monthly-skill-exit-audit 为 script-only no_agent cron,避免夜间误打主模型池。
  • 每次批量治理后运行 audit_skills_frontmatter.py,要求非 archive issue_count=0。
  • humanizermcporter 这类同名项,审计输出必须带路径,不能只写 skill name。
  • 下月重点观察 plan 的真实触发量,再决定是否从 compat 进入 deprecated。
  • 若 OpenClaw imports 有替代关系,只标 compat/replacement,不做批量删除。

风险与回退

  • 风险:策略规则写得过宽会误退役平台/采集类能力;回退方式是保留显式保护清单,并让审计只给建议。
  • 风险:cron 如果重新改回 agent 型,会再次受模型发挥、卡片落盘不完整和 CPA/Codex 资源池污染影响;回退方式是恢复 monthly_skill_exit_audit.py script-only 定义。
  • 风险:禁用通道属于 gateway config 层变更,当前运行进程可能需要重启或新进程才完全吃到;本轮已完成 fresh config 验证。

背景

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.md status,且 related_skills 指向不存在的 hermes-agent-dev status: active,移除坏引用,补 triggers/scope/replacement
creative/baoyu-article-illustrator/SKILL.md status 和部分 metadata.hermes 字段 status: active,补 related_skills/triggers/scope/replacement
autonomous-ai-agents/kanban-codex-lane/SKILL.md status 和部分 metadata.hermes 字段 status: active,补 triggers/scope/replacement
devops/vps-proxy-ops/SKILL.md weekly frontmatter audit 发现缺 metadata.hermes.replacement 补 replacement
devops/vps-proxy-deploy/SKILL.md weekly frontmatter audit 发现缺 metadata.hermes.replacement 补 replacement

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

项目 变更后状态
cron name monthly-skill-exit-audit
job_id 60350e570c0b
schedule 0 4 1 * *
script monthly_skill_exit_audit.py
no_agent true
deliver feishu
成功行为 主动发送 Feishu interactive card,stdout 为空,避免重复文本投递
失败行为 写 receipt 并输出失败摘要

脚本路径:

[已移除本地路径]

固定产物目录:

[已移除本地路径]

固定产物类型:

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/内部能力入口,不是普通外部消息通道,因此保留。

配置备份:

[已移除本地路径]

验证结果

Frontmatter 准入检查

执行:

python3 [已移除本地路径] [已移除本地路径]

结果:

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

月度审计 dry-run

执行:

python3 [已移除本地路径] --no-card

最新 dry-run 产物:

[已移除本地路径]
[已移除本地路径]
[已移除本地路径]

dry-run receipt 显示:

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

Skill 库事实摘要

指标 数值
SKILL.md 总数 197
archive 数量 29
非归档 active 161
非归档 compat 7
非归档 status 缺失 0
bad related_skills 0

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

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

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": "[已移除本地路径]
  "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 对默认模型池和外部通道的副作用。