Skill 不觸發怎麼辦:description 怎麼寫才會被調用,附 Claude Code 排查步驟

裝了 Skill 卻不被調用、或者亂觸發?按 Agent Skills 官方指南和 Claude Code 文檔講清觸發原理、description 的四條寫法、用 20 條測試問句驗證觸發率的方法,以及 Claude Code 裏描述被截斷、YAML 寫錯等情況的排查命令。

NNathaniel bigo··原創首發·AI 輔助撰寫
10 分鐘讀完
資料核對於 2026-10-11 · 依據官方文檔與公開資料整理 免費帳號 帳號
本文根據 Agent Skills 官方指南《Optimizing skill descriptions》和 Claude Code 官方文檔的 Troubleshooting 一節整理,資料核對於 2026-10-11。排查命令以 Claude Code 為例,其他工具的思路相同、命令不同。

適用於誰

  • 搜「skill 不觸發」「如何觸發 skill」「skill 觸發詞」的人;
  • Skill 明明裝好了,說了相關的話 Claude 卻不用它的人;
  • 反過來,Skill 在不相干的任務裏亂跳出來的人;
  • 看到「skill descriptions were shortened to fit the skills context budget」這類提示不知道什麼意思的人。

結論先說

  1. 觸發只看 description。智能體啟動時只加載每個 Skill 的名稱和描述,任務和描述對得上才會去讀正文。正文寫得再好,描述沒寫清「什麼時候用」也不會被調用。
  2. 簡單任務本來就不一定觸發。官方說明:智能體一般只在自己搞不定的任務上才去查 Skill,「讀一下這個 PDF」這種一步就能完成的請求,即使描述完全匹配也可能不觸發。
  3. 不觸發先做四件事:確認 Skill 被發現了、檢查 YAML 有沒有寫錯、看描述有沒有被截斷、把描述改成「Use this skill when...」的寫法。
  4. 亂觸發就把描述寫窄,或者關掉自動調用、只留手動調用。
  5. 想認真調,就做測試集:約 20 條問句,一半該觸發一半不該觸發,每條跑 3 次算觸發率。

一、觸發是怎麼發生的

三步:

  1. 啟動時,智能體讀入所有 Skill 的 name 和 description;
  2. 你提出任務,智能體把任務和這些描述做匹配;
  3. 匹配上了,才把對應的 SKILL.md 全文讀進上下文並照着做。

官方的說法是:description 承擔了觸發的全部責任。

二、description 的四條寫法

來自《Optimizing skill descriptions》:

原則說明
用祈使句寫「Use this skill when...」,而不是「This skill does...」。智能體在判斷要不要行動,就直接告訴它何時行動
寫用戶意圖,不寫實現描述用戶想達成什麼,而不是 Skill 內部用了什麼庫、分幾步
寧可主動一點明確列出適用場景,包括用戶沒有直接說出領域名稱的情況
保持簡短幾句話到一小段;規範的硬上限是 1024 字符

官方給的修改前後對比:

yaml
# 修改前
description: Process CSV files.

# 修改後
description: >
  Analyze CSV and tabular data files — compute summary statistics,
  add derived columns, generate charts, and clean messy data. Use this
  skill when the user has a CSV, TSV, or Excel file and wants to
  explore, transform, or visualize the data, even if they don't
  explicitly mention "CSV" or "analysis."

改後的版本對「做什麼」更具體(統計、派生列、圖表、清洗),對「什麼時候用」更寬(CSV、TSV、Excel,沒提關鍵詞也算)。

三、Claude Code 裏的排查步驟

1. Skill 有沒有被發現

官方列的檢查順序:

  1. 描述裏有沒有用戶自然會說的關鍵詞;
  2. 問一句 What skills are available?,看它在不在列表裏(或者輸入 /skills 查看);
  3. 換一種更貼近描述的說法再試;
  4. 直接輸入 /技能名 手動調用,確認 Skill 本身能工作。

如果手動調用正常、自動不觸發,問題就在描述或下面兩項。

2. YAML 有沒有寫錯

官方說明:frontmatter 的 YAML 格式不對時,Claude Code 仍會加載正文,但元數據是空的,於是 /技能名 能用,Claude 卻沒有描述可以匹配。

  • 加 --debug 啟動可以看到解析錯誤;
  • 批量檢查可以運行 claude plugin validate .claude/skills(項目 Skill)或 claude plugin validate ~/.claude/skills(個人 Skill)。官方註明這個用法需要較新的版本。

3. 描述是不是被截斷了

Skill 裝得多時會出現這個問題。官方文檔的說明:

  • Claude Code 把所有 Skill 的名稱和描述組成一份清單放進上下文。清單始終包含每個 Skill 的名稱,但總量超出預算時會丟掉一部分描述,被丟掉描述的 Skill 就失去了用來匹配的關鍵詞;
  • 預算按模型上下文窗口的 1% 計算;
  • 超出時,從你最少調用的 Skill 開始丟,常用的保留完整描述;
  • 每個 Skill 的 description 加 when_to_use 合計最多顯示 1,536 個字符,超出部分截掉。

怎麼查、怎麼辦:

目的做法
看清單佔了多少上下文、誰佔得最多運行 /doctor
找出裝了卻從沒用過的 Skill運行 /skill-doctor
調大預算設定 skillListingBudgetFraction(例如 0.02 即 2%),或用環境變量 SLASH_COMMAND_TOOL_CHAR_BUDGET 指定固定字符數
給其他 Skill 騰地方在 skillOverrides 裏把優先級低的設為 "name-only",只列名稱不列描述
從源頭壓縮精簡描述,把最關鍵的使用場景寫在最前面

4. 是不是被設成了只能手動調用

frontmatter 裏有 disable-model-invocation: true 的 Skill,描述不會進入上下文,Claude 不會自動調用,只能你輸入 /技能名。從別處拿來的 Skill 不觸發時,記得看一眼這個字段。

四、亂觸發怎麼辦

官方給的兩條:

  1. 把描述寫得更具體。可以寫明這個 Skill 不做什麼,或者說清它和相鄰能力的邊界;
  2. 只想手動調用,就加 disable-model-invocation: true。有副作用的 Skill(部署、發消息)官方本來就建議這樣設。

五、一開始照着做、後來不照做了

這是另一類問題,官方按原因分了三種:

現象原因與辦法
跳過了一條必須每次都遵守的規則Skill 裏的話是「請求」,不是保證。把規則改成 Hook,由 Claude Code 在每次事件發生時強制執行
跳過了一條需要判斷着用的建議Skill 內容只在調用時加載一次,之後不會重讀。把措辭改成覆蓋整個任務的說法,例如「每次修改後都運行測試」而不是「運行測試」
對話被壓縮過壓縮後每個 Skill 只保留開頭的一部分。重新調用一次即可恢復,並把最重要的說明放在 SKILL.md 靠前的位置

六、認真調:做一套觸發測試

官方推薦的方法,適合要發佈給別人用的 Skill。

1. 準備約 20 條問句,8–10 條應該觸發、8–10 條不應該觸發:

json
[
  { "query": "I've got a spreadsheet in ~/data/q4_results.xlsx with revenue in col C and expenses in col D — can you add a profit margin column and highlight anything under 10%?", "should_trigger": true },
  { "query": "whats the quickest way to convert this json file to yaml", "should_trigger": false }
]
  • 應該觸發的:說法要多樣,有正式有隨意,有的直接點名領域、有的只描述需求;最有價值的是「Skill 能幫上忙,但從字面看不明顯」的問句;
  • 不應該觸發的:要選擦肩而過的。和 Skill 共用關鍵詞、實際需要的卻是別的東西。「今天天氣怎麼樣」這種毫不相干的問句測不出任何東西;
  • 寫得像真人:帶文件路徑、帶背景(「領導讓我……」)、帶口語和偶爾的錯別字。

2. 每條跑 3 次,算觸發率。 模型的行為不是確定的,同一句話這次觸發下次可能不觸發。觸發率高於 0.5 算觸發。

3. 留出驗證集。 約 60% 用來發現問題、指導修改,約 40% 只用來檢驗修改是否真的通用,避免把描述調成只對這幾句話有效。

4. 循環修改,官方的提醒:

  • 該觸發的沒觸發:描述太窄,擴大範圍;
  • 不該觸發的觸發了:描述太寬,加上邊界;
  • 不要把失敗問句裏的詞直接塞進描述,那是過擬合,要找出這些問句代表的那一類情況;
  • 改了幾輪沒進展,就換一種句式結構重寫,而不是繼續小修小補;
  • 一般五輪足夠。再不行,問題可能在測試問句本身。

5. 選驗證集通過率最高的那一版,不一定是最後一版。

官方提到,Anthropic 的 skill-creator 技能可以把這套流程自動跑完;Skill 放在插件裏時,Claude Code 還可以用 claude plugin eval 配合 tool_used: Skill 評分器批量測試。

常見問題

Q:有沒有「觸發詞」這種東西?

沒有固定的觸發詞機制。智能體是拿任務和描述做語義匹配,描述裏出現用戶常說的詞會有幫助,但不是命中某個詞就一定觸發。

Q:description 用中文寫可以嗎?

規範沒有語言限制。按你平時提需求的語言來寫,更容易對得上。

Q:其他工具也是這樣嗎?

基於 SKILL.md 的工具觸發原理相同:先看描述,再讀正文。具體的查看命令和截斷規則各家不同,例如 Codex 的文檔寫的是清單最多佔上下文窗口的 2%,裝得多時先縮短描述。

Q:個人 Skill 文件夾不見了?

Claude Code 文檔有專門一節:先看 ~/.claude/skills/.trash/ 裏有沒有,把文件夾移回 ~/.claude/skills/ 即可恢復;回收目錄裏的內容預設 30 天后清理。

參考資料

  • Optimizing skill descriptions(Agent Skills 官方):https://agentskills.io/skill-creation/optimizing-descriptions
  • Extend Claude with skills · Troubleshooting(Claude Code 官方):https://code.claude.com/docs/en/skills
  • Extend Claude Code(Claude Code 官方):https://code.claude.com/docs/en/features-overview
需要開通或續費?Claude Pro 充值 →

Nathaniel 的更多內容

  1. 01

    AI 學習路線:零基礎從哪開始,6 個階段、每階段該讀哪幾篇教學(2026)

    AI 學習路線怎麼走?給零基礎的人一條循序漸進的路徑:先選一個助手用順,再學提問,再用進日常工作,按需學做圖做影片,守住私隱與版權,最後進階自動化和編程。每個階段都配了本站對應的教學。

    其他 AI 工具0
  2. 02

    AI 瀏覽器有哪些:Perplexity Comet、Opera Neon、Dia、Brave Leo 與 Edge Copilot 的官方說法對照

    AI 瀏覽器有哪些?按官方頁面整理 Perplexity Comet、Opera Neon、Dia、Brave Leo 和 Edge 裏的 Copilot:官方自述的定位、支持的平台、免費還是訂閱,以及 Gemini、Claude 的 Chrome 方案和已停用的 ChatGPT Atlas。

    其他 AI 工具0
  3. 03

    即夢國際版 Dreamina 是什麼:官方站入口、能生成什麼、免費積分和模型(2026)

    即夢國際版 Dreamina 是什麼?官方站是 dreamina.capcut.com,是一個圖片、影片和數字人一體的 AI 創作平台。按官方首頁和 FAQ 講:能生成什麼、免費用戶每天 120 積分、列出的 Seedance 與 Seedream 模型,以及和國內即夢怎麼區分。

    其他 AI 工具0
  4. 04

    Kimi K3 Coding Plan 是什麼、怎麼用:Kimi Code 會員、模型 ID、套餐價格和額度規則

    Kimi K3 Coding Plan 是什麼?按 Kimi 官方文檔核對:官方現在叫 Kimi Code,是 Kimi 會員權益裏的編程服務,Plus 及以上才有;講 K3 等模型 ID、國內新套餐價格、三種客戶端、第三方工具接入和額度規則。

    Kimi0
  5. 05

    DeepSeek V4 Pro 和 Flash 的區別與 API 價格:官方價格頁逐項對照(高峰與空閒時段)

    DeepSeek V4 Pro 和 Flash 有什麼區別、API 怎麼收費?按 DeepSeek 官方價格頁(2026-10-19 查詢)列出兩個模型的版本、上下文、圖像理解、並發和每百萬 token 價格,說明高峰與空閒時段的計費差別和舊模型名怎麼處理。

    其他 AI 工具0
  6. 06

    GPT-6 Pro(Astra)怎麼用、哪些套餐有:怎麼選到 Pro 檔、用量限制和 Pro 三檔價格

    GPT-6 Pro(Astra)怎麼用、哪些套餐有?按 OpenAI 幫助中心核對:聊天裏 Pro 檔給 Pro 100、Pro 200、Business 和 Enterprise;Plus 在 Work 和 Codex 裏含 Astra。講怎麼選到、用量上限和官方 Pro 價格。

    ChatGPT0

同產品的其他教學

  1. 01

    Claude Pro 和 Max 的區別:用量、價格、Fable 模型和每月 API 額度怎麼選

    Claude Pro 和 Max 有什麼區別?按官方定價頁和幫助中心核對:Max 有 5x、20x 兩檔用量,Pro 與 Max 在價格、Fable 模型、每月 API 額度和計費週期上的差別,以及什麼情況下 Pro 夠用、什麼情況下該升 Max。

    Claude0
  2. 02

    Claude 登入不了、用不了、打不開怎麼辦:按官方幫助中心逐條排查

    Claude 無法登入、無法使用、無法打開怎麼辦?按官方幫助中心的順序排查:收不到登入電郵、登入報錯、Google 登入出問題、系統繁忙、額度用完、官方故障,以及所在地區是否在官方支持名單裏。

    Claude0
  3. 03

    Claude 怎麼註冊:官方註冊流程、手機驗證要求,以及提示無法註冊時官方怎麼說

    Claude 怎麼註冊?打開 claude.ai,用 Google 或電郵登入連結創建帳號,再用支持地區的手機號收短訊驗證碼。講清官方的註冊條件、手機驗證的限制,以及收不到驗證碼、號碼被用過多次時官方的處理辦法。

    Claude0
  4. 04

    Claude 怎麼用:新手入門,從打開聊天到寫出第一個好問題

    Claude 怎麼用?按官方幫助中心整理的新手路徑:在網頁、桌面版或手機 App 打開聊天,像對同事一樣寫需求,用輸入框的「+」和「/」找功能,點模型名換模型,免費版有每 5 小時重置的上限。

    Claude0
  5. 05

    Claude 怎麼設定成中文:介面語言、回答語言和語音語言分別怎麼設

    Claude 怎麼設定中文?官方幫助中心列出的 11 種介面語言裏目前沒有中文,但 Claude 會用你提問的語言回答,直接用中文問即可;想固定用中文,可在設定的 Instructions for Claude 裏寫一句。語音模式的語言要單獨選。

    Claude0
  6. 06

    AI圖片放大與高清修復:Midjourney、ChatGPT、Gemini 怎麼出高解像度圖

    AI 生成的圖不夠清晰,想打印或做大圖怎麼辦?本文按官方文檔講清 Midjourney 的 Subtle / Creative 放大和 HD 直出、Gemini 與 ChatGPT 的解像度選項、Flow 的影片放大,以及「AI 放大會編造細節」的注意事項。

    Gemini其他 AI 工具0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~