你写过一个skill,测试时它不触发;好不容易触发了,执行路径又跟你脑子里想的完全不一样。这种挫败感,用过skill的人多少都经历过。

问题往往不在模型,而在skill本身的设计。有人拿Anthropic官方仓库里的示例skill开了一刀,用五条标准逐条对照,结果发现:官方出品,也有一项不合格。

打开网易新闻 查看精彩图片

五条标准,先看description

评审一个skill好不好,第一眼看的是description。它要同时装下三样东西:能力清单、触发场景、用户关键词。三者齐全,模型才知道"这个skill能干什么、什么时候该叫我"。

但description还有一个容易被忽略的维度——它是写给模型看的路由规则,不是写给人看的说明书。Anthropic官方示例internal-comms的description用了第一人称,"help me write""my company"这类表述直接出现。模型匹配时得多推一层:"这个'我'是谁?"

Anthropic自己倡导的是第三人称写法。官方仓库里出现这种不一致,恰恰说明一件事:评审要拿标准过一遍,不能因为"这是官方的"就免检。

触发策略和正文,看的是匹配度

第二条标准是触发策略。自动触发还是手动触发,取决于有没有disable-model-invocation。internal-comms没有这个标记,属于自动触发,而它的description里触发场景明确、关键词丰富,策略和写法是匹配的。

这里有个反向逻辑:如果只能手动触发,description就没那么重要了,因为不靠它来路由。

第三条看正文。internal-comms的正文只有30行,只做一件事——路由。什么时候用、三步走,仅此而已,没有任何实施细节,细节全在examples/目录里。

它的写法也值得抄:动词开头,"Identify...""Load...""Follow...",祈使句驱动,零歧义。指针明确,写3P更新就加载examples/3p-updates.md,写通讯就加载company-newsletter.md。最后还留了一句"如果不匹配任何指南,就请求澄清",没有把逻辑写死。

这一条叫Don't railroad——不要全限制死,给模型留发挥空间。

第三层加载与言行一致

第四条标准落在第三层。examples/目录下有4个文件,每个0.6到3.3KB,全部在约1000 tokens的查阅阈值以内。正文用指针指过来,agent按需加载。这是标准的渐进式披露三层加载。

第五条是一致性,也是最高阶的一条:说的和做的一致吗?

internal-comms教agent怎么写内部沟通,而它自己的SKILL.md就是一份写得极好的内部沟通——结构清晰、语言简洁、每句话都有用。它自己就是它教的东西的一个实例。

解剖完这个1.5KB的官方skill,结论其实很朴素:好skill不是写出来的,是设计出来的。核心就三点——正文只做调度,细节放第三层;description用第三人称,正文用祈使句;教的规矩,自己先做到。

下次写skill或者看别人写的skill,直接拿这五条去对照,功力深浅一眼可见。