簡短回答
如果用名稱呼叫 Skill 能成功,代表它已經安裝好。它會不會自動執行,則取決於描述,Agent 會先讀描述,也可能把它截短。這兩件事要分開測試,因為失敗的原因不同。
各 Agent 如何挑選 Skill
每個 Agent 都會先讀取一份 Skill 名稱和描述的清單,挑中之後才載入該 Skill 的完整指示。這份清單來自每個 SKILL.md 的 frontmatter(很多人會搜尋成 skills.md),而且有容量上限:
| Agent | 先讀取 | 空間不足時 |
|---|---|---|
| Claude Code | 名稱和描述,若有設定再加上 when_to_use;每項最多 1,536 個字元 | 清單約占 context window 的 1%;最少使用的描述最先被移除 |
| Codex | 名稱、描述和檔案路徑 | 清單約占 context window 的 2%;描述會先被截短 |
| Cursor | 名稱和描述 | 文件未說明 |
裝了很多 Skill 時,冗長或含糊的描述可能在 Agent 考慮之前就被截短或移除。所以第一句話最重要。
寫出會被選中的 Skill 描述
用同事請你幫忙時會說的方式寫描述,並把主要用途放在第一句。
Agent 會拿你的請求和這些字詞比對,所以要用大家真正會打的字,例如「登陸頁」、「產品發表頁」或「募資簡報」。先寫出產出是什麼,再說明何時使用。
做什麼、何時用
- 「製作一個包含 Hero、功能格狀區塊和價格切換開關的產品發表頁。在被要求製作登陸頁或發表頁時使用。」
太籠統
- 「協助處理網站。」
- 它得和所有其他網頁 Skill 競爭,被截短之後幾乎什麼都沒說。
如何測試它會不會觸發
依照這個順序測試。第一步排除安裝問題,所以之後失敗的話,問題就出在描述。
- 1用名稱呼叫它。如果失敗,就是安裝問題;請見疑難排解。
- 2開啟一個新的工作階段,讓先前的呼叫不在 context 裡,然後不提名稱、用一般說法提出需求。
- 3問 Agent 用了哪個 Skill,再檢查是否出現只有這個 Skill 才會遵循的某項指示。
執行了錯的 Skill 時
這通常代表兩個描述重疊,或同一個 Skill 裝了兩次。
- 用名稱呼叫你要的那個。用名稱呼叫一定優先。
- 依輸入、對象或產出縮小重疊描述的範圍,讓每個 Skill 都有明確的工作。
- 同名 Skill 放在兩個位置:Claude Code 優先使用 Enterprise,其次個人,最後專案。Codex 可能兩個都列出。只保留一份。
常見問題
為什麼我的 Claude Skill 不會觸發?
先用名稱呼叫它。如果失敗,代表 Skill 沒有安裝在 Agent 會找的位置;如果只有一般請求會失敗,就用你實際會打的字重寫描述。
Claude 怎麼決定要用哪個 Skill?
它會讀取每個 Skill 的名稱和描述,再載入最符合你請求的那一個。輸入 /skill-name 會跳過比對,直接執行你指定的 Skill。
Skill 描述應該寫什麼?
寫出這個 Skill 做什麼、何時使用,並把主要用途放在第一句。要用大家實際會打的字,例如「登陸頁」或「募資簡報」,因為描述可能會被截短。
檔案名稱是 SKILL.md 還是 skills.md?
是 SKILL.md,每個 Skill 資料夾裡一個。它的 frontmatter 存放了 Agent 挑選 Skill 時會讀取的名稱和描述。
參考來源
這篇指南對你有幫助嗎?
