Hermes Decision Trace · Layout Preview

Hermes Skill Context Pruning 与 Cron Script-only 收口复盘

这次没有机械套用“删掉 95% skills”,而是把外部文章里的有效原则转成本机 Hermes 治理动作:默认上下文更小、skill 正文更瘦、cron 尽量 deterministic script-only、验证以真实 output 和产物为准。

🧭
推荐路径

后续继续按“gotchas-first、evidence-first、default surface minimal”治理 skill 和 cron;先观察已改任务自然运行,不继续扩大改动面。

🔎
关键依据

已完成 memory 新增分流规则、skill context-drag 审计指标、6 条 cron 的 script-only 收口与 run-now 验证;所有关键任务保留原 schedule / deliver / workdir / repeat=forever。

🛠️
落地方式

先把已收口的 script-only cron 当成稳定基线:保留当前 schedule / deliver / workdir,不急着继续扩面;新增候选先读源码、看 output、做 run-now 验证,再决定是否转 script-only。

证据摘要

  • 已完成 memory 新增分流规则、skill context-drag 审计指标、6 条 cron 的 script-only 收口与 run-now 验证;所有关键任务保留原 schedule / deliver / workdir / repeat=forever。

行动清单

先观察 hermes-official-docs-syncdaily-backup-notifyhermes-morning-brief-prefetch/send;若继续优化,也先读脚本和 output,再判断是否 script-only 或只做定义层审计。

边界 / 风险

业务副作用

weekly-digest 会追加 digest log;memory-archive 会追加 memory log 并可能移动过期日记。这是任务预期行为,但 run-now 验收前必须显式意识到副作用。

no-agent 不等于无需验收

script-only 只是减少模型参与;仍要检查 output、Mode: no_agent (script)、wrapper 摘要、副产物大小、API / JSON / report 可读性。

外部推送任务不能一把梭

daily-backup-notifyhermes-morning-brief 这类 Feishu card / 晨报任务有外部消息副作用;后续先做定义层审计和脚本检查,不直接 run-now 打扰。

完整记录

Hermes Skill Context Pruning 与 Cron Script-only 收口复盘

背景

本轮起点是一篇关于 Agent Skills 剪枝的文章:WorkOS/Nick Nisi 案例中,把约 10,000 行 Agent Skills 缩到 553 行 gotchas,公开材料声称 eval 时间从 68 分钟降到 6 分钟,成功率从 77% 提升到 97%。

该案例已被整理到长期概念页:[[agent-skill-context-pruning]]。

本机吸收时采用了保守口径:

  • 不把单一案例泛化成通用 benchmark。
  • 不机械执行“删 95% skill”。
  • 不删除现有知识库和 references。
  • 只吸收可迁移工程原则:少塞泛知识,多写约束点;少信自报,多看证据;默认暴露面越小越稳。

吸收后的治理原则

1. Gotchas-first

Skill 正文不应该复刻官方文档或长教程。默认只保留:

  • 触发条件。
  • 边界判断。
  • 最短执行链。
  • 真实踩坑。
  • 验证命令。
  • 回滚路径。

背景、案例、矩阵、长解释优先下沉到:

  • ~/llm-wikis
  • skill references/
  • Hindsight retain pointer
  • session history

2. Evidence-first

cron 和 skill 的“成功”不再看 agent 自报,而看:

  • ~/.hermes/cron/output/<job_id>/最新输出
  • jobs.json:last_run_at / last_status / last_error / next_run_at
  • 真实副产物文件大小、内容、JSON 可解析性
  • HTTP API status / stats
  • card payload / send receipt

3. Default surface minimal

默认注入上下文越少越好。能用固定脚本完成的 cron,不继续加载 agent、skill、toolsets 和主模型。

最适合 script-only 的任务:

  • 固定 HTTP API trigger。
  • 固定审计脚本。
  • 固定文件生成并可回读验证。
  • 固定治理巡检和摘要生成。

不急着 script-only 的任务:

  • 仍需开放式分析的任务。
  • Feishu interactive card 型任务,尤其有外部推送副作用。
  • 晨报 send 这类联动链路。

已完成调整

Memory governance:新增 L0 分流审计

更新位置:

/home/ht/.hermes/skills/integration/hermes-memory-governance/SKILL.md

新增口径:新增 USER.md / MEMORY.md 前先判断是否必须常驻注入。方案、矩阵、路线图、迁移清单、能力分层、选型结论默认优先写 wiki/reference,而不是继续堆 L0 memory。

当前意义:

  • 把 L0 memory 定位成索引层。
  • 避免把一次性过程和长说明塞进每轮上下文。
  • ~/llm-wikis 的长期知识治理形成分层。

Skill audit:加入 context-drag 只读指标

更新位置:

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

新增指标:

  • skill_chars
  • body_chars
  • line_count
  • codeblock_count
  • reference_count
  • context_drag
  • top_oversized
  • long_without_references

已验证事实:

  • non-archive total chars: 2,234,826
  • skills > 12k chars: 60
  • skills > 20k chars: 23
  • skills > 40k chars: 5
  • >12k 且无 references: 9

意义:

  • 不自动删 skill。
  • 只暴露瘦身候选。
  • 后续按 active/compat/deprecated/archive 与 references 下沉处理。

Cron:script-only 收口清单

本轮和前置相关收口后,下列任务已处于 script-only 形态并完成 run-now 或自然运行验证。

任务job_idscriptdeliverschedule验证状态
monthly-skill-exit-audit60350e570c0bmonthly_skill_exit_audit.pyfeishu0 4 1 * *已验证
skill-frontmatter-weekly-auditc07e89032631skill_frontmatter_weekly_audit.pyorigin0 10 * * 1已验证
weekly-digest76f315cf1fcdweekly_digest_cron.pylocal0 23 * * 0已验证
memory-archive3d14b2fb2167memory_archive_cron.pylocal0 3 1 * *已验证
hindsight-consolidate23938fe15e8bhindsight_consolidate_cron.pylocal0 */3 * * *已验证
llm-wikis-governance-daily60647a2de803llm_wikis_governance_daily_cron.pylocal15 7 * * *已验证

共同效果:

  • no_agent=true
  • skills=[]
  • 不再继承主模型。
  • 不再误打 CPA/Codex 池。
  • 保留原 schedule / deliver / workdir。
  • repeat 仍为 forever。

验证证据

skill-frontmatter-weekly-audit

最新验证 output:

/home/ht/.hermes/cron/output/c07e89032631/2026-06-02_09-17-59.md

结果:

  • Mode: no_agent (script)
  • skills_checked: 168
  • baseline_loaded: True
  • issue_count: 0

weekly-digest

最新验证 output:

/home/ht/.hermes/cron/output/76f315cf1fcd/2026-06-02_09-26-00.md

结果:

  • Mode: no_agent (script)
  • 周期:2026-W22
  • 日记文件数:7
  • weekly/index/log 均已回读校验
  • verified: true

memory-archive

最新验证 output:

/home/ht/.hermes/cron/output/3d14b2fb2167/2026-06-02_09-26-00.md

结果:

  • Mode: no_agent (script)
  • 本次无需要归档的日记
  • log.md 已变化
  • verified: true

注意:本轮发现 ~/.hermes/bin/memory-archive --help 没有 help 分支,会直接执行归档。该坑已写入 hermes-cronjob-safe-update,后续检查本地脚本前先读源码确认是否有 argparse / dry-run。

hindsight-consolidate

最新验证 output:

/home/ht/.hermes/cron/output/23938fe15e8b/2026-06-02_09-41-00.md

结果:

  • Mode: no_agent (script)
  • api_status: 200
  • total_nodes: 5391
  • total_documents: 299
  • pending_consolidation: 0
  • failed_consolidation: 0

llm-wikis-governance-daily

最新验证 output:

/home/ht/.hermes/cron/output/60647a2de803/2026-06-02_09-41-12.md

产物:

  • /home/ht/llm-wikis/_meta/wiki-governance-check-report.md:13,711 bytes
  • /home/ht/llm-wikis/_meta/wiki-governance-check-latest-summary.md:537 bytes
  • /home/ht/llm-wikis/_meta/wiki-governance-check-latest-summary.json:585 bytes

当前 verdict:

  • action-needed
  • broken_links: 2
  • hard_orphans: 37
  • stale_central_pages: 86
  • missing_page_candidates: 1

备份

本轮关键备份:

  • /home/ht/.hermes/backups/skill-context-pruning-20260602_091018/
  • /home/ht/.hermes/backups/cron-script-only-next-20260602_092158/
  • /home/ht/.hermes/backups/cron-script-only-next2-20260602_094646/

备份覆盖:

  • ~/.hermes/cron/jobs.json
  • monthly_skill_exit_audit.py
  • weekly_digest_generate.py
  • memory_archive_verify.py
  • wiki_governance_check.py
  • wiki_governance_summary.py
  • memory governance skill 原文件

本次严格没有做

  • 没有批量删除 skill。
  • 没有删除 wiki/reference/Hindsight 数据。
  • 没有重启 gateway。
  • 没有把 Feishu card 型任务全部 run-now。
  • 没有改晨报 send 链路。
  • 没有把文章数字当成通用 benchmark。

风险与边界

风险 1:script-only 任务仍可能有业务副作用

weekly-digest 会追加 digest log;memory-archive 会追加 memory log 并可能移动过期日记。这是任务预期行为,但 run-now 验收前必须显式意识到副作用。

风险 2:no-agent 不等于无需验收

script-only 只是减少模型参与。验收仍要看:

  • output 是否生成。
  • output 是否显示 Mode: no_agent (script)
  • wrapper 是否输出真实摘要。
  • 副产物是否存在且大小合理。
  • API / JSON / report 是否可读。

风险 3:Feishu card 型任务不能一把梭

daily-backup-notifyhermes-morning-brief 这类任务有外部消息副作用。后续应先做定义层审计和脚本检查,不直接 run-now 打扰。

下一步

观察优先

接下来先观察这些任务自然运行:

  1. weekly-digest:下次自然运行是否仍生成 W22/W23 对应周报,log 是否继续一致。
  2. memory-archive:下次月初是否能在 no-op / 有归档两种情况下都给出正确 output。
  3. hindsight-consolidate:3 小时周期是否持续不再调用主模型。
  4. llm-wikis-governance-daily:次日 07:15 是否继续落三份 governance 文件。

候选优化

若继续优化,优先顺序:

  1. hermes-official-docs-sync:固定同步脚本,适合先读源码和最新 output,再判断是否 script-only。
  2. daily-backup-notify:Feishu card 型,先做审计,不直接 run-now。
  3. hermes-morning-brief-prefetch:可考虑 script-only,但要确认和 send 阶段缓存契约。
  4. hermes-morning-brief:send 阶段保留更高谨慎级别,避免误发或卡片退化。

长期规则

这次吸收文章后的长期规则可以压成三句话:

  1. Skill 不做知识仓库,skill 做执行入口和坑点清单。
  2. Cron 能确定性执行就 script-only,别让 agent 和主模型参与固定任务。
  3. 成功只看证据,不看自报;证据包括 output、状态、文件、API、payload、receipt。