正在刊行长文 · Essay
2026-07-08所有内容
随机比特 · Random Bits

skill 存在的意义是把"随机系统"逼出"可预测性"

2026-07-08AI Engineering / Systemsrbits.uk
skill 存在的意义是把"随机系统"逼出"可预测性"

我审查了自己的 73 个 AI Skill,一个都没做对这件事。

今天下午做了一件小事:把一份给 AI 用的操作手册,从 587 行删到 404 行。

这份文档教 AI agent 怎么按流程处理用户反馈:录入 issue、派会话去 debug、验证、提交、回填结果。前段时间给它加了个"同时处理多个任务"的功能,文档从 380 多行涨到 587 行。

涨的这 200 多行,单独看都有用:怎么建隔离的工作目录、怎么分端口、怎么维护进度看板、两个任务冲突了怎么办——都是真踩过的坑。

但整份文档变得很难读。而且这些内容里,八成场景根本用不上——大多数时候还是一个任务、一个会话,老老实实串行处理。

这是写 skill、写 agent 规则文件最容易踩的坑:每一段都有道理,堆在一起就是一坨。

一句话,成了尺子

处理这个问题时,我正好在读一个专门讲"怎么写好 skill"的仓库,里面一句话说到了点子上:

skill 存在的意义,是把随机系统逼出可预测性。每一个设计决策,都要为这个目标服务。

这句话给了一把很具体的尺子:写任何一段内容之前,先问一句——少了它,AI 的行为会不会变得不可预测?

答案是"不会",这段内容就不该占正文的地方,要么删,要么挪走。

我拿这把尺子重新审视了三类平时容易犯迷糊的决策,每一类都能落地成一个可以照做的判断方法。

第一个用法:这段该不该常驻

Cursor 和 Claude Code 的 Agent Skill 机制,说白了就是把 SKILL.md 的说明常驻在 AI 的上下文里,让它随时知道"我有这个技能,什么时候该用"。

常驻是有代价的,每一轮对话都占一块上下文。所以两个平台都留了个开关:disable-model-invocation: true。开了之后,这份说明不再常驻,只有你点名调用才加载。

什么时候该开?还是那把尺子。如果这个 skill 是"AI 自己联想到就该主动用"的类型,比如用户提到 PDF,就该联想到 PDF 处理技能——这种不能关。关了 AI 就联想不到,行为反而变得不可预测。但如果是"必须由人点名"的固定流程,比如一份内部 SOP、一套发版脚本,开不开这个开关,AI 的行为毫无区别,只是白占上下文。

Cursor 官方写"怎么创建 skill"的文档里,原话是这么说的:

Defaultdisable-model-invocation: trueso the skill only loads when named explicitly. Omit it only when the agent should auto-invoke from ambient context.

翻译过来:默认就该开这个开关,只有确定需要 AI 自己触发时才不开。

我去查了自己维护的 skill 仓库,里面 73 个 SKILL.md。用了这个开关的有几个?

0 个。

这 73 个里,至少十几个是"必须点名才用"的固定 SOP,全部在无意义地常驻占上下文,一次都没用上这个开关。

第二个用法:这段该不该拆出去

回到那份 587 行的文档。并发处理相关的内容虽然写得都对,但只有少数场景用得上——正好符合"少了它,正常场景下 AI 的行为完全不受影响"这条判断。所以我把这部分整体拆成独立文件,主文档里只留几行指路的话,需要时再点进去看。

这里有个可以直接复用的判断阶梯,按上下文成本分三层:

按这个阶梯看,并发处理的具体命令——怎么建隔离目录、怎么分端口、怎么处理冲突——明显该在第三层,之前却被写在第一层的位置上,难怪文档越来越臃肿。

拆完之后,主文档从 587 行降到 404 行。原来直接嵌在 Markdown 里的一段刷新任务看板的脚本,也顺手抽成了真正可执行的文件,不用再从文档里现抄命令。

这个数字不重要,重要的是这套判断过程可以直接照搬到任何一份正在变长的 SKILL.md 上。

第三个用法:这句话该不该说

还有一类更细的问题:一句话本身值不值得写。

两种常见的浪费。一种是 AI 默认就会这么做,你又说了一遍——比如"请仔细检查代码",对一个正常工作的 AI 基本没信息量,删掉它,行为不会有任何变化。另一种是同一个意思换个说法又说一遍——前面说了"提交前核对暂存区",后面又用不同措辞重复一次同样的要求,读着啰嗦,AI 也不会因为多说一遍就更认真。

判断方法还是那句话:这句话删掉,行为会不会变。不会变,就删。

可预测性是根,其它都是手段

写到这,其实就想说一件事:可预测性是唯一的根,简洁、结构清晰、常驻还是不常驻,都只是为它服务的手段,不是目的本身。

如果你手头也有一份正在变长的 SKILL.md 或者 AGENTS.md,不用急着照抄什么最佳实践清单,先拿这句话从头到尾问一遍就够了:这一段,少了它,AI 会不会变得不可预测。

问完你会发现,至少有一部分内容,答案是"不会"。

延伸阅读

• mattpocock/skills——这句话出自这个仓库里的writing-great-skills

• Cursor 官方创建 skill 的指引也明确写了disable-model-invocation的默认建议,值得翻一眼自己维护的 skill 有没有用上

如果你也维护了一堆 SKILL.md,欢迎去数数自己有几个用上了这个开关。

原文:https://mp.weixin.qq.com/s/KqCTqU0tzkQPdCFzk1XSkg

随机比特公众号二维码
公众号 · 随机比特
从 AI 工具热闹里拆工程真相

写边界、控制面、上下文、成本与安全。