MCP 让 Agent 接触工具和数据,Plugin 负责打包分发;Skill 回答的是“面对这类工作,具体应该怎么做”。它把散落在人脑里的方法变成可复用、可版本化的工作资产。
我的定义是:Skill = 按需加载的程序化知识包。它必须同时包含触发条件、判断规则、执行步骤、资源与验收,而不只是把最佳实践写成长文。
Skill 的位置:它教方法,不负责替你接世界
| 组件 | 核心问题 | 主要产物 |
|---|---|---|
| MCP | 能访问什么 | 工具、资源、连接 |
| Skill | 这类工作怎么做 | 步骤、判断、模板、脚本 |
| Agent | 谁在循环执行 | 行动轨迹与状态变化 |
| Plugin | 如何成套分发 | 安装、版本和生命周期 |
Agent Skills 开放规范把 Skill 定义为一个目录,至少包含带元数据的 SKILL.md,也可附 scripts、references 和 assets。它采用渐进披露:启动时只加载名称与描述,匹配任务后才读取完整指令,细节资源按需进入上下文。
六种“写了 Skill 但没有形成能力”的方式
FAILURE 01
触发含糊
描述只写“帮助处理文档”,该出现时不出现,不该出现时抢任务。
FAILURE 02
知识倾倒
把全部资料塞进 SKILL.md,真正的动作被背景淹没。
FAILURE 03
只写顺境
没有缺资料、工具不可用、冲突和失败路径。
FAILURE 04
隐含判断
步骤写得很细,关键取舍仍靠作者“凭经验”。
FAILURE 05
工具假设
默认环境一定有某命令、权限或账号,失败时没有替代路径。
FAILURE 06
从不回归
改了说明就发布,没有固定任务验证行为是否退化。
完整案例:把“深化 AI Lab 文章”提炼成 Skill
公开项目:同一套深度门槛要连续应用到 12 篇文章目标不是生成同质文章,而是稳定底线,把观点留给每篇内容。
第三次重复以后才值得提炼。稳定不变的部分包括:先核对概念归属;必须提出中心论点;替反方建立最强论证;用失败模式和完整案例解释;给可复制协议与测试;只引用官方或原始来源;不虚构客户经历。
01
Trigger仅当任务是深化 AI Lab 技术文章或验收其深度时触发。
When02
Procedure研究 → 证伪 → 建立论点 → 案例 → 协议 → 测试 → 来源 → 静态验收。
How03
Judgment明确什么叫“强反对”、什么证据会改变判断、什么案例必须标虚构。
Decide04
Regression用一篇概念文、一篇工程文和一篇训练文测试,防止模板化。
TestSkill Contract:把触发、步骤和退出条件写在一起
SKILL CONTRACTv1.0
name: [小写、稳定、可辨识] description: [做什么];Use when [明确触发情形] 目标:[完成后发生什么] 输入前提:[必须具备的材料 / 权限] 开始前检查:[冲突规则、敏感信息、现有资产] 执行步骤:[每步动作 + 可观察产物] 判断规则:[选择 A / B 的条件] 失败路径:[缺资料 / 缺工具 / 结果不通过] 必须停止并询问:[不可逆或越权节点] 完成标准:[可运行的验收清单] 资源路由:[何时读 references、运行 scripts、复用 assets] 回归任务:[至少 3 个正常 + 2 个边界样例]
经验资产化的六步闭环
01Observe观察至少三次真实重复,不从想象写 SOP。
02Extract区分稳定规则、情境判断与一次性背景。
03Encode把判断改成条件,把产出改成验收。
04Route主文件保持短,参考、脚本、资产按需加载。
05Test测触发精度、执行成功、例外和上下文成本。
06Version用失败样例更新,并记录行为变化。
最强反对意见:模型越强,写 Skill 越浪费
对通用写作和一次性问答,这条意见值得权衡。但只要任务涉及组织规则、特定工具、固定交付标准或合规边界,模型能力不能替代本地程序化知识。
Skill 的评估要同时看触发和执行
| 维度 | 问题 | 失败信号 |
|---|---|---|
| Precision | 不相关任务会不会误触发 | 抢占普通任务、流程过重 |
| Recall | 需要时能不能被发现 | 用户反复点名才出现 |
| Execution | 步骤能否产生目标产物 | 只复述说明、不做动作 |
| Robustness | 缺工具、冲突和边界如何处理 | 猜测、越权或静默失败 |
| Cost | 加载了多少无关上下文 | 长说明挤占任务注意力 |
好 Skill 不是把专家写进文件,而是把专家最稳定的判断与工序,变成别人能触发、执行、检查和改进的系统。