For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
主导航

构建技能

围绕您插件的 MCP 工具添加可重复执行的工作流。

技能是 MCP 服务器的补充,它教会 ChatGPT 和 Codex 如何在可重复执行的工作流中使用服务器的工具。服务器负责实时数据、身份验证、授权和受控操作;技能则提供工具调用顺序、决策点、输出要求、示例、模板及其他可复用的指导。

一个插件可以包含一项技能或一组相关技能。每项技能都应 围绕您的 使用场景清单中一个明确的用户目标展开。如果工作流只需要打包的指令和资源, 技能也可以在没有 MCP 服务器的情况下运行。

创建技能

最快的入门方式是使用内置的技能创建器。请描述用户目标,以及支持实现该目标的 MCP 工具:

@skill-creator Create a skill named tabletop-dice that understands dice
notation such as 3d6, calls roll_dice once for each die, and reports every
roll and the total.

在 Codex 中,使用 $skill-creator 调用同一个创建器。

您也可以手动创建文件。每项技能都有自己的目录, 并且必须包含一个 SKILL.md 文件:

  • skills
    • tabletop-dice
      • SKILL.md 必需的指令和元数据
      • references 可选的文档
      • scripts 可选的可执行代码
      • assets 可选的模板和资源

编写 SKILL.md

在文件开头填写名称和描述,然后编写指令:

---
name: tabletop-dice
description: Roll one or more dice for tabletop games and report each result and the total.
---

Use this skill when the user asks to roll dice.

1. Parse requests written as `NdS` as N dice with S sides. For example, `3d6`
   means three six-sided dice.
2. Call `roll_dice` once for each requested die and pass S as `sides`.
3. Report each tool result in order.
4. When the user requests multiple dice, add the results and report the total.

Do not invent, replace, or reroll a result unless the user asks you to.

描述决定模型何时考虑使用该技能。请说明工作流及其触发条件,并在正文中写明详细的流程、格式和安全指令。

界定工作流的范围

让每项技能对应一个或多个使用场景。指令应明确以下内容:

  • 工作流需要哪些输入。
  • 模型应遵循哪些步骤。
  • 用户应收到什么输出。
  • 模型不得推断哪些事实。
  • 工作流何时应提问、停止或拒绝请求。
  • 模型应查阅哪些辅助文件。

优先创建一项目标明确的技能,避免堆积大量关联松散的指令。如果工作流的触发条件、输入或成功标准不同,请将其拆分。

审查指令遵循情况

为 GPT-6 Astra 编写或导入技能时,请审查指令遵循指南。 检查技能及辅助文件中是否存在含糊或相互冲突的指令,并 明确说明用户明确提出的指令优先于技能指南。

添加辅助资源

保持 SKILL.md 简洁,将详细资料放在旁边的文件或目录中:

  • 使用 references/ 存放政策、模式、示例和背景资料。
  • 使用 assets/ 存放工作流需要复制或转换的模板或文件。
  • 当工作流需要确定性计算或文件处理时, 使用 scripts/

SKILL.md 中引用辅助文件,并说明何时加载或运行这些文件。 如果指令和现有工具已经能够可靠地完成任务, 就不要添加脚本。

将技能与 MCP 工具关联

技能可以指导模型使用插件的 MCP 服务器提供的工具。用技能提供工作流指令,用服务器处理实时数据、授权和受控操作。

如果技能需要 MCP 服务器,请在 agents/openai.yaml 中声明该依赖项:

dependencies:
  tools:
    - type: "mcp"
      value: "dice-roller"
      description: "Roll an N-sided die"
      transport: "streamable_http"
      url: "https://tinymcp.dev/api/moldy-aloof-zettabyte/mcp"

依赖项让所需工具可用,但不能替代清晰的工作流指令。请告诉模型应使用哪些工具、按什么顺序使用,以及如何处理缺失或含糊的结果。

从 MCP 导入技能

您可以在提交时上传打包好的技能,也可以从插件的 MCP 服务器导入。选择 MCP 方式,可将技能指令和辅助文件与服务器一同部署。

当您在插件提交门户中选择 扫描工具 时,OpenAI 会从 MCP 导入技能。 导入的文件会成为草稿中的快照; ChatGPT 和 Codex 不会在运行时从您的 MCP 服务器获取这些文件。 修改技能后,请先部署服务器并重新扫描, 然后再提交新的插件版本。

有关能力声明、发现方法、资源清单和 导入限制,请参阅 从 MCP 服务器导入技能

测试技能

使用场景清单中具有代表性的请求进行测试:

  1. 应触发技能的直接请求。
  2. 表达相同目标的间接请求。
  3. 应引发追问的不完整输入。
  4. 不应触发技能的请求。
  5. 技能必须避免编造信息或执行不受支持操作的边缘情况。

同时审查触发情况和输出质量。如果技能在不恰当的时机触发,请改进描述。如果技能选择了正确的工作流,但生成的结果不一致,请改进指令。

打包技能

在插件清单中指定技能目录:

{
  "name": "dice-roller",
  "version": "1.0.0",
  "description": "Roll dice for tabletop games",
  "skills": "./skills/",
  "apps": "./.app.json"
}

有关完整清单、 MCP 服务器映射、本地测试和分发流程,请参阅打包您的插件