Skill 可以理解成给 Agent 使用的一套“可复用工作流说明书”。
它不是普通 Prompt,也不是 MCP 服务。Prompt 更像一次性的临场指令,MCP 更像让 Agent 连接外部工具和数据的接口,而 Skill 负责告诉 Agent:遇到某类任务时,应该按什么方法、读取什么材料、调用什么工具、用什么标准检查结果。
这篇文章分成 6 个模块:
- Skill 是什么;
- Skill 的制作流程;
- Skill 有哪些能力;
- Skill 各目录的作用;
- Skill 在 Codex 和其他 Agent 工具中的放置位置;
- Skill 如何控制输出效果:以
first-principles-thinking为例。
模块一:Skill 是什么
Skill 的核心价值是:把“这类任务应该怎么做”沉淀成 Agent 能读、能执行、能复用的流程。
一个 Skill 通常是一个文件夹,里面至少有一个SKILL.md。Agent 一开始只看到 Skill 的名称、描述和路径;当用户请求命中这个 Skill 的适用场景时,Agent 才会读取完整的SKILL.md,并按其中的流程执行。
可以这样理解:
| 对象 | 作用 |
|---|---|
| Prompt | 临时告诉 Agent 这一次怎么做 |
| Skill | 长期告诉 Agent 这一类任务怎么做 |
| MCP | 让 Agent 能连接外部工具、服务和数据 |
| Plugin | 把 Skill、MCP 配置、App、素材等打包分发 |
比如:
- 让 Agent 每次都按固定结构写技术文章,这是 Skill;
- 让 Agent 能访问 GitHub、Notion、数据库,这是 MCP;
- 把一组 Skill 和工具配置打包给别人安装,这是 Plugin。
所以 Skill 的本质不是“提示词增强”,而是“流程产品化”。它把你的经验、方法、检查标准和输出偏好,变成 Agent 可以重复执行的工作流。
模块二:Skill 的制作流程
做 Skill 不要从“大而全”开始。最好的起点是一个你已经反复做过、而且希望 Agent 稳定复现的具体任务。
第一步:定义一个窄任务
不要写“万能写作助手”“全能代码专家”。
更好的定义是:
- 生成 JSPang 风格文章配图;
- 根据固定模板写技术复盘;
- 把会议纪要整理成行动项;
- 按团队规范审查 React 组件;
- 把 CSV 转成带公式和图表的 Excel。
Skill 越聚焦,触发越准确,执行越稳定。
第二步:写清触发条件
触发条件主要写在SKILL.md顶部的description中。
好的description应该包含任务类型、关键触发词、适用边界和不适用场景。
1 2 3 4 --- name: meeting-action-extractor description: Use when the user asks to turn meeting notes, transcripts, or discussion summaries into structured action items with owners, deadlines, and open questions. ---不要写得太空,比如:
1 description: Help with meetings.这会让 Agent 不知道什么时候该使用它。
第三步:写执行步骤
正文部分要像给一个聪明实习生写 SOP。
建议写清楚:
- 输入是什么;
- 先读什么;
- 再做什么;
- 需要调用什么工具;
- 输出放在哪里;
- 最后如何检查;
- 失败时如何重试。
第四步:把大资料拆出去
SKILL.md不宜变成一本厚书。
如果你有大量规范、案例、模板、术语表,就拆到:
- references/
- templates/
- examples/
- assets/
然后在SKILL.md里写清楚:什么情况下读取哪个文件。
第五步:能脚本化的就脚本化
Agent 擅长理解、判断和组织任务,但不适合每次都手搓确定性逻辑。
适合放进scripts/的内容包括:
- 格式转换;
- 批量处理;
- 校验;
- 渲染;
- 数据计算;
- 文件扫描。
这样 Skill 会更稳定,也更容易测试。
第六步:加入验收标准
一个好 Skill 一定要有完成标准。
图片类 Skill 可以检查比例、中文标注、水印、风格一致性、输出路径。代码类 Skill 可以检查测试是否通过、是否改了无关文件、是否遵循现有架构。文档类 Skill 可以检查渲染效果、表格是否溢出、文件能否正常打开。
第七步:用真实任务测试
至少用三类请求测试:
- 明确点名 Skill 的请求;
- 没有点名但应该触发的请求;
- 看起来相关但不应该触发的请求。
如果误触发多,就收窄description。如果经常没触发,就把关键触发词前置。
模块三:Skill 有哪些能力
Skill 的能力
Skill 不只是“让 Agent 多读一段说明”。它真正控制的是 Agent 的任务执行方式。
常见能力有 8 类:
| 能力 | 说明 |
|---|---|
| 触发选择 | 通过description告诉 Agent 什么时候应该使用这个 Skill |
| 流程编排 | 把任务拆成稳定步骤,让 Agent 按顺序执行 |
| 上下文压缩 | 一开始只暴露名称和描述,命中后才读取完整说明 |
| 工具调用 | 指导 Agent 调用命令行、浏览器、MCP、图片生成器、文档工具等 |
| 脚本复用 | 把确定性逻辑放进scripts/,减少每次重新实现 |
| 资料携带 | 把规范、示例、模板、术语表放在 Skill 文件夹中 |
| 质量检查 | 规定最后必须检查什么,避免“看起来做了但不确定对不对” |
| 团队沉淀 | 把个人经验或团队规范变成所有人可复用的工作流 |
这也是 Skill 和普通 Prompt 最大的区别:Prompt 更像临时指挥,Skill 更像一套带资源、带流程、带验收标准的执行系统。
模块四:Skill 各目录的作用
Skill 各目录作用
最小可用 Skill 只有一个文件:
1 2 my-skill/ └─ SKILL.md更完整的结构通常长这样:
1 2 3 4 5 6 7 8 9 10 my-skill/ ├─ SKILL.md ├─ agents/ │ └─ openai.yaml ├─ scripts/ ├─ references/ ├─ assets/ ├─ templates/ ├─ examples/ └─ tests/不是每个目录都必须存在。原则是:需要什么才放什么,不要为了显得专业而堆目录。
| 文件或目录 | 作用 |
|---|---|
SKILL.md | Skill 的入口文件,必须存在;写名称、描述、触发条件和执行流程 |
agents/openai.yaml | Codex 可选元数据;可配置显示名、图标、默认提示、隐式触发策略和工具依赖 |
scripts/ | 放确定性脚本,比如转换、渲染、校验、批处理 |
references/ | 放参考资料,比如规范、术语表、API 摘要、检查清单 |
assets/ | 放图片、图标、字体、截图、品牌素材等静态资源 |
templates/ | 放 Markdown、Word、PPT、Excel、代码、报告等模板 |
examples/ | 放输入输出示例、反例、边界案例 |
tests/ | 放测试输入、期望输出、验收脚本、回归样例 |
.codex-plugin/ | 这是 Plugin 的目录,不是普通 Skill 必需目录;用于打包分发 |
SKILL.md最关键
SKILL.md顶部通常是 YAML front matter:
1 2 3 4 --- name: skill-name description: Explain exactly when this skill should and should not trigger. ---下面才是正文说明。
name要短、稳定、可被引用。description要直接,因为 Agent 会用它判断是否触发 Skill。
模块五:Skill 在 Codex 和其他 Agent 工具中的放置位置
Skill 放置位置
Codex 支持多个层级的 Skill。不同层级决定 Skill 的作用范围。
仓库级 Skill
放在当前项目或仓库中的:
1 .agents/skills/适合团队共享。比如一个项目有自己的发布流程、代码规范、文档模板,就可以把 Skill 放进仓库。
Codex 会从当前工作目录向上扫描.agents/skills,直到仓库根目录。因此你可以把 Skill 放在模块目录、父目录或仓库根目录,让它控制不同范围。
个人级 Skill
放在用户目录中的:
1 $HOME/.agents/skills/Windows 上通常类似:
1 C:\Users\你的用户名\.agents\skills\适合你个人长期使用的 Skill,比如写作风格、图片风格、个人工作流。
本机 Codex 安装或缓存位置
在这台机器上,你已经有一些 Skill 位于:
1 C:\Users\caimingyang\.codex\skills\例如这次使用的 JSPang 配图 Skill:
1 C:\Users\caimingyang\.codex\skills\jspang-image\SKILL.md这个目录更像当前 Codex 环境中的本地技能安装、系统技能或缓存位置。你可以参考它的结构,但如果要自己长期维护一个可迁移的个人 Skill,更推荐放在$HOME/.agents/skills/;如果要跟项目绑定,就放在项目的.agents/skills/。
Plugin 分发位置
如果你想把一个或多个 Skill 分发给别人,或者把 Skill 和 MCP 配置、App、图标、市场信息一起打包,就应该做成 Plugin。
Plugin 通常会有:
1 2 3 4 5 6 my-plugin/ ├─ .codex-plugin/ │ └─ plugin.json └─ skills/ └─ my-skill/ └─ SKILL.mdSkill 是工作流本身,Plugin 是安装和分发单位。
其他 Agent 工具
其他 Agent 工具的扫描目录不一定和 Codex 相同。
更稳妥的理解是:
1 2 3 某个工具指定的 skills 目录/ └─ your-skill/ └─ SKILL.md如果某个工具兼容 Open Agent Skills 标准或兼容SKILL.md结构,它通常会要求你把每个 Skill 作为独立文件夹放进指定技能目录。不要默认把 Codex 的路径直接搬到其他工具里,具体位置要以该工具当前文档为准。
模块六:Skill 如何控制输出效果
Skill 输出控制:第一性原则示例
Skill 最值得重视的地方,是它不只控制“做什么”,还控制“怎么想、怎么判断、怎么输出”。
我们用你的first-principles-thinkingSkill 来看。
这个 Skill 的路径是:
1 C:\Users\caimingyang\.codex\skills\first-principles-thinking\SKILL.md它的description大意是:当用户需要第一性原则思考、根因分析、决策质量提升,或者需要避免按习惯、模板、假设直接行动时,使用这个 Skill。
也就是说,它并不是一个“写作模板 Skill”,而是一个“思考方式控制 Skill”。
它控制了什么
| 控制点 | 在 Skill 中的体现 | 对输出的影响 |
|---|---|---|
| 思考起点 | 从真实需求、问题本质和关键约束出发 | 输出不会直接套模板,而是先判断真正要解决什么 |
| 提问时机 | 目标、动机、成功标准或约束不清楚时先讨论 | Agent 不会在关键条件缺失时硬做 |
| 路径选择 | 如果用户指定的方法不是最短或最好,直接说明并建议更好路径 | 输出会包含取舍理由,而不是盲从执行 |
| 根因分析 | 遇到问题先追根因,不补表面症状 | 修复类任务更可能解决真正原因 |
| 信息筛选 | 强调会改变决策的信息,弱化噪声 | 输出更聚焦,不堆无关背景 |
| 回答风格 | 直接、有用、只问必要问题、说明重要选择的原因 | 输出更像决策助手,而不是泛泛解释 |
这个 Skill 的执行逻辑
可以把它拆成 4 层:
- 触发层
用户提到“第一性原则”“root-cause thinking”“决策质量”“避免返工”等场景时触发。 - 核心规则层
不从习惯、案例、模板或熟悉路径出发,而是从原始需求和问题本质出发。 - 检查清单层
在计划、编辑或最终回答前检查:用户真正想要什么,哪些事实会影响结果,有哪些假设,当前方法是否必要,失败时根因是什么。 - 输出风格层
直接指出不清楚的地方,只问必要问题;如果有更好路径,说明取舍;最后输出决策相关内容。
一个具体例子
假设用户说:
1 帮我做一个很完整的知识库首页,最好有很多模块,看起来厉害一点。没有这个 Skill 时,Agent 可能会直接开始设计首页,堆很多模块。
使用first-principles-thinking后,Agent 更应该先问或判断:
- 这个首页的真实目标是快速检索、展示成果,还是辅助每日写作?
- 用户最常用的入口是什么?
- 哪些模块会改变使用效率,哪些只是看起来热闹?
- 如果目的是减少查找时间,是否一个轻量索引页比复杂首页更好?
最终输出就会从“做一个很炫的首页”变成:
1 2 3 4 5 6 你的真实目标如果是提升知识库使用效率,首页不应该先追求模块多,而应该先解决三个入口: 1. 最近在写什么; 2. 常用主题在哪里; 3. 下一步要处理什么。 我建议先做一个轻量首页,再根据使用频率逐步增加模块。这就是 Skill 对输出效果的控制:它让 Agent 不只是完成用户表面说的动作,而是先校准目标、约束和更优路径。
为什么这个例子重要
first-principles-thinking说明了一个关键点:Skill 可以控制 Agent 的“思考姿势”。
它控制的不只是格式,还包括:
- 是否先澄清真实目标;
- 是否追问关键约束;
- 是否识别危险假设;
- 是否推荐更优路径;
- 是否追踪根因;
- 是否只输出决策相关内容。
所以 Skill 能控制的输出效果,至少包括:
| 输出效果 | 可以通过 Skill 怎么控制 |
|---|---|
| 文章风格 | 写语气、结构、段落长度、例子密度、结尾方式 |
| 图片风格 | 写比例、构图、颜色、标注、禁用元素、验收规则 |
| 代码风格 | 写架构偏好、测试要求、禁止大改、命名规则 |
| 分析质量 | 写思考框架、检查清单、决策标准、根因追踪 |
| 文件产物 | 写输出路径、命名规则、格式要求、验证步骤 |
| 协作方式 | 写何时追问、何时直接做、何时指出更好路径 |
一个写得好的 Skill,其实就是把“我希望 Agent 怎么工作”变成可复用的系统说明。
最后总结
Skill 是 Agent 的可复用工作流。
它的价值不只是节省提示词,而是把经验、流程、资料、工具、验收标准和输出偏好封装起来,让 Agent 每次遇到同类任务时都能稳定执行。
如果只是临时告诉 Agent 一件事,用 Prompt 就够了。
如果希望 Agent 以后每次都按同一套方式做事,就写成 Skill。
如果希望把一组 Skill 和工具能力分发给别人,就进一步做成 Plugin。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~