技能
构建技能
为 Codex 提供新的能力和专业知识
使用代理技能,以特定任务所需的能力扩展 ChatGPT 和 Codex。一个 技能会将说明、资源和可选脚本打包在一起,使两款产品都能 可靠地遵循工作流。技能基于 开放代理技能标准构建。
技能是可复用工作流的编写格式。插件通过 ChatGPT 和 Codex 共享的 通用插件目录分发可复用技能和连接器。插件适用于网页版、 桌面版和移动版 ChatGPT 中的 Chat 和 Work、ChatGPT 桌面应用中的 Codex,以及 Codex CLI。先用技能设计工作流本身;如果希望 其他人安装它,再将其打包为 插件。
独立技能可用于 ChatGPT 桌面应用、Codex CLI 和 IDE 扩展。插件中捆绑的技能还可用于网页版、桌面版和移动版 ChatGPT 中的 Chat 和 Work。
在 ChatGPT 桌面应用中,打开侧边栏中的技能,查看和探索 在各个项目中创建的技能。
在 Codex 中,初始列表还会包含每项技能的文件路径。为避免 挤占提示词其余部分,此列表最多使用模型上下文 窗口的 2%;当上下文窗口大小未知时,最多使用 8,000 个字符。如果安装了许多 技能,Codex 会先缩短技能描述。对于大型技能 集合,Codex 可能会从初始列表中省略部分技能并显示警告。
此预算仅适用于初始技能列表。当 Codex 选择某项技能时,仍会读取该技能完整的 SKILL.md 说明。
技能是一个目录,其中包含 SKILL.md 文件,还可选择包含脚本和参考资料。SKILL.md 文件必须包含 name 和 description。
ChatGPT 和 Codex 如何使用技能
ChatGPT 和 Codex 可以通过两种方式激活技能:
- **显式调用:**在提示词中直接包含技能。在
ChatGPT 中,输入
@以选择技能。在 Codex CLI 或 IDE 扩展中,运行/skills或输入$以提及技能。 - **隐式调用:**当你的任务与技能的
description匹配时,ChatGPT 或 Codex 可以选择该技能。
由于隐式匹配依赖 description,请编写简洁且范围与边界
清晰的描述。将关键用例和触发词放在开头,
这样即使描述被缩短,宿主仍能匹配技能。
创建技能
如果你已经明确工作流,并且演示比描述更容易,请使用 录制与重放。录制器会捕获 工作流、检查步骤,并根据演示起草一项可复用技能。
如果希望通过描述创建技能,请使用内置创建器。在 ChatGPT
Work 中,以 @skill-creator 调用它。在 Codex 中,按如下方式调用:
$skill-creator创建器会询问技能的用途、触发时机,以及它应仅包含说明还是也包含脚本。默认仅包含说明。
你也可以创建一个包含 SKILL.md 文件的文件夹,手动创建技能:
---
name: skill-name
description: Explain exactly when this skill should and should not trigger.
---
Skill instructions for ChatGPT or Codex to follow.Codex 会自动检测技能更改。如果更新没有出现,请重启 Codex。
Codex 从何处加载本地技能
Codex 从仓库、用户、管理员和系统位置读取技能。对于仓库,Codex 会扫描从当前工作目录到仓库根目录之间每个目录中的 .agents/skills。如果两项技能具有相同的 name,Codex 不会合并它们;两者都可能出现在技能选择器中。
| 技能范围 | 位置 | 建议用途 |
|---|---|---|
REPO |
$CWD/.agents/skills 当前工作目录:启动 Codex 的位置。 |
如果你位于仓库或代码环境中,团队可以签入与某个工作文件夹相关的技能。例如,仅与某个微服务或模块相关的技能。 |
REPO |
$CWD/../.agents/skills 在 Git 仓库中启动 Codex 时,位于 CWD 上方的文件夹。 |
如果仓库包含嵌套文件夹,组织可以签入与父文件夹中共享区域相关的技能。 |
REPO |
$REPO_ROOT/.agents/skills 在 Git 仓库中启动 Codex 时最顶层的根文件夹。 |
如果仓库包含嵌套文件夹,组织可以签入与仓库所有用户相关的技能。这些技能作为根技能,可供仓库中的任何子文件夹使用。 |
USER |
$HOME/.agents/skills 签入用户个人文件夹的所有技能。 |
用于整理适用于用户可能处理的任何仓库、且与该用户相关的技能。 |
ADMIN |
/etc/codex/skills 签入计算机或容器共享系统位置的所有技能。 |
用于 SDK 脚本和自动化,以及签入可供计算机上每位用户使用的默认管理员技能。 |
SYSTEM |
由 OpenAI 与 Codex 捆绑提供。 | 面向广泛用户的实用技能,例如 skill-creator 和计划技能。每个人启动 Codex 时都可使用。 |
Codex 支持通过符号链接链接的技能文件夹,并在扫描这些位置时跟随符号链接目标。
这些位置用于编写和本地发现。如果希望 在单个仓库之外分发可复用技能,或者选择将技能与 连接器捆绑,请使用插件。
通过插件分发技能
直接使用技能文件夹最适合本地编写和仓库范围的工作流。如果 希望分发可复用技能、将两项或更多技能捆绑在一起,或 将技能与连接器一同发布,请将它们打包为 插件。
插件可以包含一项或多项技能。它们还可以选择将 已注册的 MCP 服务器连接、捆绑的 MCP 服务器配置以及 展示资源整合到一个软件包中。
安装精选技能供本地使用
要在自己的本地 Codex 环境中添加内置技能以外的精选技能,请使用 $skill-installer。例如,要安装 $linear 技能:
$skill-installer linear你还可以提示安装器从其他仓库下载技能。 Codex 会自动检测新安装的技能;如果某项技能未出现, 请重启 Codex。
此方式适合本地设置和实验。如需分发你自己的 可复用技能,优先使用插件。
启用或禁用本地 Codex 技能
使用 ~/.codex/config.toml 中的 [[skills.config]] 条目,可以禁用技能而不将其删除:
[[skills.config]]
path = "/path/to/skill/SKILL.md"
enabled = false更改 ~/.codex/config.toml 后,请重启 Codex。
可选元数据
添加 agents/openai.yaml,可在 ChatGPT 桌面应用中配置 UI 元数据、设置调用策略并声明工具依赖项,从而获得更顺畅的技能使用体验。
interface:
display_name: "Optional user-facing name"
short_description: "Optional user-facing description"
icon_small: "./assets/small-logo.svg"
icon_large: "./assets/large-logo.png"
brand_color: "#3B82F6"
default_prompt: "Optional surrounding prompt to use the skill with"
policy:
allow_implicit_invocation: false
dependencies:
tools:
- type: "mcp"
value: "openaiDeveloperDocs"
description: "OpenAI Docs MCP server"
transport: "streamable_http"
url: "https://developers.openai.com/mcp"allow_implicit_invocation(默认值:true):当值为 false 时,Codex 不会根据用户提示词隐式调用该技能;显式 $skill 调用仍然有效。
最佳实践
- 让每项技能专注于一项工作。
- 除非需要确定性行为或外部工具,否则优先使用说明而非脚本。
- 使用祈使句编写步骤,并明确输入和输出。
- 使用测试提示词验证技能描述,确认触发行为正确。
有关更多示例,请参阅 GitHub CI 修复、 PDF、 Linear、 openai/skills和 代理技能规范。对于 可安装的分发形式,优先使用插件。