Oct 9, 2026
让 Claude Code 自己养出一份技能库:autoharness
autoharness 是一个 10k 星的 Claude Code 插件:从你的真实会话里蒸馏 skill、合并近似重复、归档不再被使用的条目——而且只动它自己写的那些。
skill 会腐化。你三月份教给 agent 的经验,到六月已经是一个近似重复的文件夹,而且没人去清理。autoharness——Tigerless Labs 出品的 10k 星插件——让技能层自己维护自己:它从你本来就在进行的会话中学习 skill,把同类场景的教训合并而不是堆叠,在使用中更新它们,并把不再被使用的归档。它只碰自己写的 skill;你自己的那些对它完全不可见。
为什么这个 Skill 重要
README 给出了这个赌注的依据:同一个模型换一套 harness,CORE-Bench 成绩从 42% 跳到 78%(引用 HAL 论文)——但 harness(包括技能层)在每一代模型手里都要手工重建。autoharness 自动化了其中一片:一个 skill 的存续依据是后续会话对它的遵循程度,而不是 held-out 基准分数,也不需要一个常驻守护进程。
安装
在 Claude Code 输入框里输入:
/plugin marketplace add tigerless-labs/autoharness
/plugin install autoharness@autoharness
然后运行 /reload-plugins 或重启 Claude Code。零配置:它会监视你的会话,在后台把学到的 skill 放进 .claude/skills/。
一个硬性要求:PATH 上的 python3 必须是 Python 3.11+——autoharness 完全以 Python 运行,零第三方依赖。README 警告说,PATH 上更靠前的旧解释器(macOS Xcode 自带 3.9.6)会让本会话的所有 hook 失效;出现这种情况时 autoharness 会在 stderr 打印警告。支持平台是 Linux 和 macOS。
实战:看着一个 skill 诞生
- 在任意非平凡任务上正常工作几轮——调一个 bug、梳理一个工作流。不需要调用什么;默认每 50 次工具调用触发一次反思,而且它数的是工具调用,不是对话轮次。
- 查看状态目录:
ls .claude/autoharness/能看到排队中的 skill 提案(intents/)、每次运行的记录(runs/<run-id>.json)和上一次运行的摘要。 - 落地的 skill 是
.claude/skills/下的一个普通文件夹——原生SKILL.md,外加记录它为何诞生或被修改的.ledger.jsonl、.sidecar.json里的生命周期计数,以及references/evidence-*.md下作为依据的脱敏会话切片。 - 想立刻留住一条经验?搞定某件事之后说
/learn,它会把当前会话送进与后台相同的提案加校验链路。
/learn
- 开一个新会话:它的开头会收到 autoharness 所写 skill 的分组索引,外加一行上次运行报告——被拒绝的提案会写明,而不是无声消失。
技巧
- 用环境变量加速演示循环:
AUTOHARNESS_REFLECT_EVERY_N=3(默认 50)让反思几乎立即触发,成熟度和容量参数则能缩短晋升链路。 - 使用量按三种方式计数:load(模型真正加载了这个 skill——唯一计入存续判定的信号)、view(会话读进了它的目录)、patch(落地了一次改进)。被浏览不等于被遵循。
- 退役是归档,不是删除:不再被使用的 skill 会移到
.claude/skills/.archive/<name>/,账本和证据都在——把文件夹移回去即可复活。 - 更新要按顺序执行两条命令——先
claude plugin marketplace update autoharness,再claude plugin update autoharness@autoharness——然后重启;README 解释了必须先刷新目录,否则 update 可能检查到过期的目录,误报「已是最新」。
何时不用这个 Skill
它构建在 Claude Code 的插件和 hook 体系上——不适用于其他 CLI。如果你想要一份确定性的、每个 skill 都经人工审核才落地的手工策划库,自主技能层并不划算。另外,如果你的 python3 低于 3.11 且无法更换,hook 根本不会触发。
查看 排行榜 了解更多 skill。