你多多少少用过一些 skill,它能明显提升 AI 在专项任务上的表现。可真到自己上手写 skill 的时候,问题就来了:要么经常不触发,要么触发了也不按你预想的方式执行。
写好 skill 的前提,是先看懂什么是好的 skill。今天聊聊评审优秀 skill 的五项标准。
画外音:这套标准来自官方博客。
评审优秀 skill 的五项标准
① Description
- 能力清单、触发场景、用户关键词,三大要点齐全吗?
- 是写给模型看,还是写给人看?
② 触发策略
- 自动触发还是手动触发,也就是有没有
disable-model-invocation?
- 触发策略和 description 的写法匹不匹配?
③ 正文
- 是路由器还是仓库?
- 语气是不是祈使句?
- 有没有标记 Gotchas,也就是容易踩的坑?
- 有没有 Don't railroad,有没有把规则完全限制死?
④ 第三层
- 细节是不是都放在 references 里?
- 正文有没有给出指针?
- 有没有可复用组件?
⑤ 一致性
以后不管自己写 skill,还是读别人写的 skill,拿这五条去对照,立刻就能看出功力深浅。
实战:解析 Anthropic 官方 skill
internal-comms 是 Anthropic 官方仓库里的示例 skill,作用很直接:帮人写内部沟通材料。
画外音:github.com/anthropics/skills/tree/main/skills/internal-comms
这个 skill 不算长,但结构完整、要素齐全,很适合拿来当评审样本。我们一条条过。
1. Description:不太合格
官方示例的 description 长这样:
A set of resources to help me write all kinds of internal communications... Claude should use this skill whenever asked to write...
能力清单、触发场景、用户关键词这三项都齐了,但有个问题:它用了第一人称,例如 help me write、my company。
这算一个小瑕疵。description 本质上应该是写给模型看的路由规则,用“我”会让模型在匹配时多一层推理负担:这个“我”到底是谁?Anthropic 自己也倡导第三人称,但官方仓库里仍然有不一致的地方。
评审原则很简单:用标准过一遍,不能因为“这是官方的”就直接免检。
2. 触发策略:自动触发,和 description 匹配,合格
这个 skill 没有 disable-model-invocation,所以属于自动触发。description 里的触发场景明确、关键词也丰富,触发策略和写法完全匹配。
画外音:如果只能手动触发,description 的重要性就会下降不少。
3. 正文:教科书级路由器,合格
正文只有约 30 行,而且只做了一件事:路由。
- 路由器纯度 100%:只说明“什么时候用”和“三步走”,没有任何实施细节,细节全在
examples/ 目录里。
- 祈使句驱动:
Identify...、Load...、Follow...,动词开头,几乎没有歧义。
- 指针写法:明确告诉 agent,写 3P 更新就去加载
examples/3p-updates.md,写通讯就去加载 company-newsletter.md。
- Don't railroad:最后留了一句“如果不匹配任何指南,就请求澄清”,没有把逻辑写死。
画外音:Don't railroad 的意思是不要全写死,留一点发挥空间。
4. 第三层:按需加载的典范,合格
examples/ 目录下有 4 个文件,每个 0.6-3.3KB,全部保持在约 1000 tokens 的查阅阈值以内。正文通过指针把 agent 引导过去,由 agent 按需加载对应内容。
画外音:这就是标准的“渐进式披露三层加载”。
5. 一致性:最高阶的满分答案,合格
internal-comms 教 agent 怎么写内部沟通,而它自己的 SKILL.md 本身就是一份写得极好的内部沟通材料:结构清晰、语言简洁、每句话都有用。
它自己就是它所教授内容的一个实例。这就是“言行一致”的最高境界。
解剖完这个 1.5KB 的官方 skill,你会发现:好 skill 不是写出来的,而是设计出来的。
核心就三点:
- 路由器思维:正文只负责调度,细节放到第三层。
- 给模型看的语言:description 用第三人称,正文用祈使句。
- 言行一致:教给别人的规矩,自己先做到。
你会怎么评审一个 skill?
上面这套“评审篇”,本质上是把抽象的“好 skill”拆成了五个可以逐项对照的检查点。尤其是 description 的人称问题和正文的路由器思路,很多看似能跑的 skill,其实一回到这五条,问题就暴露了。
你写过哪些 skill?有没有遇到过“该触发却不触发、触发了又乱执行”的情况?