30 Skills技能系统入门概述Skills(技能)是Codex CLI中一个极其强大但容易被忽略的核心功能。简单来说,Skills是一套可复用的指令模板,它告诉AI助手在特定场景下应该遵循什么样的工作流程、执行哪些步骤、输出什么格式的结果。如果说Codex CLI是AI编程的引擎,Skills就是定义引擎在每种路况下该如何行驶的驾驶手册。Skills的设计哲学非常清晰:把人类开发者的最佳实践编码化、标准化、可复用化。一位资深工程师在代码审查、调试、重构时有一套行之有效的工作方法,Skills让这些方法可以被记录下来,然后在任何需要的时候精确调用。在本文中,我们将全面了解Skills的基本概念、文件结构、加载机制和触发方式,为后续创建自定义Skill打下坚实基础。什么是SkillSkill本质上是一个指令集合,它包含:元数据:描述这个Skill的名称、用途、触发条件等核心指令:告诉AI在执行这个Skill时应该遵循的工作流程辅助文件:(可选)示例代码、配置文件、规则说明等从功能层面理解,Skill可以有多种形态:工作流型Skill:定义一组步骤,让AI按部就班地执行(如"代码审查Skill")约束型Skill:定义规则边界,让AI在给定的约束条件下工作(如"安全编码Skill")模板型Skill:定义输出格式和内容结构(如"提交信息Skill")组合型Skill:混合以上多种功能Codex CLI本身内置了多个经典Skill,同时提供了完善的机制让用户可以创建和分享自定义Skill。Skill文件结构每个Skill本质上是一个目录,其最小结构如下:~/.codex/skills/技能名称/ └── SKILL.mdSKILL.md是Skill的唯一必需文件,它包含了这个Skill的所有元数据和核心指令。更完整的Skill目录结构可以包含:~/.codex/skills/技能名称/ ├── SKILL.md # 必需:技能元数据和核心指令 ├── examples/ # 可选:示例代码目录 │ └── example.py ├── templates/ # 可选:输出模板目录 │ └── report.md └── config/ # 可选:配置文件目录 └── rules.json这种目录结构设计体现了几个重要的工程原则:单一职责:每个Skill目录只负责一个技能领域关注点分离:元数据和辅助文件分离,核心指令和示例分离可扩展性:可以在不破坏现有结构的前提下添加辅助文件SKILL.md 文件详解SKILL.md使用YAML元数据 + Markdown内容的双层结构。文件最顶部是YAML格式的元数据块,之后是Markdown格式的核心指令。YAML元数据字段name(必需)技能的名称,用于在对话中引用和触发。name:code-review命名规范:使用小写字母和连字符(kebab-case)简洁明了,能准确反映技能功能避免使用空格和特殊字符descrip