Loading...
    • 開發者指南
    • API 參考
    • MCP
    • 資源
    • 發行說明
    Search...
    ⌘K
    入門
    Claude 簡介快速開始
    模型與定價
    模型概覽選擇模型Claude 4.6 新功能遷移指南模型棄用定價
    使用 Claude 構建
    功能概覽使用 Messages API處理停止原因提示詞最佳實踐
    上下文管理
    上下文視窗壓縮上下文編輯
    功能
    提示詞快取延伸思考自適應思考思考力度串流訊息批次處理引用多語言支援Token 計數嵌入視覺PDF 支援Files API搜尋結果結構化輸出
    工具
    概覽如何實作工具使用細粒度工具串流Bash 工具程式碼執行工具程式化工具呼叫電腦使用工具文字編輯器工具網頁擷取工具網頁搜尋工具記憶工具工具搜尋工具
    Agent Skills
    概覽快速開始最佳實踐企業級 Skills透過 API 使用 Skills
    Agent SDK
    概覽快速開始TypeScript SDKTypeScript V2(預覽版)Python SDK遷移指南
    API 中的 MCP
    MCP 連接器遠端 MCP 伺服器
    第三方平台上的 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    提示詞工程
    概覽提示詞產生器使用提示詞範本提示詞改進器清晰直接使用範例(多範例提示)讓 Claude 思考(CoT)使用 XML 標籤賦予 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
    Agent SDK

    快速入門

    開始使用 Python 或 TypeScript Agent SDK 來建構能自主運作的 AI 代理

    使用 Agent SDK 來建構一個能讀取您的程式碼、找出錯誤並修復它們的 AI 代理,完全無需手動介入。

    您將完成的事項:

    1. 使用 Agent SDK 設定專案
    2. 建立一個包含有錯誤程式碼的檔案
    3. 執行一個能自動找出並修復錯誤的代理

    先決條件

    • Node.js 18+ 或 Python 3.10+
    • 一個 Anthropic 帳戶(在此註冊)

    設定

    1. 1

      建立專案資料夾

      為此快速入門建立一個新目錄:

      mkdir my-agent && cd my-agent

      對於您自己的專案,您可以從任何資料夾執行 SDK;預設情況下,它將可以存取該目錄及其子目錄中的檔案。

    2. 2

      安裝 SDK

      為您的語言安裝 Agent SDK 套件:

    3. 3

      設定您的 API 金鑰

      從 Claude Console 取得 API 金鑰,然後在您的專案目錄中建立一個 .env 檔案:

      ANTHROPIC_API_KEY=your-api-key

      SDK 也支援透過第三方 API 提供者進行驗證:

      • Amazon Bedrock:設定 CLAUDE_CODE_USE_BEDROCK=1 環境變數並配置 AWS 憑證
      • Google Vertex AI:設定 CLAUDE_CODE_USE_VERTEX=1 環境變數並配置 Google Cloud 憑證
      • Microsoft Azure:設定 CLAUDE_CODE_USE_FOUNDRY=1 環境變數並配置 Azure 憑證

      詳情請參閱 Bedrock、Vertex AI 或 Azure AI Foundry 的設定指南。

      除非事先獲得批准,Anthropic 不允許第三方開發者為其產品(包括基於 Claude Agent SDK 建構的代理)提供 claude.ai 登入或速率限制。請改用本文件中描述的 API 金鑰驗證方法。

    建立一個有錯誤的檔案

    本快速入門將引導您建構一個能找出並修復程式碼中錯誤的代理。首先,您需要一個包含一些故意錯誤的檔案供代理修復。在 my-agent 目錄中建立 utils.py 並貼上以下程式碼:

    def calculate_average(numbers):
        total = 0
        for num in numbers:
            total += num
        return total / len(numbers)
    
    def get_user_name(user):
        return user["name"].upper()

    這段程式碼有兩個錯誤:

    1. calculate_average([]) 會因為除以零而崩潰
    2. get_user_name(None) 會因為 TypeError 而崩潰

    建構一個能找出並修復錯誤的代理

    如果您使用 Python SDK,請建立 agent.py,或者使用 TypeScript 則建立 agent.ts:

    import asyncio
    from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage
    
    async def main():
        # 代理迴圈:在 Claude 工作時串流訊息
        async for message in query(
            prompt="Review utils.py for bugs that would cause crashes. Fix any issues you find.",
            options=ClaudeAgentOptions(
                allowed_tools=["Read", "Edit", "Glob"],  # Claude 可以使用的工具
                permission_mode="acceptEdits"            # 自動批准檔案編輯
            )
        ):
            # 列印人類可讀的輸出
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if hasattr(block, "text"):
                        print(block.text)              # Claude 的推理
                    elif hasattr(block, "name"):
                        print(f"Tool: {block.name}")   # 正在呼叫的工具
            elif isinstance(message, ResultMessage):
                print(f"Done: {message.subtype}")      # 最終結果
    
    asyncio.run(main())

    這段程式碼有三個主要部分:

    1. query:建立代理迴圈的主要進入點。它回傳一個非同步迭代器,因此您使用 async for 在 Claude 工作時串流訊息。完整 API 請參閱 Python 或 TypeScript SDK 參考文件。

    2. prompt:您希望 Claude 做什麼。Claude 會根據任務決定使用哪些工具。

    3. options:代理的配置。此範例使用 allowedTools 將 Claude 限制為 Read、Edit 和 Glob,並使用 permissionMode: "acceptEdits" 自動批准檔案變更。其他選項包括 systemPrompt、mcpServers 等。查看 Python 或 TypeScript 的所有選項。

    async for 迴圈會在 Claude 思考、呼叫工具、觀察結果並決定下一步時持續執行。每次迭代都會產生一個訊息:Claude 的推理、工具呼叫、工具結果或最終結果。SDK 處理編排(工具執行、上下文管理、重試),因此您只需消費串流即可。當 Claude 完成任務或遇到錯誤時,迴圈結束。

    迴圈內的訊息處理會過濾出人類可讀的輸出。如果不進行過濾,您會看到原始訊息物件,包括系統初始化和內部狀態,這對除錯很有用,但在其他情況下會很雜亂。

    此範例使用串流來即時顯示進度。如果您不需要即時輸出(例如,用於背景作業或 CI 管線),您可以一次收集所有訊息。詳情請參閱串流與單次模式。

    執行您的代理

    您的代理已準備就緒。使用以下命令執行它:

    執行後,檢查 utils.py。您會看到處理空列表和空使用者的防禦性程式碼。您的代理自主地:

    1. 讀取 utils.py 以理解程式碼
    2. 分析 邏輯並識別會導致崩潰的邊界情況
    3. 編輯 檔案以添加適當的錯誤處理

    這就是 Agent SDK 的不同之處:Claude 直接執行工具,而不是要求您來實作它們。

    如果您看到「API key not found」,請確保您已在 .env 檔案或 shell 環境中設定了 ANTHROPIC_API_KEY 環境變數。更多幫助請參閱完整疑難排解指南。

    嘗試其他提示

    現在您的代理已設定好,試試一些不同的提示:

    • "Add docstrings to all functions in utils.py"
    • "Add type hints to all functions in utils.py"
    • "Create a README.md documenting the functions in utils.py"

    自訂您的代理

    您可以透過更改選項來修改代理的行為。以下是一些範例:

    添加網路搜尋功能:

    options=ClaudeAgentOptions(
        allowed_tools=["Read", "Edit", "Glob", "WebSearch"],
        permission_mode="acceptEdits"
    )

    給 Claude 一個自訂系統提示:

    options=ClaudeAgentOptions(
        allowed_tools=["Read", "Edit", "Glob"],
        permission_mode="acceptEdits",
        system_prompt="You are a senior Python developer. Always follow PEP 8 style guidelines."
    )

    在終端機中執行命令:

    options=ClaudeAgentOptions(
        allowed_tools=["Read", "Edit", "Glob", "Bash"],
        permission_mode="acceptEdits"
    )

    啟用 Bash 後,試試:"Write unit tests for utils.py, run them, and fix any failures"

    關鍵概念

    工具 控制您的代理可以做什麼:

    工具代理可以做什麼
    Read、Glob、Grep唯讀分析
    Read、Edit、Glob分析和修改程式碼
    Read、Edit、Bash、Glob、Grep完全自動化

    權限模式 控制您想要多少人工監督:

    模式行為使用場景
    acceptEdits自動批准檔案編輯,其他操作會詢問受信任的開發工作流程
    bypassPermissions無需提示即可執行CI/CD 管線、自動化
    default需要 canUseTool 回呼來處理批准自訂批准流程

    上面的範例使用 acceptEdits 模式,它會自動批准檔案操作,使代理可以在無互動提示的情況下執行。如果您想提示使用者進行批准,請使用 default 模式並提供一個 canUseTool 回呼 來收集使用者輸入。如需更多控制,請參閱權限。

    後續步驟

    現在您已經建立了第一個代理,了解如何擴展其功能並根據您的使用場景進行調整:

    • 權限:控制您的代理可以做什麼以及何時需要批准
    • Hooks:在工具呼叫前後執行自訂程式碼
    • Sessions:建構維持上下文的多輪代理
    • MCP 伺服器:連接到資料庫、瀏覽器、API 和其他外部系統
    • 託管:將代理部署到 Docker、雲端和 CI/CD
    • 範例代理:查看完整範例:電子郵件助理、研究代理等

    Was this page helpful?