Loading...
    • 開發者指南
    • API 參考
    • MCP
    • 資源
    • 發行說明
    Search...
    ⌘K
    開始使用
    Claude 簡介快速開始
    模型與定價
    模型概覽選擇模型Claude 4.5 新功能遷移至 Claude 4.5模型棄用定價
    使用 Claude 構建
    功能概覽使用 Messages API上下文窗口提示詞最佳實踐
    功能
    提示詞快取上下文編輯擴展思考努力串流消息批次處理引用多語言支援Token 計數嵌入視覺PDF 支援Files API搜尋結果結構化輸出
    工具
    概覽如何實現工具使用細粒度工具串流Bash 工具代碼執行工具程式化工具調用計算機使用工具文字編輯器工具網頁擷取工具網頁搜尋工具記憶體工具工具搜尋工具
    Agent Skills
    概覽快速開始最佳實踐使用 API 的 Skills
    Agent SDK
    概覽快速開始TypeScript SDKTypeScript V2 (預覽)Python SDK遷移指南
    串流輸入處理權限使用鉤子控制執行會話管理檔案檢查點SDK 中的結構化輸出託管 Agent SDK安全部署 AI agents修改系統提示詞SDK 中的 MCP自訂工具SDK 中的子 agentsSDK 中的斜線命令SDK 中的 Agent Skills追蹤成本和使用量待辦事項清單SDK 中的外掛程式
    API 中的 MCP
    MCP 連接器遠端 MCP 伺服器
    第三方平台上的 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    提示詞工程
    概覽提示詞生成器使用提示詞範本提示詞改進器清晰直接使用範例 (多次提示)讓 Claude 思考 (CoT)使用 XML 標籤給 Claude 一個角色 (系統提示詞)預填 Claude 的回應鏈接複雜提示詞長上下文提示擴展思考提示
    測試與評估
    定義成功標準開發測試案例使用評估工具降低延遲
    加強防護欄
    減少幻覺增加輸出一致性緩解越獄串流拒絕減少提示詞洩露保持 Claude 的角色
    管理和監控
    Admin API 概覽使用量和成本 APIClaude Code Analytics API
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    指南

    SDK 中的代理技能

    使用 Claude 代理 SDK 中的代理技能擴展 Claude 的專業功能

    概述

    代理技能使用專業功能擴展 Claude,Claude 會在相關時自動調用這些技能。技能被打包為 SKILL.md 文件,包含說明、描述和可選的支持資源。

    有關技能的全面信息,包括優勢、架構和編寫指南,請參閱代理技能概述。

    技能如何與 SDK 配合使用

    使用 Claude 代理 SDK 時,技能具有以下特點:

    1. 定義為文件系統工件:在特定目錄(.claude/skills/)中創建為 SKILL.md 文件
    2. 從文件系統加載:技能從配置的文件系統位置加載。您必須指定 settingSources(TypeScript)或 setting_sources(Python)以從文件系統加載技能
    3. 自動發現:加載文件系統設置後,技能元數據在啟動時從用戶和項目目錄中發現;觸發時加載完整內容
    4. 由模型調用:Claude 根據上下文自主選擇何時使用它們
    5. 通過 allowed_tools 啟用:將 "Skill" 添加到您的 allowed_tools 以啟用技能

    與子代理(可以以編程方式定義)不同,技能必須創建為文件系統工件。SDK 不提供用於註冊技能的編程 API。

    默認行為:默認情況下,SDK 不加載任何文件系統設置。要使用技能,您必須在選項中明確配置 settingSources: ['user', 'project'](TypeScript)或 setting_sources=["user", "project"](Python)。

    在 SDK 中使用技能

    要在 SDK 中使用技能,您需要:

    1. 在 allowed_tools 配置中包含 "Skill"
    2. 配置 settingSources/setting_sources 以從文件系統加載技能

    配置完成後,Claude 會自動從指定目錄發現技能,並在與用戶請求相關時調用它們。

    import asyncio
    from claude_agent_sdk import query, ClaudeAgentOptions
    
    async def main():
        options = ClaudeAgentOptions(
            cwd="/path/to/project",  # Project with .claude/skills/
            setting_sources=["user", "project"],  # Load Skills from filesystem
            allowed_tools=["Skill", "Read", "Write", "Bash"]  # Enable Skill tool
        )
    
        async for message in query(
            prompt="Help me process this PDF document",
            options=options
        ):
            print(message)
    
    asyncio.run(main())

    技能位置

    根據您的 settingSources/setting_sources 配置,技能從文件系統目錄加載:

    • 項目技能(.claude/skills/):通過 git 與您的團隊共享 - 當 setting_sources 包含 "project" 時加載
    • 用戶技能(~/.claude/skills/):跨所有項目的個人技能 - 當 setting_sources 包含 "user" 時加載
    • 插件技能:與已安裝的 Claude Code 插件捆綁

    創建技能

    技能定義為包含具有 YAML 前置事項和 Markdown 內容的 SKILL.md 文件的目錄。description 字段確定 Claude 何時調用您的技能。

    示例目錄結構:

    .claude/skills/processing-pdfs/
    └── SKILL.md

    有關創建技能的完整指導,包括 SKILL.md 結構、多文件技能和示例,請參閱:

    • Claude Code 中的代理技能:包含示例的完整指南
    • 代理技能最佳實踐:編寫指南和命名約定

    工具限制

    SKILL.md 中的 allowed-tools 前置事項字段僅在直接使用 Claude Code CLI 時受支持。通過 SDK 使用技能時不適用。

    使用 SDK 時,通過查詢配置中的主 allowedTools 選項控制工具訪問。

    要在 SDK 應用程序中限制技能的工具,請使用 allowedTools 選項:

    假設第一個示例中的導入語句在以下代碼片段中。

    options = ClaudeAgentOptions(
        setting_sources=["user", "project"],  # Load Skills from filesystem
        allowed_tools=["Skill", "Read", "Grep", "Glob"]  # Restricted toolset
    )
    
    async for message in query(
        prompt="Analyze the codebase structure",
        options=options
    ):
        print(message)

    發現可用技能

    要查看 SDK 應用程序中可用的技能,只需詢問 Claude:

    options = ClaudeAgentOptions(
        setting_sources=["user", "project"],  # Load Skills from filesystem
        allowed_tools=["Skill"]
    )
    
    async for message in query(
        prompt="What Skills are available?",
        options=options
    ):
        print(message)

    Claude 將根據您當前的工作目錄和已安裝的插件列出可用的技能。

    測試技能

    通過提出與技能描述相匹配的問題來測試技能:

    options = ClaudeAgentOptions(
        cwd="/path/to/project",
        setting_sources=["user", "project"],  # Load Skills from filesystem
        allowed_tools=["Skill", "Read", "Bash"]
    )
    
    async for message in query(
        prompt="Extract text from invoice.pdf",
        options=options
    ):
        print(message)

    如果描述與您的請求相匹配,Claude 會自動調用相關技能。

    故障排除

    找不到技能

    檢查 settingSources 配置:只有在明確配置 settingSources/setting_sources 時才會加載技能。這是最常見的問題:

    # Wrong - Skills won't be loaded
    options = ClaudeAgentOptions(
        allowed_tools=["Skill"]
    )
    
    # Correct - Skills will be loaded
    options = ClaudeAgentOptions(
        setting_sources=["user", "project"],  # Required to load Skills
        allowed_tools=["Skill"]
    )

    有關 settingSources/setting_sources 的更多詳細信息,請參閱 TypeScript SDK 參考或 Python SDK 參考。

    檢查工作目錄:SDK 相對於 cwd 選項加載技能。確保它指向包含 .claude/skills/ 的目錄:

    # Ensure your cwd points to the directory containing .claude/skills/
    options = ClaudeAgentOptions(
        cwd="/path/to/project",  # Must contain .claude/skills/
        setting_sources=["user", "project"],  # Required to load Skills
        allowed_tools=["Skill"]
    )

    有關完整模式,請參閱上面的「在 SDK 中使用技能」部分。

    驗證文件系統位置:

    # Check project Skills
    ls .claude/skills/*/SKILL.md
    
    # Check personal Skills
    ls ~/.claude/skills/*/SKILL.md

    技能未被使用

    檢查技能工具是否已啟用:確認 "Skill" 在您的 allowedTools 中。

    檢查描述:確保它具體且包含相關關鍵字。有關編寫有效描述的指導,請參閱代理技能最佳實踐。

    其他故障排除

    有關一般技能故障排除(YAML 語法、調試等),請參閱 Claude Code 技能故障排除部分。

    相關文檔

    技能指南

    • Claude Code 中的代理技能:包含創建、示例和故障排除的完整技能指南
    • 代理技能概述:概念概述、優勢和架構
    • 代理技能最佳實踐:有效技能的編寫指南
    • 代理技能食譜:示例技能和模板

    SDK 資源

    • SDK 中的子代理:類似的基於文件系統的代理,具有編程選項
    • SDK 中的斜杠命令:用戶調用的命令
    • SDK 概述:一般 SDK 概念
    • TypeScript SDK 參考:完整 API 文檔
    • Python SDK 參考:完整 API 文檔
    • 技能如何與 SDK 配合使用
    • 在 SDK 中使用技能
    • SDK 資源