Skill 目錄結構怎麼組織:scripts、references、assets 與漸進式披露,腳本怎麼寫

Skill 文件夾裏除了 SKILL.md 還能放什麼?按 Agent Skills 官方規範講清 scripts、references、assets 三個目錄的分工、漸進式披露的三層加載、文件引用的寫法,以及給智能體調用的腳本要滿足哪些要求。

NNathaniel bigo··原創首發·AI 輔助撰寫
9 分鐘讀完
資料核對於 2026-10-11 · 依據官方文檔與公開資料整理 免費帳號 帳號
本文根據 Agent Skills 開放規範(agentskills.io)的《Specification》《Using scripts in skills》《Best practices for skill creators》整理,資料核對於 2026-10-11。SKILL.md 本身的寫法見《SKILL.md 怎麼寫》。

適用於誰

  • 搜「skill 目錄結構」「claude skill 目錄結構」「skill 如何調用腳本」「skill python 腳本」的人;
  • SKILL.md 越寫越長,想拆分又不知道怎麼拆的人;
  • 想讓 Skill 帶上腳本、模板,讓智能體直接執行而不是每次重寫的人。

結論先說

  1. 一個 Skill 就是一個文件夾,必須有 SKILL.md,另外約定了三個可選目錄:scripts/(可執行代碼)、references/(按需閱讀的文檔)、assets/(模板和靜態資源)。
  2. 加載分三層:啟動時只讀所有 Skill 的名稱和描述(每個約 100 token);啟用時讀整份 SKILL.md;其餘文件用到時才讀。這就是「漸進式披露」。
  3. SKILL.md 控制在 500 行以內,詳細資料拆到單獨的文件,並寫清「什麼情況下讀哪個文件」。
  4. 文件引用用相對路徑、只引一層,不要讓參考文件再去引用別的參考文件。
  5. 給智能體用的腳本不能有交互式輸入。這是硬性要求:智能體在非交互的終端裏運行,等待輸入的腳本會一直卡住。

一、官方約定的目錄結構

skill-name/
├── SKILL.md          # 必需:元數據 + 說明
├── scripts/          # 可選:可執行代碼
├── references/       # 可選:文檔
├── assets/           # 可選:模板、資源
└── ...               # 其他文件或目錄

規範說明,除了 SKILL.md 之外可以放任何文件和目錄,上面三個只是推薦的組織方式。

目錄放什麼官方的要求或建議
scripts/智能體可以運行的代碼自包含或寫清依賴;報錯訊息要有用;妥善處理邊界情況
references/需要時才讀的補充文檔,如詳細技術參考、表單模板、按領域拆分的資料每個文件聚焦一個主題;文件越小,佔用上下文越少
assets/靜態資源:文檔模板、配置模板、示意圖、查找表、schema較長的輸出模板放這裏,在 SKILL.md 裏引用

二、漸進式披露:三層各放什麼

規範原文給出的三層:

  1. 元數據(約 100 token):name 和 description,啟動時為所有 Skill 加載;
  2. 說明(建議少於 5000 token):SKILL.md 正文,啟用該 Skill 時加載;
  3. 資源(按需):scripts/、references/、assets/ 裏的文件,只在需要時加載。

由此得出的寫法:

  • 每次執行都要用到的核心步驟,放 SKILL.md;
  • 只在某些情況下才需要的細節(某個接口的錯誤碼錶、某一類文檔的特殊處理),放 references/;
  • 「注意事項」留在 SKILL.md 裏。官方的理由是:這類不明顯的坑,智能體在遇到之前並不知道自己需要去讀,放進單獨文件很可能讀不到。

拆出去的文件要告訴智能體何時去讀。官方的對比很清楚:

  • 有用的寫法:「如果接口返回非 200 狀態碼,閱讀 references/api-errors.md」;
  • 沒用的寫法:「詳見 references/ 目錄」。

三、怎麼引用文件

在 SKILL.md 裏引用其他文件時,用從 Skill 根目錄出發的相對路徑:

markdown
See [the reference guide](references/REFERENCE.md) for details.

Run the extraction script:
scripts/extract.py

規範的兩條要求:

  • 只引用一層:從 SKILL.md 直接指向目標文件;
  • 避免層層嵌套的引用鏈:A 引 B、B 再引 C,智能體很容易半路停下。

代碼塊裏的腳本路徑同樣相對於 Skill 根目錄,因為智能體是在那裏執行命令的;這條約定在 references/*.md 裏也適用。

四、不寫腳本:直接調用現成的包

如果已有的工具包就能完成任務,可以在 SKILL.md 裏直接寫命令,不需要 scripts/ 目錄。官方列出了幾種能在運行時自動解決依賴的方式:

工具來自說明
uvx隨 uv 提供在隔離環境裏運行 Python 包,緩存積極,需要單獨安裝 uv
pipx可通過系統包管理器安裝同樣在隔離環境裏運行 Python 包,是較成熟的替代方案
npx隨 Node.js 的 npm 提供按需下載並運行 npm 包,不需要額外安裝
bunx隨 Bun 提供Bun 環境裏對應 npx 的命令
deno run隨 Deno 提供訪問文件或網絡需要顯式的權限參數
go runGo 自帶直接編譯並運行 Go 包

官方示例(npx 與 pipx):

bash
npx eslint@9 --fix .
pipx run 'black==24.10.0' .

三條建議:

  • 鎖定版本,這樣命令的行為不會隨時間變化;
  • 在 SKILL.md 裏寫明前置條件(如「需要 Node.js 18+」),運行環境層面的要求寫進 frontmatter 的 compatibility 字段;
  • 命令複雜到很難一次寫對時,改成腳本。只帶幾個參數的調用適合直接寫命令。

五、把腳本放進 scripts/

先在 SKILL.md 裏列出有哪些腳本,讓智能體知道它們存在:

markdown
## Available scripts

- **`scripts/validate.sh`** — Validates configuration files
- **`scripts/process.py`** — Processes input data

再在流程裏寫明怎麼運行:

bash
bash scripts/validate.sh "$INPUT_FILE"
python3 scripts/process.py --input results.json

讓腳本自帶依賴聲明。 這樣智能體一條命令就能運行,不需要單獨的清單文件和安裝步驟。Python 用 PEP 723 的內聯元數據,官方示例:

python
# /// script
# dependencies = [
#   "beautifulsoup4",
# ]
# ///

from bs4 import BeautifulSoup

然後用 uv run scripts/extract.py 運行,uv 會創建隔離環境並安裝聲明的依賴。官方還給了 Deno(npm: 導入)、Bun(導入路徑裏寫版本)、Ruby(bundler/inline)的同類寫法。

什麼時候值得寫腳本。 官方的判斷方法是看執行記錄:如果智能體每次都在重新實現同一段邏輯(畫圖、解析某種格式、校驗輸出),就把它寫成一個經過驗證的腳本放進 scripts/。

六、給智能體用的腳本,接口怎麼設計

智能體靠讀標準輸出和標準錯誤來決定下一步,所以腳本的接口設計直接影響成功率。

1. 不要有交互式提示(硬性要求)。 所有輸入通過命令行參數、環境變量或標準輸入傳入。缺參數時應該立刻報錯並給出用法,而不是停下來等輸入:

Error: --env is required. Options: development, staging, production.
Usage: python scripts/deploy.py --env staging --tag v1.2.3

2. 用 --help 說明用法。 這是智能體了解腳本接口的主要途徑,寫清簡介、參數和示例,保持簡短。

3. 報錯訊息要能指導下一步。 說明哪裏錯了、期望什麼、收到了什麼。「Error: invalid input」這種資訊只會白白浪費一輪。

4. 輸出用結構化格式。 JSON、CSV、TSV 優於對齊的純文本。數據走標準輸出,進度和警告走標準錯誤。

5. 其他建議

  • 冪等:智能體可能重試,「不存在則創建」比「重複就報錯」安全;
  • 對含糊的輸入直接拒絕,不要猜;
  • 有破壞性的操作提供 --dry-run 預覽,並考慮要求顯式的確認參數;
  • 不同失敗類型用不同的退出碼,並寫進 --help;
  • 控制輸出體積:很多工具會截斷過長的輸出,預設只輸出摘要,需要更多時再用參數翻頁。

常見問題

Q:三個目錄名必須叫這個嗎?

規範把它們稱為「推薦的約定」,不是強制。但沿用約定的名字,別人和其他工具更容易看懂。

Q:腳本會自動執行嗎?

不會無條件執行。智能體按 SKILL.md 的說明決定何時運行,能否運行還要看所用工具的權限設定。也正因為 Skill 可以帶腳本,安裝別人的 Skill 前要先看一遍 scripts/ 裏的內容,見《MCP 伺服器怎麼選、裝之前怎麼審》裏的同類檢查思路。

Q:模板放 SKILL.md 裏還是 assets/ 裏?

短模板直接寫在 SKILL.md;較長的、或只在某些情況下才用的模板放 assets/,在 SKILL.md 裏引用,這樣不用時不佔上下文。

Q:參考文件可以很多嗎?

可以,按需加載意味着沒被讀到的文件不佔上下文。前提是 SKILL.md 裏寫清了每個文件對應什麼情況。

參考資料

  • Specification(Agent Skills 官方規範):https://agentskills.io/specification
  • Using scripts in skills:https://agentskills.io/skill-creation/using-scripts
  • Best practices for skill creators:https://agentskills.io/skill-creation/best-practices
需要開通或續費?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 條評論

登入 後參與評論

還沒有評論,來搶沙發~