为什么需要 Skill

刚开始学编程,你在终端运行一个程序,屏幕上突然刷出一大段英文报错。 你把报错贴给 Codex,但它的回答总是差点意思:要么只复述英文,要么上来就改代码,却不告诉你错在哪里。于是你每次都要重复敲一遍同样的提示词:

第 1 节 为什么需要 Skill

1.1 本节目标

理解 Skill 解决什么问题,以及什么样的经验值得沉淀为 Skill。

1.2 从一条看不懂的报错开始

刚开始学编程,你在终端运行一个程序,屏幕上突然刷出一大段英文报错。

你把报错贴给 Codex,但它的回答总是差点意思:要么只复述英文,要么上来就改代码,却不告诉你错在哪里。于是你每次都要重复敲一遍同样的提示词:

1. 先告诉我最关键的是哪一行。
2. 解释错误类型,不要只重复英文。
3. 指出应该看哪个文件、哪一行。
4. 告诉我下一步先检查什么。
5. 暂时不要直接修改代码。

第一次这样写,没有问题。

但同类报错会不断出现。你可能某次忘了要求"保留报错原文",Codex 也可能某次自作主张直接改了代码,让你错过了理解错误信息的机会。

方法明明已经想清楚了,却散落在聊天记录里,既不稳定,也无从复用。

这就是 Skill 要解决的问题。

1.3 Skill 是什么

Skill 是一套可复用的任务说明书,相当于给 Codex 准备的工作手册。它把一类任务的操作步骤、限制条件、参考资料和工具脚本放在同一个目录中,需要时整体加载。

用一句话区分两者:

Skill 保存的是一类问题的解法,而不是某一道题的答案。

1.4 Skill 可以保存什么

场景Skill 可以保存的内容
解释报错阅读顺序、通俗解释模板、下一步检查清单
代码审查审查顺序、严重程度分级、输出格式
发布新版本发布流程、执行命令、回滚检查项
查询数据表结构说明、指标口径、查询规范
处理 PDF操作说明和可重复执行的脚本

Skill 不会让模型突然学会它本来不会的东西。它只是在需要时,把已经沉淀好的方法和资料准确地交给 Codex。

1.5 Skill 解决三个问题

1. 不再重复粘贴长提示词

同一套要求只写一次。以后调用 Skill,再补充本次的报错内容、相关文件和目标即可。

2. 让结果更稳定

把步骤、限制条件和检查项写清楚后,不同会话的输出更容易保持一致,团队成员也更容易按同一套方法协作。

⚠️ 这里说的是"更稳定",不是"保证正确"。重要结果仍然需要人工检查。

3. 把经验变成可维护的资产

聊天记录难以搜索、难以修订、离职即失传。Skill 是普通文件,可以纳入版本控制,可以由团队共同维护、持续迭代。

好用的提示词值得整理成 Skill——需要时直接修改复用,而不是去聊天记录里翻找。

1.6 Skill、提示词和 AGENTS.md 的区别

第 1 章已经介绍了 AGENTS.md。它和 Skill 都会影响 Codex 的行为,但定位不同:

内容适合放在哪里
本次任务的目标和范围当前提示词
当前项目长期遵守的规则和约定AGENTS.md
跨任务重复使用的工作方法Skill

举个直观的例子:

1.7 什么时候值得写 Skill

不是每条提示词都值得沉淀为 Skill。可以用三个条件来判断:

  1. 会重复:同类任务会反复出现;
  2. 已稳定:做法已经比较成熟,不是一次性的权宜之计;
  3. 可验证:结果有办法检查对错。

"解释报错"恰好满足全部三个条件:报错原文是否保留、文件位置是否指出、下一步检查是否给出——这些都可以直接核对。

一次性的要求,直接写进当前提示词即可。做法还没定型?先多试几次,等它稳定下来,再整理成 Skill。

1.8 思考

试着回答这个问题:

Skill 与一次性提示词的本质区别是什么?如果一条提示词只打算用一次,把它写成 Skill 反而会带来什么负担?

下一节,我们动手写第一个 Skill。