有些活儿你会做很多遍:把访谈记录整理成固定格式、按同一套标准审一遍稿子、按同一个模板出一份周报。
每次都重新交代一遍,是浪费。技能就是把这套交代存下来。
它长什么样
一个技能是一个文件夹,里面有一份 SKILL.md,可能还带几个辅助脚本。
SKILL.md 开头是一段 YAML 说明(名字、描述、什么时候该用它),后面是正文——一份写给 AI 看的操作说明。
放在技能目录下(~/.codex/skills/ 这一类位置),Codex 会在任务匹配的时候自己加载它,不用你每次点名。
和 AGENTS.md 的分工
这两样都是「写给 AI 看的说明」,但管的事不同:
| 什么时候读 | 装什么 | |
|---|---|---|
| AGENTS.md | 每次开工都读 | 这个项目的背景与规矩 |
| 技能 | 需要的时候才读 | 一套具体活儿的做法 |
一句话:AGENTS.md 是「你在哪儿干活」,技能是「这件活儿怎么干」。
这个区分有实际后果:AGENTS.md 有 32 KiB 上限、而且每次都占地方,所以那种「只在某几种任务里才用得上」的长篇说明,不该塞进 AGENTS.md,该做成技能。
一个方便的入口
在会话里敲:
$skill-creator
这是内置的一个技能,它会问你几个问题,然后替你把 SKILL.md 写出来。第一次做技能建议走这条路——比对着文档猜格式快。
同一份文件能给几家用
SKILL.md 这个格式不止 Codex 认。Claude Code、Gemini CLI、Cursor、GitHub Copilot 都读得懂,同一个文件不改就能搬。
这和 AGENTS.md 是同一个逻辑:约定是公开的,所以你的积累不绑在某一家身上。
什么时候才值得做一个
判据是三条,要同时满足:
- 这件事你做过至少三遍(做过两遍不算,两遍看不出哪些是共性)
- 每遍的做法基本一样(每次都不同的,固化下来只会限制你)
- 交代清楚要花的话,比做这件事本身还多
不满足就别做。 一个用不上的技能不是零成本——它占着目录、可能被误触发,而且几个月后没人记得它是干什么的。
Claude 那边有一篇专门讲这个判断的,逻辑通用:重复性工作的固化时机。
一个容易犯的错
别把「这次的具体内容」写进技能。
技能里该写的是做法(怎么判断、按什么顺序、什么情况下停下来问),不是这一次的材料(这份访谈里有谁、这个客户叫什么)。
写进去的后果是:下次用它做另一件事,它会把上次的东西带出来,而你要读到很后面才发现。
本节事实查证日期:2026-09-10。 依据:Codex 技能的公开文档与
SKILL.md格式说明。 ⚠️ 技能目录的默认位置随版本调整过,以官网当前文档为准。