167 条规则里,只有 5 条被测过
给 agent 写的规则越攒越多,却没人验证过哪条真在起作用。我写了个扫描器审自己的规则集,145 条连度量都没写。
用 Claude Code 的人大概都有这个体感:规则越写越多,agent 却越来越迟钝。而且没人说得清是哪条规则在起作用、哪条早就失效了。
我给自己攒了 167 条。写的时候每一条都有理由,事后一条都回忆不起来。
规则集会腐烂
我想了挺久这个现象的成因,最后觉得它是个熵的问题。
规则集是个封闭系统——没有人在验证,没有人在删,没有人在重新测试。模型升级了,某条规则可能早就不成立,但你不会知道。所以它只会单向地增长、变旧、互相矛盾。要减熵,只能从外部做功。
那「从外部做功」具体是什么?我的答案是度量。一条规则说「这样能减少漂移」,那减少多少?拿不出数字,它就不是一条规则,是一句措辞。
扫描器说了什么
我写了个脚本,把自己这 167 条按证据分了类:
- 145 条(87%) 是纯行为规则,从头到尾没提过任何度量——比如「编辑前先 Read」。你没法判断它有没有用
- 12 条 声称了效果(「防止漂移」「短路 no-op」),但从不说幅度
- 4 条 引了别人的数字,没有任何人复现过——包括我自己
- 1 条 断言了一个数字,连出处都没有
- 5 条 有真正的自测
也就是说,声称有效果的规则一共 22 条,我测过 5 条。剩下 17 条是信仰。
这个结果比「有些规则没测」更难受一点。我原以为手里有证据,其实大部分时候手里只是话术。
路由器也得自测
规则多了以后的第二个问题是加载。全塞进上下文,既贵又稀释注意力。所以我写了个路由器:给一个查询,只调出相关的那几条。
但这里有个自指的坑——路由器的规则本身也是规则。按上面「没有度量就是信仰」的标准,它同样得自证。所以我给它配了测试集,报真实的 precision / recall,从 L0 的 0.511 一路到严格判据的 0.861。
被证伪的死路我留在仓库里没删。删掉的话,下次我或者别人还会再走一遍。
诚实边界
那个分类器是正则写的,不精确,v1 主要靠人工兜底。这不是免责声明,是这类工具的真实状态——它能告诉你「这里可疑」,不能替你判案。
工具开源、零依赖,可以直接扫自己的规则:
git clone https://github.com/gkw77/rule-entropy.git
cd rule-entropy
node reproducible/rule-evidence-audit.js \
~/.claude/rules "common,python"
手里没有规则要扫也行,跑 node reproducible/rule-evidence-audit.js corpus . 会用仓库里那份冻结快照,把上面这些数字原样打印出来。
最后一件没解决的事:这个工具能审出规则里有多少信仰,审不了分发。仓库里的证据比绝大多数规则都扎实,读者是零。那是另一个问题了。