Codex Skills 教程入门到进阶完全指南
时间:2026-08-12 | 作者:夜鞌不睡 | 阅读:01. 什么是 Skill
简单来说,Skill 就是一个自包含的文件夹。
它的核心使命,是把 Codex 从一个通用型 Agent 转变成特定领域的专家。
Skill 能提供什么
| 能力 | 说明 |
|---|---|
| 专项工作流 | 针对特定领域的多步骤流程 |
| 工具集成 | 如何使用特定文件格式或 API 的指令 |
| 领域知识 | 公司专有知识、Schema、业务逻辑 |
| 捆绑资源 | 可直接运行的脚本、参考文档、模板资产 |
什么不是 Skill
- Skill 不是安装包管理器
- Skill 不是 README 或用户文档
- Skill 不是 CHANGELOG 或安装指南
一句话总结:Skill 是给另一个 Codex 实例看的上岗培训手册。
2. 理解 Skill 的运行原理
这是整个流程里最关键的概念。
搞懂它,写出来的 Skill 才能真正管用。
上下文窗口就是公共资源
Codex 的上下文窗口是有限的。
它同时要容纳:系统提示词、对话历史、其他 Skill 的元数据,以及用户当前的请求。
你的 Skill 在和所有这些内容竞争空间。
三级加载机制
Level 1: 元数据(name + description) → 始终在上下文中(~100 词) Level 2: SKILL.md 正文 → Skill 被触发时才加载(<5k 词) Level 3: Bundled Resources → 按需加载(无上限,因为脚本可直接执行)
这意味着几件事:
- Description 写得好不好,直接决定 Skill 能不能被正确触发
- SKILL.md 要尽量精简,超过 500 行就应该拆分到 references/
- 脚本是最省 token 的,执行时不需要读进上下文
3. Skill 的文件结构
my-skill/
├── SKILL.md ← 必须:核心指令文件
├── agents/
│ └── openai.yaml ← 推荐:UI 展示元数据
├── scripts/ ← 可选:可执行脚本
│ ├── rotate_pdf.py
│ └── extract_text.py
├── references/ ← 可选:按需加载的参考文档
│ ├── api_docs.md
│ └── schema.md
└── assets/ ← 可选:输出用的模板/图片/字体
├── template.pptx
└── logo.png
各目录职责
SKILL.md(必须)
- YAML 前置元数据(name + description)→ 决定触发条件
- Markdown 正文 → 触发后读取的具体指令
scripts/ — 可执行代码
- 适合:需要确定性可靠执行、或每次都在重写同样逻辑的代码
- 优势:Token 高效,可以直接执行不需要读进上下文
- 例如:PDF 旋转脚本、数据转换脚本
references/ — 参考文档
- 适合:Codex 需要查阅但不需要始终加载的详细信息
- 例如:API 文档、数据库 Schema、公司政策、领域知识
- 最佳实践:超过 1 万词的文件,在 SKILL.md 里加 grep 搜索指引
assets/ — 输出资源
- 适合:最终输出里要用的文件,不需要读进上下文
- 例如:PPT 模板、logo 图片、字体文件、项目脚手架
什么不该放进 Skill
README.md INSTALLATION_GUIDE.md QUICK_REFERENCE.md CHANGELOG.md 测试说明 用户可见文档
记住,Skill 是给 AI 看的,不是给人看的。
4. 第一个 Skill:手把手入门
4.1 使用 init 脚本创建
# 运行初始化脚本 python3 ~/.codex/skills/.system/skill-creator/scripts/init_skill.py hello-world --path ~/.codex/skills --resources scripts,references
这会创建:
~/.codex/skills/hello-world/ ├── SKILL.md ├── agents/ │ └── openai.yaml ├── scripts/ └── references/
4.2 编写 SKILL.md
把生成的模板替换为以下内容:
--- name: hello-world description: "Use when user asks to create a hello-world project in any language. Supports Python, Ja vaScript, Go, and Rust. Handles project setup, basic file structure, and a runnable entry point." --- # Hello World Skill ## Supported Languages | Language | Entry File | Run Command | |----------|-----------|-------------| | Python | main.py | python3 main.py | | Ja vaScript | index.js | node index.js | | Go | main.go | go run main.go | | Rust | main.rs | cargo run | ## Workflow 1. Detect language from user request (default: Python if unspecified). 2. Create entry file with print/hello-world logic. 3. If Go or Rust, also create go.mod / Cargo.toml. 4. Print the run command for the user. ## Scripts - `scripts/validate_project.py` — Checks that the generated project has correct structure.
4.3 创建脚本
# scripts/validate_project.py
#!/usr/bin/env python3
"""Validate that a hello-world project has the expected structure."""
import sys
from pathlib import Path
REQUIRED_FILES = {
"python": ["main.py"],
"ja vascript": ["index.js"],
"go": ["main.go", "go.mod"],
"rust": ["main.rs", "Cargo.toml"],
}
def validate(lang: str, project_dir: str) -> bool:
files = REQUIRED_FILES.get(lang)
if not files:
print(f"Unknown language: {lang}")
return False
base = Path(project_dir)
ok = True
for f in files:
if not (base / f).exists():
print(f"Missing: {f}")
ok = False
if ok:
print(f"Project structure OK for {lang}")
return ok
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Usage: validate_project.py ")
sys.exit(1)
success = validate(sys.argv[1], sys.argv[2])
sys.exit(0 if success else 1)
4.4 验证
python3 ~/.codex/skills/.system/skill-creator/scripts/quick_validate.py ~/.codex/skills/hello-world
输出 Skill is valid!,就说明结构正确。
5. SKILL.md 编写指南
5.1 Frontmatter(必须)
--- name: my-skill-name description: "完整描述,告诉 Codex 什么时候该用这个 Skill。" ---
规则:
name:全小写 + 连字符,不超过 64 字符,只用[a-z0-9-]description:不超过 1024 字符,不能包含<或>description是唯一的触发机制,必须写清楚:做什么 + 什么时候用
Description 范例
# 太模糊 description: "A skill for working with documents" # 缺少触发条件 description: "Create and edit DOCX files" # 完整 description: "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. Use when Codex needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks"
5.2 Body 编写原则
用祈使句。
# 描述式 This skill allows you to rotate PDF pages. # 指令式 Rotate PDF pages using the rotation script.
只写 Codex 不知道的东西。
# 废话连篇(Codex 知道 Python 怎么写) ## Python Basics Python is a programming language created by Guido van Rossum... Use `def` to define functions. Use `for` to iterate... # 只写领域特定知识 ## Internal Schema The `orders` table has a `status` column with values: `pending`, `shipped`, `delivered`, `returned`. Join with `customers` on `customer_id`.
结构清晰,按需组织。
根据 Skill 的性质选择合适的结构:
| 结构类型 | 适用场景 | 示例 |
|---|---|---|
| 工作流型 | 顺序步骤流程 | PDF 处理:渲染 → 检查 → 输出 |
| 任务型 | 多种独立操作 | PDF Skill:合并 / 拆分 / 提取文本 |
| 指南型 | 规范或标准 | 品牌规范:颜色 / 字体 / 间距 |
| 能力型 | 一体化多功能系统 | 产品管理:多维度能力 |
6. Bundled Resources 详解
6.1 scripts/ — 确定性执行
什么时候放脚本:
- 同样的代码每次都在重写
- 操作容易出错,需要确定性可靠执行
- 可以参数化复用的逻辑
脚本的优势:
- Token 高效:直接
exec_command执行,不需要读进上下文 - 确定性:不像 LLM 生成的代码可能有变体
- 可测试:可以像普通代码一样写测试
# 执行脚本(推荐方式) python3 scripts/rotate_pdf.py input.pdf 90 output.pdf # 或者 bash 脚本 bash scripts/deploy.sh staging
6.2 references/ — 按需加载
什么时候放参考文档:
- 详细 API 文档
- 数据库 Schema
- 公司内部政策
- 复杂领域知识
- 超过 500 行的详细内容
大文件技巧:
## API Reference For detailed endpoint documentation, see `references/api_docs.md`. To find a specific endpoint: `grep -n "endpoint_name" references/api_docs.md`
6.3 assets/ — 输出用资源
什么时候放资产文件:
- PPT/Word 模板
- Logo、图片
- 字体文件
- 项目脚手架/模板目录
- 不需要读进上下文,直接复制或修改使用的文件
assets/
├── template.pptx ← PowerPoint 模板
├── brand-logo.png ← 公司 logo
├── hello-world/ ← 前端项目脚手架
│ ├── index.html
│ ├── style.css
│ └── app.js
└── fonts/
└── custom.ttf
7. agents/openai.yaml 元数据
这个文件是给 UI 展示用的,不是给 Codex 逻辑用的。
interface:
display_name: "My Skill Name" # UI 列表显示名
short_description: "Help with X tasks" # 25-64 字符的简短描述
icon_small: "./assets/small.png" # 小图标(可选)
icon_large: "./assets/large.svg" # 大图标(可选)
brand_color: "#3B82F6" # UI 强调色(可选)
default_prompt: "Use $my-skill to help with ..." # 默认提示(可选)
dependencies:
tools:
- type: "mcp"
value: "github"
description: "GitHub MCP server"
transport: "streamable_http"
url: "https://api.githubcopilot.com/mcp/"
policy:
allow_implicit_invocation: true # false 则只允许 $skill 手动触发
用脚本自动生成
python3 ~/.codex/skills/.system/skill-creator/scripts/generate_openai_yaml.py ~/.codex/skills/my-skill --interface display_name="My Skill" --interface short_description="Help with my skill tasks"
8. 中级技巧:渐进式披露设计
这是写出高效 Skill 的核心设计模式。
模式一:高层指南 + 引用文件
# PDF Processing ## Quick start Extract text with pdfplumber: [code example] ## Advanced features - **Form filling**: See references/forms.md for complete guide - **API reference**: See references/api_docs.md for all methods - **Examples**: See references/examples.md for common patterns
Codex 只在用户需要表单填写时才加载 forms.md。
模式二:按领域拆分
bigquery-skill/
├── SKILL.md ← 概览和导航
└── references/
├── finance.md ← 收入、计费指标
├── sales.md ← 机会、管道
├── product.md ← API 使用、功能
└── marketing.md ← 活动、归因
用户问销售指标时,只加载 sales.md。
模式三:按框架/变体拆分
cloud-deploy/
├── SKILL.md ← 工作流 + 选择指南
└── references/
├── aws.md
├── gcp.md
└── azure.md
用户选 AWS,只加载 aws.md。
模式四:条件详情
# DOCX Processing ## Creating documents Use docx-js for new documents. See references/docx-js.md. ## Editing documents For simple edits, modify the XML directly. **For tracked changes**: See references/redlining.md **For OOXML details**: See references/ooxml.md
关键原则
- 引用文件从 SKILL.md 出发只跳一层,不要深层嵌套
- 超过 100 行的引用文件,顶部加目录(Table of Contents)
- SKILL.md 不超过 500 行,超过就拆
9. 中级技巧:自由度控制
根据任务的脆弱性和可变性,匹配不同的自由度。
高自由度(文本指令)
适用场景:多种方法都可行,决策依赖上下文,启发式引导即可。
## Code Review Guidelines Focus on security, performance, and maintainability. Use your judgment for severity levels. Suggest improvements when patterns are suboptimal.
中自由度(伪代码/带参数脚本)
适用场景:有推荐模式,允许一定变体,配置影响行为。
## Data Pipeline 1. Read source data with `scripts/ingest.py --source--format ` 2. Validate schema against `references/schema.md` 3. Transform using the patterns in `references/transform_guide.md` 4. Load to target with `scripts/load.py --target --mode
` 低自由度(特定脚本,少量参数)
适用场景:操作脆弱易错,一致性关键,必须按特定顺序执行。
## PDF Rotation (MUST follow this exact sequence) 1. Run: `python3 scripts/rotate_pdf.py类比:窄桥+悬崖需要明确护栏(低自由度),开阔草地可以自由探索(高自由度)。
10. 进阶:Forward-Testing
Forward-testing 是验证 Skill 是否真正有效的关键手段。
什么是 Forward-Testing
让子代&理(subagent)假装是普通用户,用你的 Skill 完成真实任务。
这样可以测试:
- Skill 能否被正确触发
- 指令是否足够清晰
- 输出是否符合预期
怎么做
正确方式:
Use $skill-name at /path/to/skill-name to solve problem y错误方式:
Review the skill at /path/to/skill-name; pretend a user asks you to...Forward-Testing 原则
- 用新线程,保持独立
- 只传 Skill 路径和任务描述,不要泄露你的诊断或预期答案
- 每次迭代后清理子代&理产生的文件,避免污染
- 只在子代&理泄露上下文才能成功时才信任结果 — 如果结果依赖泄露的上下文,说明 Skill 还需要改进
- 如果测试可能涉及生产系统或需要额外审批,先向用户确认
决策规则
- 倾向于做 forward-testing
- 如果以下任一条件成立,先问用户:
- 测试耗时较长
- 需要额外用户审批
- 可能修改线上生产系统
11. 进阶:Production 级 Skill 设计模式
模式一:带有质量检查的工作流
--- name: chart-generator description: "Generate publication-quality charts. Use when user asks to create any data visualization, chart, or graph from data." --- # Chart Generator ## Workflow 1. Determine chart type from user request (bar, line, scatter, heatmap, etc.) 2. Generate chart with matplotlib/plotly using `scripts/generate_chart.py` 3. Render to PNG and visually verify 4. If verification fails, fix and re-render 5. Deliver final PNG ## Quality Checks (Mandatory) After EVERY chart generation: - Verify no overlapping labels - Confirm axis labels are readable at target size - Check color contrast meets WCAG AA - Ensure title and legend are visible ## Scripts - `scripts/generate_chart.py --type--data --output ` - `scripts/verify_chart.py ` — Automated quality check 模式二:环境感知 Skill
--- name: deploy-helper description: "Deploy applications to cloud providers. Use when user asks to deploy, ship, or release an application. Supports AWS, GCP, Azure." --- # Deploy Helper ## Pre-flight Checks Before any deployment: 1. Verify target environment credentials exist 2. Check that build artifacts are up to date 3. Confirm deployment target matches user's intent (staging vs production) ## Provider Selection | Provider | Config File | Credentials | |----------|------------|-------------| | AWS | aws-config.yaml | AWS_PROFILE env | | GCP | gcp-config.yaml | GOOGLE_APPLICATION_CREDENTIALS | | Azure | azure-config.yaml | AZURE credentials | Load provider-specific details from `references/.md`. ## Safety Rules - NEVER deploy to production without explicit user confirmation - ALWAYS preview changes before executing - If deployment fails, rollback and explain what went wrong 模式三:带上下文积累的长流程
--- name: code-migration description: "Migrate codebases between frameworks or languages. Use when user asks to migrate, convert, or transform an existing codebase." --- # Code Migration Skill ## Phase 1: Analysis Scan the source codebase and produce `migration-report.md`: - File count and structure - Dependencies inventory - Complexity estimate ## Phase 2: Planning Based on the report, create a migration plan in `migration-plan.md`: - Ordered list of files to convert - Dependency graph - Risk assessment per file ## Phase 3: Execution Convert files following the plan. After each batch: - Run a vailable tests - Update migration-plan.md with progress - If error rate > 10%, pause and reassess ## Phase 4: Verification - Run full test suite - Compare coverage metrics before/after - Generate final migration summary12. 完整实战案例
案例:Notion 知识管理 Skill
notion-knowledge-capture/ ├── SKILL.md ├── agents/ │ └── openai.yaml ├── references/ │ ├── page_types.md ← 各种页面类型的 Schema │ └── linking_rules.md ← 链接和关联规则 └── assets/ └── templates/ ├── decision.md ← 决策记录模板 └── faq.md ← FAQ 模板SKILL.md:
--- name: notion-knowledge-capture description: "Capture conversations and decisions into structured Notion pages. Use when turning chats/notes into wiki entries, how-tos, decisions, or FAQs with proper linking." --- # Notion Knowledge Capture ## When to Capture Capture knowledge when the conversation contains: - A decision that should be持久化 - A how-to that will be repeated - An FAQ that multiple people ask - A meeting outcome that affects others ## Workflow 1. Identify the type of knowledge (decision / how-to / FAQ / meeting-notes) 2. Load the appropriate template from `assets/templates/` 3. Fill in the template with conversation content 4. Determine where it belongs in the Notion hierarchy (see `references/linking_rules.md`) 5. Create the page via Notion MCP ## Quality Standards - Title must be specific and searchable (not "Meeting Notes" but "Q3 Planning: API Rate Limiting Decision") - Every entry must ha ve: author, date, status, related pages - Decisions must include: context, options considered, rationale, follow-ups13. 调试与排错
Skill 没有被触发
检查清单:
description是否清晰描述了使用场景?- 用户的请求是否匹配
description中提到的场景?- 是否有其他 Skill 的
description更匹配?- Skill 文件夹是否放在
$CODEX_HOME/skills/下?Skill 触发了但行为不对
- SKILL.md 正文是否在 frontmatter 之后?
- 指令是否足够具体?(用祈使句,给出明确步骤)
- 引用的脚本/文件路径是否正确?
验证命令
# 检查结构是否正确 python3 ~/.codex/skills/.system/skill-creator/scripts/quick_validate.py ~/.codex/skills/my-skill # 检查 YAML 格式 cat ~/.codex/skills/my-skill/agents/openai.yaml # 列出所有已安装的 Skill ls ~/.codex/skills/14. 最佳实践速查表
Description 写法
原则 说明 写清楚做什么 + 什么时候用 两者缺一不可 包含所有触发场景 触发信息只能放 description,不能放 body 不超过 1024 字符 避免 <>符号包含文件类型/任务类型 帮助 Codex 精确匹配 SKILL.md 写法
原则 说明 用祈使句 “Run the script” 而不是 “The script can be run” 只写 Codex 不知道的 不解释基础概念 不超过 500 行 超过就拆到 references/ 引用文件只跳一层 不要深层嵌套引用 大文件加 grep 指引 方便 Codex 搜索定位 资源管理
原则 说明 脚本优先 确定性任务用脚本,不重写代码 references 只放按需内容 不要污染主文件 assets 只放输出资源 不读进上下文的文件 不放 README/CHANGELOG Skill 是给 AI 看的 Production 级要求
原则 说明 质量检查内嵌到流程 每个关键步骤后验证 错误恢复明确写出来 失败时该怎么做 Forward-test 复杂 Skill 用子代&理模拟真实使用 多环境感知 明确区分 staging/production 安全操作确认 破坏性操作前确认 附录:关键路径
路径 用途 ~/.codex/skills/ 个人 Skill 安装目录 ~/.codex/skills/.system/skill-creator/ Skill 创建工具 scripts/init_skill.py 初始化新 Skill scripts/quick_validate.py 验证 Skill 结构 scripts/generate_openai_yaml.py 生成 UI 元数据 $CODEX_HOME/skills/.system/ 系统预装 Skill(不可修改) 本教程基于 Codex Skill Creator 系统文档编写,覆盖从零基础到生产级的完整路径。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多
![]()
- 阿里千问开放第三方Agent与Skill接入,瑞幸东航首批测试
- 时间:2026-08-21
![]()
- 将老员工经验沉淀为Agent可调用资产:Skill与MCP治理实践
- 时间:2026-08-21
![]()
- Microsoft Agent Framework 1.0发布:Agent开发迈入工程化时代
- 时间:2026-08-21
![]()
- 郑州GEO源码推荐指南:核心要点与靠谱选择技巧
- 时间:2026-08-18
![]()
- OpenSkill智能体自进化新范式:孙立超团队刷新多项基准SOTA
- 时间:2026-08-18
![]()
- 小红书上线RED Skill功能:AI应用深度嵌入社区笔记场景
- 时间:2026-08-18
![]()
- AI简历优化工具怎么选:校招社招ATS兼容与数据安全指南
- 时间:2026-08-17
![]()
- AI简历工具推荐:国内与海外及ATS和全流程能力区别
- 时间:2026-08-17
精选合集
更多大家都在玩
大家都在看
更多
![]()
- 以下哪种食材被称为“地下苹果” 蚂蚁庄园今日答案9.18
- 时间:2026-09-17
![]()
- 蚂蚁庄园今天答题答案2026年9月18日
- 时间:2026-09-17
![]()
- 蚂蚁庄园答题今日答案2026年9月18日
- 时间:2026-09-17
![]()
- 蚂蚁庄园小课堂2026年9月18日最新题目答案
- 时间:2026-09-17
![]()
- 小鸡答题今天的答案是什么2026年9月18日
- 时间:2026-09-17
![]()
- 蚂蚁庄园每日答题答案2026年9月18日
- 时间:2026-09-17
![]()
- 蔬菜洗完掉色,说明是被染色了,是真的吗 蚂蚁庄园今日答案9月18日
- 时间:2026-09-17
![]()
- 满襟蜡绘花纹巧染就花纹当绣裳说的是哪种传统技艺 蚂蚁新村今日答案2026.9.17
- 时间:2026-09-17








