Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
學會用 Claude,每件事都做得更好
claudeskill-me.com
最新
Subagent 不是更聰明的小 Claude——它解決的是隔離問題,不是能力問題  ·  SKILL.md 到底該寫多長?官方 500 行門檻背後的三層漸進式披露邏輯  ·  XML 標籤怎麼用才對?3 個真實案例對比純文字 Prompt 的差異  ·  MCP 是什麼?一次搞懂「AI 界的 USB-C」,還有怎麼幫 Claude 接上你的第一個外部工具  ·  Claude API 帳單突然變貴?先檢查你有沒有用 Prompt Caching,還有那個悄悄改掉的 TTL  ·  Claude Temperature 參數怎麼設?從 0 到 1,還有那個讓開發者集體踩雷的隱藏限制
skill-library

SKILL.md 到底該寫多長?官方 500 行門檻背後的三層漸進式披露邏輯

30 秒速讀
500 行限制的不是 Skill 能裝多少知識,是每次觸發時第一波湧進上下文的份量。

完整解析 +
01 · 為什麼發生?

如果我的 Skill 內容真的很複雜,硬要塞進 500 行以內會不會反而犧牲說明的完整性?

這個擔心背後其實有個誤解:500 行限制的是本體,不是整個 Skill 能傳達的資訊總量。完整性不需要犧牲,只需要重新分配——把「Claude 每次觸發都一定會用到」的核心邏輯留在本體,把「只有特定情境才需要」的細節移到延伸檔案。

實務上,複雜的 Skill 通常代表它涵蓋了多種使用情境,這種情況下更應該問的是:這些情境是不是描述得太籠統、其實可以拆成幾個各自專精、各自觸發的 Skill?一個 Skill 只做一件事,通常會比一個嘗試涵蓋所有情境的巨型 Skill 觸發得更準確,也更容易維護。

02 · 運作原理是什麼?

多個檔案的 Skill,資料夾結構應該怎麼安排?

常見的慣例是每個 Skill 一個獨立資料夾,內含 SKILL.md 作為主入口,搭配 scripts/(可執行的程式碼,通常設計成小型 CLI 工具)、references/(補充性的背景資料,例如結構描述、速查表)、assets/(範本或輸出時要用到的靜態檔案)幾個子目錄,依內容性質分類。

這個結構背後的邏輯跟三層披露機制是一致的:SKILL.md 負責導覽和高層流程說明,各子目錄放的是「需要時才讀」或「需要時才執行」的內容。連結深度建議只做一層——SKILL.md 直接連到 references/ 底下的檔案,不要讓 references/ 裡的檔案又連到更深一層的檔案,否則會讓 Claude 為了查一個細節要連續跳轉好幾次,反而違背了漸進式披露原本想節省的成本。

03 · 如何應用

description 欄位除了寫清楚功能,還有什麼實務上容易忽略的重點?

最容易被忽略的是:description 應該同時包含「這個 Skill 做什麼」和「什麼情況該用它」兩個部分,而不只是功能描述。舉例來說,只寫「處理 Git commit 訊息」比較籠統,寫成「當使用者要為已 staged 的變更撰寫 commit 訊息時使用」則同時涵蓋了功能與觸發情境,Claude 比對使用者請求時能更準確判斷。

另一個容易忽略的重點是具體關鍵字。使用者實際打字時很少會用開發文件式的正式用語,反而更常用口語化的說法。如果 description 裡能涵蓋使用者實際可能講出口的字詞和情境描述,觸發準確率會比只用術語堆疊的描述明顯提高。這也是為什麼一個 Skill 只做一件事會比較好觸發——功能單一,description 才能寫得夠具體。

04 · 我該怎麼做?

我現在手上已經有好幾個超過 500 行的 Skill.md 在用,需要立刻回頭重寫嗎?

不需要恐慌性地立刻全部重寫,但值得排入優先順序去檢視。判斷是否值得優先處理的訊號是:這個 Skill 觸發的頻率高不高、以及觸發時是否經常伴隨著其他任務同時進行。如果一個超長的 Skill 觸發頻率很高,代表它每次都在稀釋掉其他上下文內容,優先度應該最高;如果是很少觸發的 Skill,即使超過 500 行,急迫性也相對較低。

重寫時建議的順序是:先把 description 檢查一遍,確認觸發判斷本身沒問題;接著把本體內容按「核心邏輯」與「情境性細節」分類,情境性細節先移到一個暫時的 reference.md;最後再回頭確認本體是否已經自然瘦身到合理範圍。與其一次全面重構,這種漸進式的拆分方式風險更低,也更容易在每一步都確認 Skill 仍然正常運作。

完整內容 +

寫第一個 Skill 的時候,最容易犯的錯誤不是寫得太短,而是寫得太長——把所有可能用到的細節、每一種例外情況、每一段參考資料全部塞進同一個 Skill.md,想著「反正寫進去總沒有壞處」。但這個直覺剛好和 Skill 的設計原理相反。

Anthropic 官方文件對 SKILL.md 的長度給出了明確門檻:本體建議控制在 500 行以內,超過就應該拆分到獨立檔案。這不是隨口給的建議數字,背後對應的是 Skill 架構本身的三層漸進式披露(Progressive Disclosure)機制——理解這三層怎麼運作,才會知道「該寫多長」這個問題其實問錯了方向。

三層披露:不是「一次讀完」,是「分階段讀」

Skill 的載入過程分成三個階段,每個階段讀取的內容量差異很大。第一層是啟動時,Claude 只讀取每個 Skill 的 YAML frontmatter——也就是 namedescription 兩個欄位,這一層每個 Skill 只佔用幾十個 token,即使系統裝了幾十個 Skill,啟動時的負擔也很小。

第二層是觸發時:當使用者的請求跟某個 Skill 的 description 描述的情境相符,Claude 才會把該 Skill 完整的 SKILL.md 本體讀進上下文。這一層才是「500 行」門檻要管的範圍——本體越長,觸發後一次性湧入的內容越多,稀釋掉上下文裡其他真正相關的資訊。

第三層是延伸讀取:如果 SKILL.md 內部連結了其他檔案(例如 forms.mdreference.md),Claude 只有在實際需要那部分細節時才會去讀,不會因為 Skill 被觸發就把所有延伸檔案一次讀完。

500 行門檻管的是第二層,不是整個 Skill

這裡最容易被誤解的地方:500 行限制的是 SKILL.md 本體,不是這個 Skill 能包含的知識總量上限。以官方文件舉例的 PDF 處理 Skill 為例,SKILL.md 本體只保留核心邏輯與最常用的操作方式,表單填寫這種較少用到、細節又多的內容,被移到獨立的 forms.md,只有使用者實際要求填表單時,Claude 才會去讀那份檔案。

換句話說,一個 Skill 底下能承載的知識總量幾乎沒有上限,限制的只是「每次觸發時,第一波湧進上下文的份量」。把這個機制想成一本組織良好的手冊——先給目錄,再給對應章節,最後才是附錄裡的詳細規格,讀者不需要為了查一個小細節,把整本書從頭讀到尾。

description 欄位比本體內容更關鍵

三層披露的第一層完全靠 description 欄位運作——Claude 決定要不要觸發某個 Skill,比對的依據就是這段描述文字跟使用者請求的語意是否相符。如果 description 寫得籠統(例如只寫「處理 PDF 相關工作」),Claude 很可能在使用者明明需要這個 Skill 的情境下,判斷不出該觸發它;反過來,如果寫得夠具體、包含使用者實際可能講出口的關鍵字和情境描述,觸發的準確率會明顯提高。

這也是為什麼「SKILL.md 該寫多長」不是第一個該問的問題——如果 description 寫得不夠精準,本體再怎麼精簡都沒有意義,因為 Claude 根本不會走到讀取本體那一步。

什麼時候該拆檔案,什麼時候不用

實務上的判斷原則很直接:SKILL.md 本體應該只放高層邏輯與最常用的操作步驟,任何一個段落如果篇幅超過幾百字、或是屬於「大部分情況用不到,但少數情況需要完整細節」的內容(例如特定錯誤碼的處理方式、進階參數設定),就是拆到獨立檔案的訊號。拆分後的檔案建議只做一層連結深度,避免 Claude 為了查一個細節,要連續跳轉好幾層文件。

這對你寫 Skill 的方式有什麼影響

下次動手寫 SKILL.md 之前,先把 description 寫到位——具體到能讓 Claude 一眼判斷「這個請求該不該觸發我」。接著把本體內容控制在核心邏輯與高頻操作範圍內,任何細節性、低頻率但份量大的內容,果斷移到獨立檔案。500 行不是硬性天花板,而是一個提醒:如果寫到這個量還沒拆檔案,代表本體已經開始承擔它不該承擔的角色。

資料來源:Skill authoring best practices - Claude Platform DocsEquipping agents for the real world with Agent Skills - Anthropic
圖解
Skill 三層漸進式披露機制500 行門檻只管理第二層(觸發時載入本體),不限制 Skill 能承載的知識總量Skill Progressive Disclosure — 3 LayersLayer 1: Startupname + descriptiononly, all Skills~dozens of tokens eachLayer 2: Triggerfull SKILL.md bodyloads into contextrecommended < 500 linesLayer 3: Extendedlinked files readonly when neededreferences/, scripts/, assets/What the 500-line limit governsOnly Layer 2 — how much floods into context on triggerNOT the total knowledge a Skill can carry (Layer 3 is unlimited)Claude Skill Me · claudeskill-me.com
歡迎截圖分享,轉載請註明來源
提問
請至少輸入 10 個字
相關文章
Subagent 不是更聰明的小 Claude——它解決的是隔離問題,不是能力問題
advanced · 08/31
Skill 跟 Subagent 該怎麼分工?不是二選一,是誰負責「知道」、誰負責「執行」
skill-library · 08/25
Superpowers 框架評測:一個連「不合格的程式碼直接刪掉」都寫進規則的 TDD 方法論
reviews · 08/15
CLAUDE.md、Rules、Skill、Hook、Subagent 該用哪個?Anthropic 官方七種指令方法決策架構
advanced · 08/15
相關新聞
更多相關主題