技能可補足 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 伺服器匯入技能。
測試技能
使用使用案例清單中的代表性請求進行測試:
- 應觸發技能的直接請求。
- 以間接方式表達相同目標的請求。
- 應引發追問的不完整輸入。
- 不應觸發技能的請求。
- 技能必須避免捏造資訊或採取不支援動作的邊界情況。
同時審查技能的觸發時機與輸出品質。如果技能在不適當的時機觸發,請調整描述。如果技能選擇了正確的工作流程,結果卻不一致,請調整指示。
封裝技能
在外掛程式資訊清單中指定技能目錄:
{
"name": "dice-roller",
"version": "1.0.0",
"description": "Roll dice for tabletop games",
"skills": "./skills/",
"apps": "./.app.json"
}
如需完整的資訊清單、 MCP 伺服器對應、本機測試與散布流程,請參閱封裝外掛程式。