在AI Agent开发领域,“Skill”(或“工具”)的编写长期处于一种玄学状态:开发者依赖直觉添加意图描述,却经常遭遇模型提前终止、输出重复或上下文漂移。TypeScript 知名教育家、前端工具库作者 Matt Pocock 的开源指南 /writing-great-skills 正在改变这一局面——它已成为 Pocock 本人最常调用的 Skill,足以说明其真实效用。
这套指南的精髓在于:将“不确定性”视为要消灭的敌人,而非需要适应的特征。其核心主张第一层是区分 Skill 的触发方式:model‑invoked(自动触发,由模型在对话过程中自主决定是否调用)与 user‑invoked(用户主动发送指令)。两种模式对应的 description 字段应直接作为触发器,而非背景描述——这要求开发者像写正则表达式一样精确地限定何时该启用。
第二层是信息架构的工程化。Pocock 提出“三层信息结构”:主步骤(Main Steps)、参考(Reference)和外部文件(External Files),实现渐进式披露。这类似于“先给骨架,再附血肉”的认知路径,避免一次性将全部细节塞入上下文,从而减轻模型注意力碎片的效应。每一层内部的每个步骤都必须附带明确的完成标准,让模型知道“做到什么程度算是完成”,否则模型会倾向提前上报成功(Premature Completion)。
更进一步,Pocock 强调拆分 Skill 的根本目的是控制模型注意力——与其写一个全能型大 Skill,不如拆分为多个小 Skill,每个聚焦单一原子操作,降低模型在对话中分配注意力的负担。为了在不增加 token 消耗的前提下压缩行为要求,他引入 Leading Word 技巧:用“Verify”“Extract”“Summarize”等动词开头直接定调,省去冗长的修饰从句。
指南后半部分是一套诊断框架,识别五种失败模式:Premature Completion(模型过早完成任务)、Duplication(输出重复)、Sediment(旧信息残留干扰新任务)、Sprawl(回答范围扩散)以及 No‑op(模型执行了指令但未产生实际效果)。其中 No‑op 测试 最具实操性:将每个句子单独拿出来判断——如果去掉它,模型的执行结果是否有变化?若没有,这个句子就是噪音,应当删除。
对比当前主流 Prompt 工程(如“系统提示 + 示例 + 约束”的粗放模式),Pocock 的方法论实际上是将软件工程中的“单一职责”“可测试性”和“确定性”移植到了 AI 行为设计。它为 Agent 开发者提供了一份可复用的检查清单:从触发条件、信息结构、步骤边界到语义压缩,每个环节都有明确的反模式对照。
行业趋势是 Agent 项目日益复杂,单一 Prompt 已不能胜任。Pocock 的这一指南恰好填补了“如何编写稳定、可预测的工具”的方法空白。建议开发者在构建自定义 Skill 时,先做一次 No‑op 测试,再为每个步骤添加完成标准,最后用 Leading Word 压缩指令——这套工作流能让 Skill 的确定性显著提升,让 Zero‑shot 调用不再是碰运气。