概述
Agent Skills 使用專門功能擴展 Claude,Claude 會在相關時自動調用這些功能。Skills 被打包為SKILL.md 文件,包含說明、描述和可選的支持資源。
有關 Skills 的全面信息,包括優勢、架構和編寫指南,請參閱 Agent Skills 概述。
Skills 如何與 SDK 配合使用
使用 Claude Agent SDK 時,Skills 的特點是:- 定義為文件系統工件:在特定目錄(
.claude/skills/)中創建為SKILL.md文件 - 從文件系統加載:Skills 從由
settingSources(TypeScript)或setting_sources(Python)控制的文件系統位置加載 - 自動發現:加載文件系統設置後,在啟動時從用戶和項目目錄發現 Skill 元數據;觸發時加載完整內容
- 由模型調用:Claude 根據上下文自動選擇何時使用它們
- 通過
skills選項進行篩選:發現的 Skills 默認啟用。傳遞 Skill 名稱列表、"all"或[]來控制會話中可用的 Skills
Skills 通過文件系統設置源發現。使用默認
query() 選項時,SDK 加載用戶和項目源,因此 ~/.claude/skills/、<cwd>/.claude/skills/ 和 <cwd> 的任何父目錄(直到存儲庫根目錄)中的 .claude/skills/ 中的 Skills 可用。如果您明確設置 settingSources,請包含 'user' 或 'project' 以保持 Skill 發現,或使用 plugins 選項 從特定路徑加載 Skills。在 SDK 中使用 Skills
在query() 上設置 skills 選項以控制會話中可用的 Skills。省略時,發現的 Skills 啟用且 Skill 工具可用,與 CLI 行為匹配。傳遞 "all" 以啟用每個發現的 Skill,傳遞 Skill 名稱列表以僅啟用那些,或傳遞 [] 以禁用全部。設置 skills 時,SDK 會自動將 Skill 工具新增至 allowedTools。如果您也傳遞明確的 tools 列表,請在該列表中包含 "Skill",以便 Claude 可以叫用 skills。
配置後,Claude 自動從檔案系統發現 Skills 並在與使用者請求相關時叫用它們。
SKILL.md 中的 name 欄位或 Skill 的目錄名稱匹配。對於外掛提供的 Skills,使用 plugin:skill。
skills 選項是內容篩選器,不是沙箱。未列出的 Skills 對模型隱藏並被 Skill 工具拒絕,但它們的檔案仍在磁碟上,可透過 Read 和 Bash 存取。
Skill 位置
Skills 根據您的settingSources/setting_sources 配置從文件系統目錄加載:
- 項目 Skills(
.claude/skills/):通過 git 與您的團隊共享 - 當setting_sources包含"project"時加載 - 用戶 Skills(
~/.claude/skills/):跨所有項目的個人 Skills - 當setting_sources包含"user"時加載 - 插件 Skills:與已安裝的 Claude Code 插件捆綁
創建 Skills
Skills 定義為包含具有 YAML frontmatter 和 Markdown 內容的SKILL.md 文件的目錄。description 字段確定 Claude 何時調用您的 Skill。
示例目錄結構:
- Claude Code 中的 Agent Skills:包含示例和故障排除的完整指南
- Agent Skills 最佳實踐:編寫指南和命名約定
- Agent Skills Cookbook:示例 Skills 和模板
工具限制
SKILL.md 中的
allowed-tools frontmatter 字段僅在直接使用 Claude Code CLI 時受支持。通過 SDK 使用 Skills 時不適用。使用 SDK 時,通過查詢配置中的主 allowedTools 選項控制工具訪問。allowedTools 預先批准特定工具。沒有 canUseTool 回調時,列表中沒有的任何內容都被拒絕:
假設第一個示例中的導入語句在以下代碼片段中。
發現可用的 Skills
要查看 SDK 應用程序中可用的 Skills,只需詢問 Claude:測試 Skills
通過提出與其描述相匹配的問題來測試 Skills:故障排除
找不到 Skills
檢查 settingSources 配置:Skills 通過user 和 project 設置源發現。如果您明確設置 settingSources/setting_sources 並省略這些源,Skills 不會加載:
settingSources/setting_sources 的更多詳細信息,請參閱 TypeScript SDK 參考 或 Python SDK 參考。
檢查工作目錄:SDK 從 cwd 選項中的 .claude/skills/ 以及每個父目錄直到存儲庫根目錄加載 Skills。確保 cwd 指向包含 .claude/skills/ 的目錄或其下方,在同一存儲庫內:
Skill 未被使用
檢查skills 選項:如果您傳遞了 skills 列表,確認 Skill 的名稱已包含。傳遞 [] 會禁用所有 Skills。
檢查描述:確保它具體且包含相關關鍵字。有關編寫有效描述的指導,請參閱 Agent Skills 最佳實踐。
其他故障排除
有關一般 Skills 故障排除(YAML 語法、調試等),請參閱 Claude Code Skills 故障排除部分。相關文檔
Skills 指南
- Claude Code 中的 Agent Skills:包含創建、示例和故障排除的完整 Skills 指南
- Agent Skills 概述:概念概述、優勢和架構
- Agent Skills 最佳實踐:有效 Skills 的編寫指南
- Agent Skills Cookbook:示例 Skills 和模板
SDK 資源
- SDK 中的子代理:類似的基於文件系統的代理,具有編程選項
- SDK 中的斜杠命令:用戶調用的命令
- SDK 概述:一般 SDK 概念
- TypeScript SDK 參考:完整 API 文檔
- Python SDK 參考:完整 API 文檔