部落格

Codex Skills:為重複任務建立技能

Markdown

SKILL.md 的結構、載入路徑、明確與自動呼叫、結果準則,以及將技能移轉至 Claude Code。

閱讀全文

如果你每週要向 Codex 解釋同一件事五次——例如如何設定報告格式、整理電子郵件,或依照你的風格準備文案——你可以把這些指示寫成技能,只需寫一次。之後,只要任務符合技能的描述,代理程式就能依描述找到它;你也可以明確呼叫技能。技能就是一個普通資料夾,裡面有一個名為 SKILL.md 的文字檔;基本用法不需要寫程式。

以下會介紹技能的結構、Codex 尋找技能的位置、逐步建立技能的方法,以及如何根據成本選擇模型。指令和價格依據截至 2026 年 9 月 20 日的 OpenAI 官方文件。本文不重複 Codex 的安裝說明;請參閱指南 OpenAI 的 Codex:功能、安裝與執行方式。

如需了解 Ailoot 的使用方式,請參閱文件。

Codex 中的技能是什麼?

重要重點

Codex 技能是一個包含 SKILL.md 檔案的資料夾,用來描述一套流程:要做什麼、依據什麼,以及什麼樣的結果才算良好。Codex 一開始只會將技能名稱和描述保留在上下文中,等它判斷要使用某項技能時,才會載入完整指示。

這種格式稱為 Agent Skills,是 Anthropic 最初開發並發布於 agentskills.io 的開放標準。包括 Codex、Claude Code 和其他相容用戶端在內的多種代理程式都支援此標準。只包含文字指示的簡單技能,可以透過複製資料夾在不同代理程式間移轉。如果技能包含指令碼、相依項目或 agents/openai.yaml 檔案,移轉後請檢查技能:部分設定只適用於特定用戶端。

這種載入方式稱為漸進式揭露。代理程式會根據技能名稱和描述,判斷技能何時適用。任務符合描述時,代理程式就會讀取完整的 SKILL.md 並遵循其中指示。這代表你可以在 Codex 中保留數十項技能,而不必把每項指示都載入上下文:初始清單最多只會占上下文視窗的 2%(若視窗大小未知,則最多 8,000 個字元)。如果技能很多,Codex 會先縮短技能描述;如果數量非常多,可能會從清單中省略部分技能並通知你。

技能很容易和 AGENTS.md 混淆。Codex 會在每個專案工作階段讀取這個檔案,其中包含長期適用的規則,例如技術堆疊、慣例和程式碼風格。技能則會在任務符合條件時按需載入。因此,長期適用的規則應放在 AGENTS.md,而包含步驟的重複流程應放在技能中。

Hermes Agent 技能的運作方式類似,但儲存在不同資料夾,安裝方式也不同。相關內容請參閱另一篇指南:Hermes Agent 技能:安裝與建立。本文僅介紹 Codex。

技能包含哪些內容?

重要重點

技能至少需要一個 SKILL.md 檔案,並包含兩個必要欄位:name 和 description。你也可以選擇加入 scripts/、references/ 和 assets/ 資料夾,以及包含設定的 agents/openai.yaml 檔案。

技能資料夾的結構如下:

my-skill/
  SKILL.md        - required: metadata and instructions
  scripts/        - optional: executable code
  references/     - optional: documents to load as needed
  assets/         - optional: templates and resources
  agents/
    openai.yaml   - optional: appearance and dependencies

SKILL.md 檔案本身會先以三個連字號括住中繼資料區塊,接著是 Markdown 格式的指示文字:

---
name: weekly-sales-report
description: Compile a weekly sales report from a CSV export. Use when asked for a weekly sales report or a summary by manager.
---

1. Read the export file at the path provided by the user.
2. Group the rows by manager and calculate the total and number of deals.
3. Compare with the previous week if the file for the previous week is nearby. If it is not there, say so directly in the report.
4. Save the result to report.md: a table by manager, the total, and up to three key changes with figures, as many as the data supports.

以下是 OpenAI 官方建議中的三項規則:

  • 一項技能處理一項任務。不要選擇「處理我所有的行銷工作」,而應選擇明確的任務,例如「根據這份匯出檔製作銷售報告」。較大的流程應拆分成多項技能,並依序呼叫。
  • 直接撰寫步驟,明確列出輸入和輸出:使用什麼、要做什麼,以及將結果放在哪裡。
  • 從文字指示開始。只有在某個步驟每次都必須以完全相同的方式執行時,才使用 scripts/ 中的指令碼,例如轉換檔案或呼叫外部系統。

Codex 會根據 description 欄位為任務選擇技能,因此描述開頭應先寫任務名稱,以及你平常用來描述該任務的詞語。

Codex 會在哪裡尋找技能?

重要重點

Codex 會在四個位置尋找技能:專案的 .agents/skills 資料夾(從目前資料夾開始,逐層檢查父資料夾,直到儲存庫根目錄)、個人 $HOME/.agents/skills 資料夾、系統 /etc/codex/skills 資料夾,以及 OpenAI 內建技能。

層級路徑用途
專案目前資料夾及其父資料夾中,直到儲存庫根目錄的 .agents/skills特定專案的技能,可與程式碼一同存放在 git 中
使用者$HOME/.agents/skills這台機器上所有專案都能使用的個人技能
系統/etc/codex/skills供機器或容器的所有使用者共用的技能
內建隨 Codex 附帶OpenAI 提供的基本技能,例如技能建立工具

專案技能適合與程式碼一同存放在 git 中,方便整個團隊使用同一組技能。個人技能則適合用於自己的流程,例如電子郵件風格。如果不同層級有同名技能,Codex 不會將它們合併:兩者都會出現在清單中,讓選擇更加困難。請使用不重複的名稱。

作為比較,Claude Code 技能儲存在 .claude/skills,每項技能都有自己的 SKILL.md,並使用相同的開放標準。簡單的技能可以複製資料夾移轉過去,之後應執行技能並確認它會被呼叫。如需比較 Claude Code 擴充功能,請參閱 Skills、Subagents、MCP 或 Plugins。

Codex 如何決定要呼叫哪項技能?

重要重點

你可以明確呼叫技能:在 Codex CLI 或 IDE 擴充功能中,於請求輸入 $skill-name,或透過 /skills 選取技能。使用隱式呼叫時,如果任務符合技能描述,Codex 會自動選擇該技能。技能必須可供使用,且必須允許自動呼叫。

一開始採用明確呼叫比較可靠:在 Codex CLI 中輸入 $weekly-sales-report,即可選取該項特定流程。隱式呼叫在日常工作中更方便。撰寫技能後,請用一般措辭測試:不加 $,用你自己的話請 Codex 執行任務,看看它是否會選取該技能。如果沒有,先確認 Codex 是否能在 /skills 中看到技能、技能是否位於其中一個載入資料夾,以及技能本身或其自動呼叫功能是否已停用。如果技能可用且設定正確,請調整 description:寫明任務以及常見的請求說法。

如果你希望技能只能透過明確指令使用,也可以進行設定:在 agents/openai.yaml 中,allow_implicit_invocation: false 參數會停用自動呼叫,但 $name 仍然可用。若要完全停用技能而不刪除它,可透過 ~/.codex/config.toml 設定:

[[skills.config]]
path = "/full/path/to/the/skill/SKILL.md"
enabled = false

編輯 config.toml 後,請重新啟動 Codex。Codex 會自動套用技能資料夾的變更;但如果新技能沒有出現,請重新啟動 Codex。

如何逐步建立自己的技能

重要重點

選擇一項重複性任務,使用內建的 $skill-creator 助理或手動建立技能,撰寫明確指定結果的指示,用一般措辭測試技能呼叫,並在每次執行後調整技能。

  1. 選擇一項任務

    挑選一個你經常重複執行、且有明確成果的流程,例如報告、表格、信件或分析。如果你從未取得過這類成果,先透過代理程式手動完成任務。將取得的結果作為撰寫指示的基準。

  2. 建立技能

    若要透過內建助理建立技能,請在 Codex 工作階段中輸入 $skill-creator。它會詢問技能的用途、應在何時呼叫,以及是否需要指令碼,然後替你建立架構。若要手動建立,請在專案中建立 .agents/skills 資料夾,再建立技能子資料夾,例如 .agents/skills/weekly-sales-report,並參考上方範例在其中放入 SKILL.md 檔案。

  3. 撰寫指示

    以編號清單撰寫步驟,並明確列出輸入和輸出。如果流程要求精確處理資料、重新命名或計算,請詳細列出每個步驟。對於撰寫文案、選擇論點等創意任務,請設定範圍和良好結果的判準,同時保留模型發揮的空間。

  4. 測試呼叫

    用你自己的話請 Codex 執行任務,但不要提及技能名稱。如果它選取了正確的技能,表示這個描述適用於該種說法。接著使用 $name 測試明確呼叫。如果技能沒有被呼叫,請檢查資料夾、技能是否出現在 /skills,以及上述停用設定。如果新技能沒有出現在清單中,請重新啟動 Codex。如果明確呼叫有效、自動呼叫也已允許,但 Codex 沒有回應你用自己的話提出的請求,請調整 description 的開頭:先寫任務,再列出常見的請求說法。然後再次測試。

  5. 執行後調整

    每次執行後檢查結果,並告訴代理程式要在技能中修改什麼:「下次請在摘要表中加入一欄,顯示占比。」如果創意工作產生的第一版結果不符合需求,請根據回饋調整技能。

OpenAI 和社群提供的現成技能,可以透過 $skill-installer 加上技能名稱來安裝。若要與他人分享自己的技能,可將它們發佈為外掛;這是另一種套件封裝方式,個人使用時不需要。

如何檢查代理程式的結果

重要重點

直接在技能中加入驗收標準:說明結果必須包含哪些內容,以及代理程式在交付前應如何檢查工作。這無法保證正確性;你仍須自行檢查結果。

檢查可以是客觀或主觀的。客觀檢查可以衡量,例如「報告包含匯出檔中的全部 12 位經理」或「表格總和與 CSV 總額一致」。請將這些列為明確要求。主觀檢查則關乎品質,例如「文字讀起來像我寫的」或「結論簡潔」。這些也可以具體化:在技能中加入一段優良範例,並要求代理程式將結果與範例比較。

一種實用技巧是建立檢查循環:完成結果後,代理程式依照一系列標準檢查並修正發現的問題,然後才向你展示。Anthropic 也有一種類似的模式,稱為 evaluator-optimizer:一個代理程式負責工作,另一個獨立評估者進行審查並提供回饋,流程會持續重複,直到結果符合驗收標準。在單一技能中,這通常會簡化為依照清單進行最後的自我檢查。請留意這種方法的限制:負責工作的代理程式可能無法發現自己的錯誤,因此效果不如獨立評估者。

報告檢查區塊範例:

## Before submitting, check
- Every manager from the export is present in the table; no one was left out.
- The total matches the CSV sum down to the last cent.
- Every key change is supported by a figure; if there is no data for comparison, the report says so directly.
- The file is saved at report.md, and the path has been shared with the user.

技能應該選用哪個模型?

重要重點

先使用讓技能成功執行的模型,再試試成本較低的模型:如果品質維持不變,就採用較便宜的模型。以下是 API 費率及初次執行的建議起點,資料截至 2026 年 9 月 20 日。

模型輸入,美元/百萬 tokens輸出,美元/百萬 tokens優先測試用途
GPT-6 Astra1050涉及延伸推理、圖像和瀏覽器操作的技能
GPT-5.6 Sol420中等複雜度的文字技能
GPT-5.6 Terra2.5015有明確結果的簡單流程
GPT-5.6 Luna0.201.20機械式任務:重新格式化、計算、整理清單

最右欄建議的是初步檢查時可嘗試的任務,並非排名或比較結果。只有在執行技能並與基準結果比較後,才能找出適合該技能的模型。

表格中的價格是截至 2026 年 9 月 20 日,各模型頁面所列的 API 費率,而非 ChatGPT 訂閱價格。使用訂閱服務時,會從訂閱的使用額度扣抵。截至此日期,Sol 的促銷費率為 $4/$20,至少適用至 2026 年 11 月 21 日;標準價格為 $5/$30。進行大型定期執行前,請查看定價頁面:OpenAI 的促銷活動會變動。

使用下一個較便宜的模型執行相同技能,並將結果與基準比較。如果品質維持不變,就再試下一個更便宜的模型。如果品質下降,就回到前一個模型。模型也有推理強度等級:Astra 的範圍是 low 至 max,5.6 系列的範圍是 none 至 max。也請使用相同基準測試這些等級:先選模型,再選推理強度。

定期執行技能會產生持續成本。Astra 的輸入價格是 Luna 的 50 倍,因此用不同模型執行相同的常用技能,成本可能會有明顯差異。對於分析螢幕截圖和文件的技能,較弱的模型可能因為需要返工而花費更多。

建立和使用技能時的常見錯誤

  • 「什麼都能做」的技能。一個流程對應一項技能,這也是 OpenAI 的建議。很難精確描述一個萬用的十頁技能,而且 Codex 是根據技能描述選擇任務所需的技能。
  • 描述太含糊。「協助處理報告」沒有說清楚技能適用於哪一類報告。請在 description 開頭寫出任務和常見的請求說法。
  • 指示沒有明確定義結果。如果沒有說明應產出什麼,以及要放在哪裡,每次執行的結果可能都不一樣。
  • 完全沒有檢查步驟。缺少依據標準進行最後檢查的步驟,結果可能只是尚未完成的草稿,最後還得由你親自完整審閱。
  • 預設使用能力最強的模型。先確認成本較低的模型是否能處理任務:執行相同技能,並與基準結果比較。只有在品質維持不變時才切換。
  • 不同資料夾中有同名技能。Codex 不會合併同名技能,因此更難選出正確的技能。

如何開始並將技能移轉至 Claude Code

重要重點

選擇一項重複流程,使用 $skill-creator 建立技能,用你自己的說法測試呼叫,並加入包含驗收標準的最後步驟。執行幾次後,根據發現的錯誤調整描述和指示。

如果你同時使用多個代理程式,可以將只包含文字指示和 SKILL.md 檔案的資料夾移轉至 Claude Code。Claude Code 的技能儲存在 .claude/skills,並透過 /name 呼叫。如果技能包含指令碼、相依項目或 agents/openai.yaml,移轉後請檢查技能。如需了解 Claude Code 技能庫,請參閱 Claude Code 技能:如何建立自己的技能組;如需比較 Codex 和 Claude Code,請參閱 Codex 與 Claude Code 比較。

前往 Ailoot。

更多詳情

常見問題:Codex Skills:為重複任務建立技能

明確叫用 skill 有效,自動選取卻失敗,為什麼?

確認 /skills 看得到它,且啟用 implicit invocation。若都正確,就調整 description,以任務開頭並加入平常會使用的措辭,再用同一普通請求測試。

業績報告 skill 的輸出應驗證什麼?

確認輸出涵蓋來源匯出中的每位經理、總額與來源一致、每項變動主張有數字支持,且所需報告檔已保存。缺少前期資料時,報告應明說。

所有文章