Loading...
    • 開發者指南
    • API 參考
    • MCP
    • 資源
    • 發行說明
    Search...
    ⌘K
    第一步
    Claude 簡介快速開始
    模型與定價
    模型概覽選擇模型Claude 4.5 的新功能遷移至 Claude 4.5模型棄用定價
    使用 Claude 構建
    功能概覽使用 Messages API上下文窗口提示詞最佳實踐
    功能
    提示詞快取上下文編輯擴展思考努力串流消息批次處理引用多語言支援Token 計數嵌入視覺PDF 支援Files API搜尋結果結構化輸出Google Sheets 附加元件
    工具
    概覽如何實現工具使用Token 高效工具使用細粒度工具串流Bash 工具程式碼執行工具程式化工具呼叫電腦使用工具文字編輯器工具網頁擷取工具網頁搜尋工具記憶體工具工具搜尋工具
    Agent 技能
    概覽快速開始最佳實踐在 API 中使用技能
    Agent SDK
    概覽TypeScript SDKPython SDK遷移指南
    指南
    串流輸入處理權限工作階段管理SDK 中的結構化輸出託管 Agent SDK修改系統提示詞SDK 中的 MCP自訂工具SDK 中的子 AgentSDK 中的斜線命令SDK 中的 Agent 技能追蹤成本和使用量待辦事項清單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...

    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
    功能

    使用延伸思考進行構建

    延伸思考為 Claude 提供增強的推理能力,用於複雜任務,同時在提供最終答案之前提供對其逐步思考過程的不同透明度級別。
    • Extended thinking 如何運作
    • 如何使用 extended thinking
    • Extended thinking 與工具使用
    • Claude Opus 4.5 中的思考塊保留
    • Claude Opus 4.5 中的思考區塊保留

    延伸思考為 Claude 提供增強的推理能力,用於複雜任務,同時在提供最終答案之前提供對其逐步思考過程的不同透明度級別。

    延伸思考為 Claude 提供增強的推理能力,用於複雜任務,同時在提供最終答案之前提供對其逐步思考過程的不同透明度級別。

    支援的模型

    以下模型支援延伸思考:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (已棄用)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    API 行為在 Claude Sonnet 3.7 和 Claude 4 模型之間有所不同,但 API 形狀保持完全相同。

    如需更多資訊,請參閱不同模型版本之間的思考差異。

    延伸思考為 Claude 提供增強的推理能力,用於複雜任務,同時在提供最終答案之前提供對其逐步思考過程的不同透明度級別。

    支援的模型

    以下模型支援延伸思考:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (已棄用)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    API 行為在 Claude Sonnet 3.7 和 Claude 4 模型之間有所不同,但 API 形狀保持完全相同。

    如需更多資訊,請參閱不同模型版本之間的思考差異。

    延伸思考的工作原理

    當延伸思考開啟時,Claude 會建立 thinking 內容區塊,其中輸出其內部推理。Claude 在製作最終回應之前會納入此推理的見解。

    API 回應將包含 thinking 內容區塊,後面跟著 text 內容區塊。

    以下是預設回應格式的範例:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    如需更多關於延伸思考回應格式的資訊,請參閱訊息 API 參考。

    延伸思考為 Claude 提供增強的推理能力,用於複雜任務,同時在提供最終答案之前提供對其逐步思考過程的不同透明度級別。

    支援的模型

    以下模型支援延伸思考:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (已棄用)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    API 行為在 Claude Sonnet 3.7 和 Claude 4 模型之間有所不同,但 API 形狀保持完全相同。

    如需更多資訊,請參閱不同模型版本之間的思考差異。

    延伸思考的工作原理

    當延伸思考開啟時,Claude 會建立 thinking 內容區塊,其中輸出其內部推理。Claude 在製作最終回應之前會納入此推理的見解。

    API 回應將包含 thinking 內容區塊,後面跟著 text 內容區塊。

    以下是預設回應格式的範例:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    如需更多關於延伸思考回應格式的資訊,請參閱訊息 API 參考。

    如何使用延伸思考

    以下是在訊息 API 中使用延伸思考的範例:

    若要開啟延伸思考,請新增 thinking 物件,將 type 參數設定為 enabled,並將 budget_tokens 設定為延伸思考的指定權杖預算。

    budget_tokens 參數決定了 Claude 被允許用於其內部推理過程的最大權杖數。在 Claude 4 模型中,此限制適用於完整思考權杖,而不適用於摘要輸出。較大的預算可以透過為複雜問題啟用更徹底的分析來改善回應品質,儘管 Claude 可能不會使用整個分配的預算,特別是在 32k 以上的範圍內。

    budget_tokens 必須設定為小於 max_tokens 的值。但是,當使用與工具交錯的思考時,您可以超過此限制,因為權杖限制變成您的整個上下文視窗(200k 權杖)。

    延伸思考為 Claude 提供增強的推理能力,用於複雜任務,同時在提供最終答案之前提供對其逐步思考過程的不同透明度級別。

    支援的模型

    以下模型支援延伸思考:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (已棄用)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    API 行為在 Claude Sonnet 3.7 和 Claude 4 模型之間有所不同,但 API 形狀保持完全相同。

    如需更多資訊,請參閱不同模型版本之間的思考差異。

    延伸思考的工作原理

    當延伸思考開啟時,Claude 會建立 thinking 內容區塊,其中輸出其內部推理。Claude 在製作最終回應之前會納入此推理的見解。

    API 回應將包含 thinking 內容區塊,後面跟著 text 內容區塊。

    以下是預設回應格式的範例:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    如需更多關於延伸思考回應格式的資訊,請參閱訊息 API 參考。

    如何使用延伸思考

    以下是在訊息 API 中使用延伸思考的範例:

    若要開啟延伸思考,請新增 thinking 物件,將 type 參數設定為 enabled,並將 budget_tokens 設定為延伸思考的指定權杖預算。

    budget_tokens 參數決定了 Claude 被允許用於其內部推理過程的最大權杖數。在 Claude 4 模型中,此限制適用於完整思考權杖,而不適用於摘要輸出。較大的預算可以透過為複雜問題啟用更徹底的分析來改善回應品質,儘管 Claude 可能不會使用整個分配的預算,特別是在 32k 以上的範圍內。

    budget_tokens 必須設定為小於 max_tokens 的值。但是,當使用與工具交錯的思考時,您可以超過此限制,因為權杖限制變成您的整個上下文視窗(200k 權杖)。

    摘要思考

    啟用延伸思考後,Claude 4 模型的訊息 API 會傳回 Claude 完整思考過程的摘要。摘要思考提供延伸思考的完整智能優勢,同時防止濫用。

    以下是摘要思考的一些重要考慮事項:

    • 您需要為原始請求產生的完整思考權杖付費,而不是摘要權杖。
    • 計費的輸出權杖計數將不符合您在回應中看到的權杖計數。
    • 思考輸出的前幾行更詳細,提供詳細的推理,特別有助於提示工程目的。
    • 隨著 Anthropic 尋求改進延伸思考功能,摘要行為可能會改變。
    • 摘要化以最小的額外延遲保留 Claude 思考過程的關鍵思想,實現可串流的使用者體驗和從 Claude Sonnet 3.7 到 Claude 4 模型的輕鬆遷移。
    • 摘要化由與您在請求中指定的模型不同的模型處理。思考模型看不到摘要輸出。

    Claude Sonnet 3.7 繼續傳回完整思考輸出。

    在罕見情況下,如果您需要存取 Claude 4 模型的完整思考輸出,請聯絡我們的銷售團隊。

    延伸思考為 Claude 提供增強的推理能力,用於複雜任務,同時在提供最終答案之前提供對其逐步思考過程的不同透明度級別。

    支援的模型

    以下模型支援延伸思考:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (已棄用)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    API 行為在 Claude Sonnet 3.7 和 Claude 4 模型之間有所不同,但 API 形狀保持完全相同。

    如需更多資訊,請參閱不同模型版本之間的思考差異。

    延伸思考的工作原理

    當延伸思考開啟時,Claude 會建立 thinking 內容區塊,其中輸出其內部推理。Claude 在製作最終回應之前會納入此推理的見解。

    API 回應將包含 thinking 內容區塊,後面跟著 text 內容區塊。

    以下是預設回應格式的範例:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    如需更多關於延伸思考回應格式的資訊,請參閱訊息 API 參考。

    如何使用延伸思考

    以下是在訊息 API 中使用延伸思考的範例:

    若要開啟延伸思考,請新增 thinking 物件,將 type 參數設定為 enabled,並將 budget_tokens 設定為延伸思考的指定權杖預算。

    budget_tokens 參數決定了 Claude 被允許用於其內部推理過程的最大權杖數。在 Claude 4 模型中,此限制適用於完整思考權杖,而不適用於摘要輸出。較大的預算可以透過為複雜問題啟用更徹底的分析來改善回應品質,儘管 Claude 可能不會使用整個分配的預算,特別是在 32k 以上的範圍內。

    budget_tokens 必須設定為小於 max_tokens 的值。但是,當使用與工具交錯的思考時,您可以超過此限制,因為權杖限制變成您的整個上下文視窗(200k 權杖)。

    摘要思考

    啟用延伸思考後,Claude 4 模型的訊息 API 會傳回 Claude 完整思考過程的摘要。摘要思考提供延伸思考的完整智能優勢,同時防止濫用。

    以下是摘要思考的一些重要考慮事項:

    • 您需要為原始請求產生的完整思考權杖付費,而不是摘要權杖。
    • 計費的輸出權杖計數將不符合您在回應中看到的權杖計數。
    • 思考輸出的前幾行更詳細,提供詳細的推理,特別有助於提示工程目的。
    • 隨著 Anthropic 尋求改進延伸思考功能,摘要行為可能會改變。
    • 摘要化以最小的額外延遲保留 Claude 思考過程的關鍵思想,實現可串流的使用者體驗和從 Claude Sonnet 3.7 到 Claude 4 模型的輕鬆遷移。
    • 摘要化由與您在請求中指定的模型不同的模型處理。思考模型看不到摘要輸出。

    Claude Sonnet 3.7 繼續傳回完整思考輸出。

    在罕見情況下,如果您需要存取 Claude 4 模型的完整思考輸出,請聯絡我們的銷售團隊。

    串流思考

    您可以使用伺服器發送事件 (SSE) 串流延伸思考回應。

    啟用延伸思考的串流時,您會透過 thinking_delta 事件接收思考內容。

    如需更多關於透過訊息 API 進行串流的文件,請參閱串流訊息。

    以下是如何處理帶有思考的串流:

    在主控台中試試

    串流輸出範例:

    event: message_start
    data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-5", "stop_reason": null, "stop_sequence": null}}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "Let me solve this step by step:\n\n1. First break down 27 * 453"}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}}
    
    // Additional thinking deltas...
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}
    
    event: content_block_stop
    data: {"type": "content_block_stop", "index": 0}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "27 * 453 = 12,231"}}
    
    // Additional text deltas...
    
    event: content_block_stop
    data: {"type": "content_block_stop", "index": 1}
    
    event: message_delta
    data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}
    
    event: message_stop
    data: {"type": "message_stop"}

    使用啟用思考的串流時,您可能會注意到文字有時以較大的區塊到達,交替進行較小的逐權杖傳遞。這是預期的行為,特別是對於思考內容。

    串流系統需要以批次方式處理內容以獲得最佳效能,這可能導致這種「分塊」傳遞模式,串流事件之間可能會有延遲。我們正在持續努力改進此體驗,未來的更新將專注於使思考內容串流更順暢。

    Extended thinking 為 Claude 提供了增強的推理能力,用於處理複雜任務,同時在提供最終答案之前提供對其逐步思考過程的不同透明度級別。

    支援的模型

    Extended thinking 在以下模型中受支援:

    • Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
    • Claude Sonnet 4 (claude-sonnet-4-20250514)
    • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (已棄用)
    • Claude Haiku 4.5 (claude-haiku-4-5-20251001)
    • Claude Opus 4.5 (claude-opus-4-5-20251101)
    • Claude Opus 4.1 (claude-opus-4-1-20250805)
    • Claude Opus 4 (claude-opus-4-20250514)

    API 行為在 Claude Sonnet 3.7 和 Claude 4 模型之間有所不同,但 API 形狀保持完全相同。

    如需更多資訊,請參閱不同模型版本之間的思考差異。

    Extended thinking 如何運作

    啟用 extended thinking 時,Claude 會建立 thinking 內容區塊,其中輸出其內部推理。Claude 在製作最終回應之前會納入此推理中的見解。

    API 回應將包括 thinking 內容區塊,後面跟著 text 內容區塊。

    以下是預設回應格式的範例:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    如需更多關於 extended thinking 回應格式的資訊,請參閱 Messages API 參考。

    如何使用 extended thinking

    以下是在 Messages API 中使用 extended thinking 的範例:

    若要啟用 extended thinking,請新增 thinking 物件,將 type 參數設定為 enabled,並將 budget_tokens 設定為 extended thinking 的指定代幣預算。

    budget_tokens 參數決定了 Claude 被允許用於其內部推理過程的最大代幣數。在 Claude 4 模型中,此限制適用於完整思考代幣,而不適用於摘要輸出。較大的預算可以透過為複雜問題啟用更徹底的分析來改善回應品質,儘管 Claude 可能不會使用整個分配的預算,特別是在 32k 以上的範圍內。

    budget_tokens 必須設定為小於 max_tokens 的值。但是,使用交錯思考與工具時,您可以超過此限制,因為代幣限制變成您的整個上下文視窗(200k 代幣)。

    摘要思考

    啟用 extended thinking 時,Claude 4 模型的 Messages API 會傳回 Claude 完整思考過程的摘要。摘要思考提供了 extended thinking 的完整智能優勢,同時防止濫用。

    以下是摘要思考的一些重要考慮事項:

    • 您需要為原始請求生成的完整思考代幣付費,而不是摘要代幣。
    • 計費的輸出代幣計數將不符合您在回應中看到的代幣計數。
    • 思考輸出的前幾行更詳細,提供詳細的推理,特別有助於提示工程目的。
    • 隨著 Anthropic 尋求改進 extended thinking 功能,摘要行為可能會改變。
    • 摘要保留了 Claude 思考過程的關鍵想法,同時增加了最少的延遲,實現了可串流的使用者體驗,並便於從 Claude Sonnet 3.7 遷移到 Claude 4 模型。
    • 摘要由與您在請求中指定的模型不同的模型處理。思考模型看不到摘要輸出。

    Claude Sonnet 3.7 繼續傳回完整思考輸出。

    在罕見情況下,如果您需要存取 Claude 4 模型的完整思考輸出,請聯絡我們的銷售團隊。

    串流思考

    您可以使用伺服器發送事件 (SSE) 串流 extended thinking 回應。

    啟用 extended thinking 的串流時,您會透過 thinking_delta 事件接收思考內容。

    如需更多關於透過 Messages API 進行串流的文件,請參閱串流訊息。

    以下是如何處理思考串流的方式:

    在主控台中試試

    範例串流輸出:

    event: message_start
    data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-5", "stop_reason": null, "stop_sequence": null}}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "Let me solve this step by step:\n\n1. First break down 27 * 453"}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}}
    
    // Additional thinking deltas...
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}
    
    event: content_block_stop
    data: {"type": "content_block_stop", "index": 0}
    
    event: content_block_start
    data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}
    
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "27 * 453 = 12,231"}}
    
    // Additional text deltas...
    
    event: content_block_stop
    data: {"type": "content_block_stop", "index": 1}
    
    event: message_delta
    data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}
    
    event: message_stop
    data: {"type": "message_stop"}

    使用啟用思考的串流時,您可能會注意到文字有時以較大的區塊到達,交替進行較小的逐代幣傳遞。這是預期的行為,特別是對於思考內容。

    串流系統需要以批次處理內容以獲得最佳效能,這可能導致這種「分塊」傳遞模式,串流事件之間可能有延遲。我們正在持續努力改進此體驗,未來的更新將專注於使思考內容串流更順暢。

    Extended thinking 與工具使用

    Extended thinking 可以與工具使用一起使用,允許 Claude 透過工具選擇和結果處理進行推理。

    使用 extended thinking 與工具使用時,請注意以下限制:

    1. 工具選擇限制:思考工具使用僅支援 tool_choice: {"type": "auto"} (預設) 或 tool_choice: {"type": "none"}。使用 tool_choice: {"type": "any"} 或 tool_choice: {"type": "tool", "name": "..."} 將導致錯誤,因為這些選項強制工具使用,與 extended thinking 不相容。

    2. 保留思考區塊:在工具使用期間,您必須將 thinking 區塊傳回 API 以供最後的助手訊息使用。將完整的未修改區塊傳回 API 以維持推理連續性。

    在對話中切換思考模式

    您無法在助手回合中間切換思考,包括在工具使用迴圈期間。整個助手回合必須在單一思考模式中運作:

    • 如果啟用思考,最終助手回合必須以思考區塊開始。
    • 如果停用思考,最終助手回合不得包含任何思考區塊

    從模型的角度來看,工具使用迴圈是助手回合的一部分。助手回合在 Claude 完成其完整回應之前不會完成,這可能包括多個工具呼叫和結果。

    例如,此序列都是單一助手回合的一部分:

    User: "What's the weather in Paris?"
    Assistant: [thinking] + [tool_use: get_weather]
    User: [tool_result: "20°C, sunny"]
    Assistant: [text: "The weather in Paris is 20°C and sunny"]

    儘管有多個 API 訊息,工具使用迴圈在概念上是一個連續助手回應的一部分。

    常見錯誤情景

    您可能會遇到此錯誤:

    Expected `thinking` or `redacted_thinking`, but found `tool_use`.
    When `thinking` is enabled, a final `assistant` message must start
    with a thinking block (preceding the lastmost set of `tool_use` and
    `tool_result` blocks).

    這通常發生在以下情況:

    1. 您在工具使用序列期間停用了思考
    2. 您想再次啟用思考
    3. 您的最後助手訊息包含工具使用區塊但沒有思考區塊

    實用指南

    ✗ 無效:在工具使用後立即切換思考

    User: "What's the weather?"
    Assistant: [tool_use] (thinking disabled)
    User: [tool_result]
    // Cannot enable thinking here - still in the same assistant turn

    ✓ 有效:先完成助手回合

    User: "What's the weather?"
    Assistant: [tool_use] (thinking disabled)
    User: [tool_result]
    Assistant: [text: "It's sunny"] 
    User: "What about tomorrow?" (thinking disabled)
    Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)

    最佳實踐:在每個回合開始時規劃您的思考策略,而不是嘗試在中途切換。

    切換思考模式也會使提示快取對訊息歷史記錄無效。如需更多詳細資訊,請參閱 Extended thinking 與提示快取 部分。

    在對話中切換思考模式

    您無法在助手回應中途切換思考,包括在工具使用迴圈期間。整個助手回應必須在單一思考模式中運作:

    • 如果思考已啟用,最終的助手回應必須以思考區塊開始。
    • 如果思考已停用,最終的助手回應不得包含任何思考區塊

    從模型的角度來看,工具使用迴圈是助手回應的一部分。助手回應直到 Claude 完成其完整回應(可能包括多個工具呼叫和結果)才會完成。

    例如,此序列都是單一助手回應的一部分:

    User: "What's the weather in Paris?"
    Assistant: [thinking] + [tool_use: get_weather]
    User: [tool_result: "20°C, sunny"]
    Assistant: [text: "The weather in Paris is 20°C and sunny"]

    儘管有多個 API 訊息,但工具使用迴圈在概念上是一個連續助手回應的一部分。

    常見錯誤情景

    您可能會遇到此錯誤:

    Expected `thinking` or `redacted_thinking`, but found `tool_use`.
    When `thinking` is enabled, a final `assistant` message must start
    with a thinking block (preceding the lastmost set of `tool_use` and
    `tool_result` blocks).

    這通常發生在以下情況:

    1. 您在工具使用序列期間停用了思考
    2. 您想再次啟用思考
    3. 您的最後一個助手訊息包含工具使用區塊但沒有思考區塊

    實用指南

    ✗ 無效:在工具使用後立即切換思考

    User: "What's the weather?"
    Assistant: [tool_use] (thinking disabled)
    User: [tool_result]
    // Cannot enable thinking here - still in the same assistant turn

    ✓ 有效:先完成助手回應

    User: "What's the weather?"
    Assistant: [tool_use] (thinking disabled)
    User: [tool_result]
    Assistant: [text: "It's sunny"] 
    User: "What about tomorrow?" (thinking disabled)
    Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)

    最佳實踐:在每個回應開始時規劃您的思考策略,而不是嘗試在中途切換。

    切換思考模式也會使訊息歷史的提示快取失效。如需更多詳細資訊,請參閱使用提示快取的延伸思考部分。

    保留思考區塊

    在工具使用期間,您必須將 thinking 區塊傳回 API,並且必須將完整的未修改區塊傳回 API。這對於維持模型的推理流程和對話完整性至關重要。

    雖然您可以從先前的 assistant 角色回應中省略 thinking 區塊,但我們建議對任何多回合對話始終將所有思考區塊傳回 API。API 將:

    • 自動篩選提供的思考區塊
    • 使用必要的相關思考區塊來保留模型的推理
    • 僅對顯示給 Claude 的區塊的輸入令牌進行計費

    在對話期間切換思考模式時,請記住整個助手回應(包括工具使用迴圈)必須在單一思考模式中運作。如需更多詳細資訊,請參閱在對話中切換思考模式。

    當 Claude 呼叫工具時,它正在暫停其回應的構建以等待外部資訊。當工具結果返回時,Claude 將繼續構建該現有回應。這需要在工具使用期間保留思考區塊,原因有幾個:

    1. 推理連續性:思考區塊捕捉了導致工具請求的 Claude 的逐步推理。當您發佈工具結果時,包括原始思考可確保 Claude 能夠從中斷的地方繼續其推理。

    2. 上下文維護:雖然工具結果在 API 結構中顯示為使用者訊息,但它們是連續推理流程的一部分。保留思考區塊在多個 API 呼叫中維持此概念流程。如需有關上下文管理的更多資訊,請參閱我們的上下文視窗指南。

    重要:提供 thinking 區塊時,連續 thinking 區塊的整個序列必須與模型在原始請求期間生成的輸出相符;您無法重新排列或修改這些區塊的序列。

    交錯思考

    Claude 4 模型中的擴展思考與工具使用支持交錯思考,這使 Claude 能夠在工具調用之間進行思考,並在接收工具結果後進行更複雜的推理。

    通過交錯思考,Claude 可以:

    • 在決定下一步行動之前,對工具調用的結果進行推理
    • 在推理步驟之間鏈接多個工具調用
    • 根據中間結果做出更細緻的決策

    要啟用交錯思考,請在您的 API 請求中添加 beta 標頭 interleaved-thinking-2025-05-14。

    以下是交錯思考的一些重要考慮事項:

    • 使用交錯思考時,budget_tokens 可以超過 max_tokens 參數,因為它代表一個助手回合內所有思考塊的總預算。
    • 交錯思考僅支持 通過 Messages API 使用的工具。
    • 交錯思考僅支持 Claude 4 模型,需要使用 beta 標頭 interleaved-thinking-2025-05-14。
    • 直接調用 Claude API 允許您在對任何模型的請求中傳遞 interleaved-thinking-2025-05-14,但不會產生任何效果。
    • 在第三方平台上(例如 Amazon Bedrock 和 Vertex AI),如果您將 interleaved-thinking-2025-05-14 傳遞給除 Claude Opus 4.5、Claude Opus 4.1、Opus 4 或 Sonnet 4 之外的任何模型,您的請求將失敗。

    擴展思考與提示緩存

    提示緩存與思考有幾個重要的考慮事項:

    擴展思考任務通常需要超過 5 分鐘才能完成。考慮使用 1 小時緩存持續時間,以在較長的思考會話和多步驟工作流中保持緩存命中。

    思考塊上下文移除

    • 來自先前回合的思考塊會從上下文中移除,這可能會影響緩存斷點
    • 在繼續進行工具使用的對話時,思考塊會被緩存,並在從緩存讀取時計為輸入令牌
    • 這造成了一個權衡:雖然思考塊在視覺上不消耗上下文窗口空間,但在緩存時仍然計入您的輸入令牌使用量
    • 如果思考被禁用,如果您在當前工具使用回合中傳遞思考內容,請求將失敗。在其他上下文中,傳遞給 API 的思考內容會被忽略

    緩存失效模式

    • 思考參數的更改(啟用/禁用或預算分配)會使消息緩存斷點失效
    • 交錯思考會放大緩存失效,因為思考塊可以在多個工具調用之間發生
    • 系統提示和工具儘管思考參數更改或塊移除,仍保持緩存

    雖然思考塊會因緩存和上下文計算而被移除,但在繼續進行工具使用的對話時必須保留,特別是使用交錯思考時。

    使用提示詞快取的延伸思考

    提示詞快取與思考有幾個重要的考慮事項:

    延伸思考任務通常需要超過 5 分鐘才能完成。考慮使用1 小時快取持續時間來在較長的思考會話和多步驟工作流程中維持快取命中。

    思考區塊上下文移除

    • 來自先前回合的思考區塊會從上下文中移除,這可能會影響快取斷點
    • 當繼續使用工具的對話時,思考區塊會被快取,並在從快取讀取時計為輸入令牌
    • 這造成了一個權衡:雖然思考區塊在視覺上不會消耗上下文視窗空間,但在快取時仍會計入您的輸入令牌使用量
    • 如果思考被禁用,如果您在目前工具使用回合中傳遞思考內容,請求將失敗。在其他情況下,傳遞給 API 的思考內容會被忽略

    快取失效模式

    • 思考參數的變更(啟用/禁用或預算分配)會使訊息快取斷點失效
    • 交錯思考會放大快取失效,因為思考區塊可能出現在多個工具呼叫之間
    • 儘管思考參數變更或區塊移除,系統提示詞和工具仍保持快取

    雖然思考區塊會因快取和上下文計算而被移除,但在繼續使用工具的對話時必須保留,特別是使用交錯思考時。

    了解思考區塊快取行為

    使用延伸思考與工具時,思考區塊會表現出特定的快取行為,影響令牌計數:

    運作方式:

    1. 只有當您發出包含工具結果的後續請求時,才會進行快取
    2. 發出後續請求時,先前的對話歷史記錄(包括思考區塊)可以被快取
    3. 這些快取的思考區塊在從快取讀取時會計為您使用指標中的輸入令牌
    4. 當包含非工具結果的使用者區塊時,所有先前的思考區塊都會被忽略並從上下文中移除

    詳細範例流程:

    請求 1:

    User: "What's the weather in Paris?"

    回應 1:

    [thinking_block_1] + [tool_use block 1]

    請求 2:

    User: ["What's the weather in Paris?"], 
    Assistant: [thinking_block_1] + [tool_use block 1], 
    User: [tool_result_1, cache=True]

    回應 2:

    [thinking_block_2] + [text block 2]

    請求 2 寫入請求內容的快取(不是回應)。快取包括原始使用者訊息、第一個思考區塊、工具使用區塊和工具結果。

    請求 3:

    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True],
    Assistant: [thinking_block_2] + [text block 2],
    User: [Text response, cache=True]

    對於 Claude Opus 4.5 及更新版本,預設情況下會保留所有先前的思考區塊。對於較舊的模型,由於包含了非工具結果的使用者區塊,所有先前的思考區塊都會被忽略。此請求的處理方式與以下相同:

    User: ["What's the weather in Paris?"],
    Assistant: [tool_use block 1],
    User: [tool_result_1, cache=True],
    Assistant: [text block 2],
    User: [Text response, cache=True]

    關鍵要點:

    • 此快取行為會自動發生,即使沒有明確的 cache_control 標記
    • 無論使用常規思考還是交錯思考,此行為都是一致的

    使用延伸思考的最大令牌和上下文視窗大小

    在較舊的 Claude 模型中(Claude Sonnet 3.7 之前),如果提示令牌和 max_tokens 的總和超過模型的上下文視窗,系統會自動調整 max_tokens 以符合上下文限制。這意味著您可以設定一個大的 max_tokens 值,系統會根據需要自動減少它。

    使用 Claude 3.7 和 4 模型,max_tokens(啟用思考時包括您的思考預算)會被強制執行為嚴格限制。如果提示令牌 + max_tokens 超過上下文視窗大小,系統現在將返回驗證錯誤。

    您可以閱讀我們的上下文視窗指南以進行更深入的探討。

    使用延伸思考的最大令牌和上下文視窗大小

    在較舊的 Claude 模型中(Claude Sonnet 3.7 之前),如果提示令牌和 max_tokens 的總和超過模型的上下文視窗,系統會自動調整 max_tokens 以符合上下文限制。這意味著您可以設定一個大的 max_tokens 值,系統會根據需要自動減少它。

    使用 Claude 3.7 和 4 模型,max_tokens(啟用思考時包括您的思考預算)會被強制執行為嚴格限制。如果提示令牌 + max_tokens 超過上下文視窗大小,系統現在將返回驗證錯誤。

    您可以閱讀我們的上下文視窗指南以進行更深入的探討。

    使用延伸思考的上下文視窗

    使用啟用思考計算上下文視窗使用量時,有一些需要注意的考慮事項:

    • 來自先前回合的思考區塊會被移除,不計入您的上下文視窗
    • 目前回合思考計入該回合的 max_tokens 限制

    下圖演示了啟用延伸思考時的專門令牌管理:

    使用延伸思考的上下文視窗圖表

    有效的上下文視窗計算為:

    context window =
      (current input tokens - previous thinking tokens) +
      (thinking tokens + encrypted thinking tokens + text output tokens)

    我們建議使用令牌計數 API來取得您特定使用案例的準確令牌計數,特別是在使用包含思考的多回合對話時。

    使用延伸思考的最大令牌和上下文視窗大小

    在較舊的 Claude 模型中(Claude Sonnet 3.7 之前),如果提示令牌和 max_tokens 的總和超過模型的上下文視窗,系統會自動調整 max_tokens 以符合上下文限制。這意味著您可以設定一個大的 max_tokens 值,系統會根據需要自動減少它。

    使用 Claude 3.7 和 4 模型,max_tokens(啟用思考時包括您的思考預算)會被強制執行為嚴格限制。如果提示令牌 + max_tokens 超過上下文視窗大小,系統現在將返回驗證錯誤。

    您可以閱讀我們的上下文視窗指南以進行更深入的探討。

    使用延伸思考的上下文視窗

    使用啟用思考計算上下文視窗使用量時,有一些需要注意的考慮事項:

    • 來自先前回合的思考區塊會被移除,不計入您的上下文視窗
    • 目前回合思考計入該回合的 max_tokens 限制

    下圖演示了啟用延伸思考時的專門令牌管理:

    使用延伸思考的上下文視窗圖表

    有效的上下文視窗計算為:

    context window =
      (current input tokens - previous thinking tokens) +
      (thinking tokens + encrypted thinking tokens + text output tokens)

    我們建議使用令牌計數 API來取得您特定使用案例的準確令牌計數,特別是在使用包含思考的多回合對話時。

    使用延伸思考和工具的上下文視窗

    使用延伸思考與工具時,思考區塊必須明確保留並與工具結果一起返回。

    使用延伸思考和工具的有效上下文視窗計算變為:

    context window =
      (current input tokens + previous thinking tokens + tool use tokens) +
      (thinking tokens + encrypted thinking tokens + text output tokens)

    下圖說明了使用延伸思考和工具的令牌管理:

    使用延伸思考和工具的上下文視窗圖表

    使用延伸思考的最大令牌和上下文視窗大小

    在較舊的 Claude 模型中(Claude Sonnet 3.7 之前),如果提示令牌和 max_tokens 的總和超過模型的上下文視窗,系統會自動調整 max_tokens 以符合上下文限制。這意味著您可以設定一個大的 max_tokens 值,系統會根據需要自動減少它。

    使用 Claude 3.7 和 4 模型,max_tokens(啟用思考時包括您的思考預算)會被強制執行為嚴格限制。如果提示令牌 + max_tokens 超過上下文視窗大小,系統現在將返回驗證錯誤。

    您可以閱讀我們的上下文視窗指南以進行更深入的探討。

    使用延伸思考的上下文視窗

    使用啟用思考計算上下文視窗使用量時,有一些需要注意的考慮事項:

    • 來自先前回合的思考區塊會被移除,不計入您的上下文視窗
    • 目前回合思考計入該回合的 max_tokens 限制

    下圖演示了啟用延伸思考時的專門令牌管理:

    使用延伸思考的上下文視窗圖表

    有效的上下文視窗計算為:

    context window =
      (current input tokens - previous thinking tokens) +
      (thinking tokens + encrypted thinking tokens + text output tokens)

    我們建議使用令牌計數 API來取得您特定使用案例的準確令牌計數,特別是在使用包含思考的多回合對話時。

    使用延伸思考和工具的上下文視窗

    使用延伸思考與工具時,思考區塊必須明確保留並與工具結果一起返回。

    使用延伸思考和工具的有效上下文視窗計算變為:

    context window =
      (current input tokens + previous thinking tokens + tool use tokens) +
      (thinking tokens + encrypted thinking tokens + text output tokens)

    下圖說明了使用延伸思考和工具的令牌管理:

    使用延伸思考和工具的上下文視窗圖表

    使用延伸思考管理令牌

    考慮到 Claude 3.7 和 4 模型的上下文視窗和 max_tokens 行為,您可能需要:

    • 更積極地監控和管理您的令牌使用量
    • 隨著提示長度的變化調整 max_tokens 值
    • 可能更頻繁地使用令牌計數端點
    • 注意先前的思考區塊不會在您的上下文視窗中累積

    進行此變更是為了提供更可預測和透明的行為,特別是隨著最大令牌限制大幅增加。

    最大令牌數和上下文窗口大小與擴展思考

    在較舊的 Claude 模型(Claude Sonnet 3.7 之前),如果提示令牌和 max_tokens 的總和超過模型的上下文窗口,系統會自動調整 max_tokens 以適應上下文限制。這意味著您可以設置一個較大的 max_tokens 值,系統會根據需要自動降低它。

    使用 Claude 3.7 和 4 模型,max_tokens(啟用思考時包括您的思考預算)被強制執行為嚴格限制。如果提示令牌 + max_tokens 超過上下文窗口大小,系統現在將返回驗證錯誤。

    您可以閱讀我們的上下文窗口指南以進行更深入的探討。

    擴展思考的上下文窗口

    計算啟用思考的上下文窗口使用情況時,需要注意以下幾點:

    • 來自先前回合的思考塊被剝離,不計入您的上下文窗口
    • 當前回合的思考計入該回合的 max_tokens 限制

    下圖演示了啟用擴展思考時的專門令牌管理:

    擴展思考的上下文窗口圖

    有效的上下文窗口計算如下:

    context window =
      (current input tokens - previous thinking tokens) +
      (thinking tokens + encrypted thinking tokens + text output tokens)

    我們建議使用令牌計數 API來獲得您特定用例的準確令牌計數,特別是在處理包含思考的多回合對話時。

    擴展思考和工具使用的上下文窗口

    使用擴展思考和工具使用時,思考塊必須明確保留並與工具結果一起返回。

    擴展思考和工具使用的有效上下文窗口計算變為:

    context window =
      (current input tokens + previous thinking tokens + tool use tokens) +
      (thinking tokens + encrypted thinking tokens + text output tokens)

    下圖說明了擴展思考和工具使用的令牌管理:

    擴展思考和工具使用的上下文窗口圖

    使用擴展思考管理令牌

    考慮到 Claude 3.7 和 4 模型的上下文窗口和 max_tokens 行為與擴展思考,您可能需要:

    • 更主動地監控和管理您的令牌使用情況
    • 隨著提示長度的變化調整 max_tokens 值
    • 可能更頻繁地使用令牌計數端點
    • 注意先前的思考塊不會在您的上下文窗口中累積

    進行此更改是為了提供更可預測和透明的行為,特別是因為最大令牌限制已大幅增加。

    思考加密

    完整的思考內容被加密並在 signature 字段中返回。此字段用於驗證思考塊是否由 Claude 生成,當傳回 API 時使用。

    只有在使用帶有擴展思考的工具時才嚴格必要發送回思考塊。否則,您可以省略先前回合的思考塊,或者如果您傳回它們,讓 API 為您剝離它們。

    如果發送回思考塊,我們建議按照您接收的方式傳回所有內容以保持一致性並避免潛在問題。

    以下是關於思考加密的一些重要考慮事項:

    • 當流式傳輸回應時,簽名通過 content_block_delta 事件內的 signature_delta 在 content_block_stop 事件之前添加。
    • signature 值在 Claude 4 模型中的長度明顯長於之前的模型。
    • signature 字段是一個不透明字段,不應被解釋或解析 - 它僅用於驗證目的。
    • signature 值在各平台上兼容(Claude API、Amazon Bedrock 和 Vertex AI)。在一個平台上生成的值將與另一個平台兼容。

    思考編輯

    有時 Claude 的內部推理會被我們的安全系統標記。當這種情況發生時,我們會加密 thinking 塊的部分或全部,並將其作為 redacted_thinking 塊返回給您。redacted_thinking 塊在傳回 API 時被解密,允許 Claude 繼續其回應而不會失去上下文。

    在構建使用擴展思考的面向客戶的應用程序時:

    • 注意 redacted_thinking 塊包含不可人類讀取的加密內容
    • 考慮提供簡單的解釋,例如:"Claude 的某些內部推理已因安全原因自動加密。這不會影響回應的質量。"
    • 如果向用戶顯示思考塊,您可以過濾掉 redacted 塊,同時保留正常的思考塊
    • 透明地說明使用擴展思考功能可能偶爾會導致某些推理被加密
    • 實施適當的錯誤處理以優雅地管理 redacted 思考,而不會破壞您的 UI

    以下是顯示正常和 redacted 思考塊的示例:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "redacted_thinking",
          "data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    在您的輸出中看到 redacted 思考塊是預期的行為。該模型仍然可以使用此 redacted 推理來通知其回應,同時維護安全護欄。

    如果您需要在應用程序中測試 redacted 思考處理,您可以使用此特殊測試字符串作為您的提示:ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB

    在多回合對話中將 thinking 和 redacted_thinking 塊傳回 API 時,您必須將完整的未修改塊傳回 API 以用於最後的助手回合。這對於維持模型的推理流程至關重要。我們建議始終將所有思考塊傳回 API。有關更多詳細信息,請參閱上面的保留思考塊部分。

    跨模型版本的思考差異

    Messages API 在 Claude Sonnet 3.7 和 Claude 4 模型之間以不同方式處理思考,主要在編輯和摘要行為方面。

    請參閱下表以了解簡明比較:

    功能Claude Sonnet 3.7Claude 4 模型(Opus 4.5 之前)Claude Opus 4.5 及更高版本
    思考輸出返回完整思考輸出返回摘要思考返回摘要思考
    交錯思考不支持支持 interleaved-thinking-2025-05-14 beta 標頭支持 interleaved-thinking-2025-05-14 beta 標頭
    思考塊保留不跨回合保留不跨回合保留默認保留(啟用緩存優化、令牌節省)

    Claude Opus 4.5 中的思考塊保留

    Claude Opus 4.5 引入了一個新的默認行為:來自先前助手回合的思考塊默認保留在模型上下文中。這與較早的模型不同,較早的模型會移除先前回合的思考塊。

    思考塊保留的好處:

    • 緩存優化:使用工具使用時,保留的思考塊啟用緩存命中,因為它們與工具結果一起傳回並在助手回合中增量緩存,導致多步工作流中的令牌節省
    • 無智能影響:保留思考塊對模型性能沒有負面影響

    重要考慮事項:

    • 上下文使用:長對話將消耗更多上下文空間,因為思考塊保留在上下文中
    • 自動行為:這是 Claude Opus 4.5 的默認行為 - 不需要代碼更改或 beta 標頭
    • 向後兼容性:要利用此功能,繼續將完整的、未修改的思考塊傳回 API,就像您對工具使用所做的那樣

    對於較早的模型(Claude Sonnet 4.5、Opus 4.1 等),來自先前回合的思考塊繼續從上下文中移除。擴展思考與提示緩存部分中描述的現有行為適用於這些模型。

    思考內容編輯

    偶爾 Claude 的內部推理會被我們的安全系統標記。當這種情況發生時,我們會加密部分或全部 thinking 區塊,並將其作為 redacted_thinking 區塊返回給您。redacted_thinking 區塊在傳回 API 時會被解密,允許 Claude 繼續其回應而不會失去上下文。

    在構建使用擴展思考的面向客戶的應用程式時:

    • 請注意 redacted thinking 區塊包含加密內容,不可人工閱讀
    • 考慮提供簡單的解釋,例如:「Claude 的某些內部推理已因安全原因自動加密。這不會影響回應的品質。」
    • 如果向用戶顯示思考區塊,您可以過濾掉 redacted 區塊,同時保留正常的思考區塊
    • 透明地說明使用擴展思考功能可能偶爾會導致某些推理被加密
    • 實施適當的錯誤處理,以優雅地管理 redacted thinking,而不會破壞您的 UI

    以下是顯示正常和 redacted thinking 區塊的範例:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "redacted_thinking",
          "data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    在您的輸出中看到 redacted thinking 區塊是預期的行為。該模型仍然可以使用此 redacted 推理來通知其回應,同時維持安全防護欄。

    如果您需要在應用程式中測試 redacted thinking 處理,可以使用此特殊測試字串作為您的提示:ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB

    在多輪對話中將 thinking 和 redacted_thinking 區塊傳回 API 時,您必須將最後一個助手回合的完整未修改區塊傳回 API。這對於維持模型的推理流程至關重要。我們建議始終將所有思考區塊傳回 API。如需更多詳細資訊,請參閱上面的保留思考區塊部分。

    不同模型版本間的思考差異

    Messages API 在 Claude Sonnet 3.7 和 Claude 4 模型之間以不同方式處理思考,主要在編輯和摘要行為方面。

    請參閱下表以了解簡明比較:

    功能Claude Sonnet 3.7Claude 4 模型(Opus 4.5 之前)Claude Opus 4.5 及更新版本
    思考輸出返回完整思考輸出返回摘要思考返回摘要思考
    交錯思考不支援支援 interleaved-thinking-2025-05-14 beta 標頭支援 interleaved-thinking-2025-05-14 beta 標頭
    思考區塊保留不跨回合保留不跨回合保留預設保留(啟用快取最佳化、節省代幣)

    Claude Opus 4.5 中的思考區塊保留

    Claude Opus 4.5 引入了新的預設行為:來自先前助手回合的思考區塊預設在模型上下文中保留。這與早期模型不同,早期模型會移除先前回合的思考區塊。

    思考區塊保留的好處:

    • 快取最佳化:使用工具時,保留的思考區塊啟用快取命中,因為它們與工具結果一起傳回並在助手回合中增量快取,在多步驟工作流程中節省代幣
    • 無智能影響:保留思考區塊對模型效能沒有負面影響

    重要考慮事項:

    • 上下文使用:長對話將消耗更多上下文空間,因為思考區塊保留在上下文中
    • 自動行為:這是 Claude Opus 4.5 的預設行為—不需要程式碼變更或 beta 標頭
    • 向後相容性:若要利用此功能,繼續將完整、未修改的思考區塊傳回 API,就像您對工具使用所做的那樣

    對於早期模型(Claude Sonnet 4.5、Opus 4.1 等),來自先前回合的思考區塊繼續從上下文中移除。使用提示快取的擴展思考部分中描述的現有行為適用於這些模型。

    定價

    如需完整的定價資訊,包括基本費率、快取寫入、快取命中和輸出代幣,請參閱定價頁面。

    思考過程會產生以下費用:

    • 思考期間使用的代幣(輸出代幣)
    • 後續請求中包含的最後一個助手回合的思考區塊(輸入代幣)
    • 標準文字輸出代幣

    啟用擴展思考時,會自動包含專門的系統提示以支援此功能。

    使用摘要思考時:

    • 輸入代幣:您原始請求中的代幣(不包括先前回合的思考代幣)
    • 輸出代幣(計費):Claude 在內部生成的原始思考代幣
    • 輸出代幣(可見):您在回應中看到的摘要思考代幣
    • 無費用:用於生成摘要的代幣

    計費的輸出代幣計數將不與回應中的可見代幣計數相符。您需要為完整的思考過程付費,而不是您看到的摘要。

    擴展思考的最佳實踐和考慮事項

    擴展思考的最佳實踐和考慮事項

    使用思考預算

    • 預算最佳化:最小預算為 1,024 個代幣。我們建議從最小值開始,逐步增加思考預算,以找到適合您用例的最佳範圍。更高的代幣計數可實現更全面的推理,但根據任務可能會出現收益遞減。增加預算可以改善回應品質,但代價是增加延遲。對於關鍵任務,測試不同的設定以找到最佳平衡。請注意,思考預算是目標而非嚴格限制—實際代幣使用可能因任務而異。
    • 起點:對於複雜任務,從較大的思考預算(16k+ 個代幣)開始,並根據您的需求進行調整。
    • 大型預算:對於超過 32k 的思考預算,我們建議使用批次處理以避免網路問題。推動模型思考超過 32k 個代幣的請求會導致長時間運行的請求,可能會遇到系統逾時和開放連線限制。
    • 代幣使用追蹤:監控思考代幣使用情況以最佳化成本和效能。

    擴展思考的最佳實踐和考慮事項

    使用思考預算

    • 預算最佳化:最小預算為 1,024 個代幣。我們建議從最小值開始,逐步增加思考預算,以找到適合您用例的最佳範圍。更高的代幣計數可實現更全面的推理,但根據任務可能會出現收益遞減。增加預算可以改善回應品質,但代價是增加延遲。對於關鍵任務,測試不同的設定以找到最佳平衡。請注意,思考預算是目標而非嚴格限制—實際代幣使用可能因任務而異。
    • 起點:對於複雜任務,從較大的思考預算(16k+ 個代幣)開始,並根據您的需求進行調整。
    • 大型預算:對於超過 32k 的思考預算,我們建議使用批次處理以避免網路問題。推動模型思考超過 32k 個代幣的請求會導致長時間運行的請求,可能會遇到系統逾時和開放連線限制。
    • 代幣使用追蹤:監控思考代幣使用情況以最佳化成本和效能。

    效能考慮事項

    • 回應時間:準備好因推理過程所需的額外處理而可能出現的較長回應時間。考慮到生成思考區塊可能會增加整體回應時間。
    • 串流要求:當 max_tokens 大於 21,333 時,需要串流。串流時,準備好在思考和文字內容區塊到達時處理它們。

    擴展思考的最佳實踐和考慮事項

    使用思考預算

    • 預算最佳化:最小預算為 1,024 個代幣。我們建議從最小值開始,逐步增加思考預算,以找到適合您用例的最佳範圍。更高的代幣計數可實現更全面的推理,但根據任務可能會出現收益遞減。增加預算可以改善回應品質,但代價是增加延遲。對於關鍵任務,測試不同的設定以找到最佳平衡。請注意,思考預算是目標而非嚴格限制—實際代幣使用可能因任務而異。
    • 起點:對於複雜任務,從較大的思考預算(16k+ 個代幣)開始,並根據您的需求進行調整。
    • 大型預算:對於超過 32k 的思考預算,我們建議使用批次處理以避免網路問題。推動模型思考超過 32k 個代幣的請求會導致長時間運行的請求,可能會遇到系統逾時和開放連線限制。
    • 代幣使用追蹤:監控思考代幣使用情況以最佳化成本和效能。

    效能考慮事項

    • 回應時間:準備好因推理過程所需的額外處理而可能出現的較長回應時間。考慮到生成思考區塊可能會增加整體回應時間。
    • 串流要求:當 max_tokens 大於 21,333 時,需要串流。串流時,準備好在思考和文字內容區塊到達時處理它們。

    功能相容性

    • 思考與 temperature 或 top_k 修改以及強制工具使用不相容。
    • 啟用思考時,您可以將 top_p 設定為 1 到 0.95 之間的值。
    • 啟用思考時,您無法預填充回應。
    • 思考預算的變更會使包含訊息的快取提示前綴失效。但是,當思考參數變更時,快取的系統提示和工具定義將繼續運作。

    擴展思考的最佳實踐和考慮事項

    使用思考預算

    • 預算最佳化:最小預算為 1,024 個代幣。我們建議從最小值開始,逐步增加思考預算,以找到適合您用例的最佳範圍。更高的代幣計數可實現更全面的推理,但根據任務可能會出現收益遞減。增加預算可以改善回應品質,但代價是增加延遲。對於關鍵任務,測試不同的設定以找到最佳平衡。請注意,思考預算是目標而非嚴格限制—實際代幣使用可能因任務而異。
    • 起點:對於複雜任務,從較大的思考預算(16k+ 個代幣)開始,並根據您的需求進行調整。
    • 大型預算:對於超過 32k 的思考預算,我們建議使用批次處理以避免網路問題。推動模型思考超過 32k 個代幣的請求會導致長時間運行的請求,可能會遇到系統逾時和開放連線限制。
    • 代幣使用追蹤:監控思考代幣使用情況以最佳化成本和效能。

    效能考慮事項

    • 回應時間:準備好因推理過程所需的額外處理而可能出現的較長回應時間。考慮到生成思考區塊可能會增加整體回應時間。
    • 串流要求:當 max_tokens 大於 21,333 時,需要串流。串流時,準備好在思考和文字內容區塊到達時處理它們。

    功能相容性

    • 思考與 temperature 或 top_k 修改以及強制工具使用不相容。
    • 啟用思考時,您可以將 top_p 設定為 1 到 0.95 之間的值。
    • 啟用思考時,您無法預填充回應。
    • 思考預算的變更會使包含訊息的快取提示前綴失效。但是,當思考參數變更時,快取的系統提示和工具定義將繼續運作。

    使用指南

    • 任務選擇:對於特別複雜的任務使用擴展思考,這些任務受益於逐步推理,例如數學、編碼和分析。
    • 上下文處理:您不需要自己移除先前的思考區塊。Claude API 會自動忽略先前回合的思考區塊,在計算上下文使用時不包括它們。
    • 提示工程:如果您想最大化 Claude 的思考能力,請查看我們的擴展思考提示技巧。

    擴展思考的最佳實踐和考慮事項

    使用思考預算

    • 預算最佳化:最小預算為 1,024 個代幣。我們建議從最小值開始,逐步增加思考預算,以找到適合您用例的最佳範圍。更高的代幣計數可實現更全面的推理,但根據任務可能會出現收益遞減。增加預算可以改善回應品質,但代價是增加延遲。對於關鍵任務,測試不同的設定以找到最佳平衡。請注意,思考預算是目標而非嚴格限制—實際代幣使用可能因任務而異。
    • 起點:對於複雜任務,從較大的思考預算(16k+ 個代幣)開始,並根據您的需求進行調整。
    • 大型預算:對於超過 32k 的思考預算,我們建議使用批次處理以避免網路問題。推動模型思考超過 32k 個代幣的請求會導致長時間運行的請求,可能會遇到系統逾時和開放連線限制。
    • 代幣使用追蹤:監控思考代幣使用情況以最佳化成本和效能。

    效能考慮事項

    • 回應時間:準備好因推理過程所需的額外處理而可能出現的較長回應時間。考慮到生成思考區塊可能會增加整體回應時間。
    • 串流要求:當 max_tokens 大於 21,333 時,需要串流。串流時,準備好在思考和文字內容區塊到達時處理它們。

    功能相容性

    • 思考與 temperature 或 top_k 修改以及強制工具使用不相容。
    • 啟用思考時,您可以將 top_p 設定為 1 到 0.95 之間的值。
    • 啟用思考時,您無法預填充回應。
    • 思考預算的變更會使包含訊息的快取提示前綴失效。但是,當思考參數變更時,快取的系統提示和工具定義將繼續運作。

    使用指南

    • 任務選擇:對於特別複雜的任務使用擴展思考,這些任務受益於逐步推理,例如數學、編碼和分析。
    • 上下文處理:您不需要自己移除先前的思考區塊。Claude API 會自動忽略先前回合的思考區塊,在計算上下文使用時不包括它們。
    • 提示工程:如果您想最大化 Claude 的思考能力,請查看我們的擴展思考提示技巧。

    後續步驟

    試用擴展思考食譜
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 16000,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [
            {
                "role": "user",
                "content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
            }
        ]
    }'
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 16000,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [
            {
                "role": "user",
                "content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
            }
        ]
    }'
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 16000,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [
            {
                "role": "user",
                "content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
            }
        ]
    }'
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 16000,
        "stream": true,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [
            {
                "role": "user",
                "content": "What is 27 * 453?"
            }
        ]
    }'
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 16000,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [
            {
                "role": "user",
                "content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
            }
        ]
    }'
    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 16000,
        "stream": true,
        "thinking": {
            "type": "enabled",
            "budget_tokens": 10000
        },
        "messages": [
            {
                "role": "user",
                "content": "What is 27 * 453?"
            }
        ]
    }'

    在我們的食譜中探索思考的實際範例。

    擴展思考提示技巧

    學習擴展思考的提示工程最佳實踐。