Claude Platform Docs
  • Messages
  • Managed Agents
  • 管理

Search...
⌘K
第一步
Claude 簡介快速入門
使用 Claude 進行建構
功能概覽使用 Messages API停止原因與備援拒絕與備援備援額度
模型能力
擴展思考自適應思考Effort任務預算(測試版)快速模式(研究預覽)結構化輸出引用串流 Messages批次處理搜尋結果串流拒絕多語言支援嵌入
工具
概覽工具使用的運作方式教學:建構使用工具的代理定義工具處理工具呼叫平行工具使用Tool Runner (SDK)嚴格工具使用工具使用與提示快取伺服器工具疑難排解網頁搜尋工具網頁擷取工具程式碼執行工具顧問工具記憶工具Bash 工具電腦使用工具文字編輯器工具
工具基礎架構
工具參考管理工具上下文工具組合工具搜尋程式化工具呼叫細粒度工具串流
上下文管理
上下文視窗壓縮上下文編輯提示快取對話中系統訊息建構協調模式快取診斷(測試版)Token 計數
處理檔案
Files APIPDF 支援圖片與視覺
技能
概覽快速入門最佳實務企業技能API 中的技能
MCP
遠端 MCP 伺服器MCP 連接器
雲端平台上的 Claude
Amazon BedrockAmazon Bedrock(舊版)AWS 上的 Claude PlatformMicrosoft FoundryVertex AI

Log in
自適應思考
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

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

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • 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
  • 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
Messages/模型能力

自適應思考

讓 Claude 透過自適應思考模式動態決定何時以及使用多少擴展思考。


此功能符合「Zero Data Retention」(零資料保留),即 ZDR 的資格。當您的組織具有 ZDR 安排時,透過此功能傳送的資料在 API 回應返回後不會被儲存。

「Adaptive thinking」(自適應思考)是在 Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6 和 Claude Sonnet 4.6 上使用擴展思考的建議方式。在 Claude Fable 5 和 Claude Mythos 5 上,思考功能始終啟用且無法停用;自適應思考是唯一的思考模式。在 Claude Mythos Preview 上,自適應思考是預設模式,當 thinking 未設定時會自動套用。自適應思考不需要手動設定思考 token 預算,而是讓 Claude 根據每個請求的複雜度動態決定何時以及使用多少擴展思考。在 Claude Opus 4.8 和 Claude Opus 4.7 上,自適應思考是唯一支援的思考模式;手動設定 thinking: {type: "enabled", budget_tokens: N} 已不再被接受。



對於許多工作負載,特別是雙峰任務和長期代理工作流程,自適應思考可以比使用固定 budget_tokens 的擴展思考帶來更好的效能。不需要 beta 標頭。

如果您的工作負載需要可預測的延遲或對思考成本的精確控制,在 Claude Opus 4.6 和 Claude Sonnet 4.6 上使用 budget_tokens 的擴展思考仍然可用,但已被棄用且不再建議使用。請參閱下方的警告。

支援的模型

自適應思考在以下模型上受支援:

  • Claude Fable 5(claude-fable-5)和 Claude Mythos 5(claude-mythos-5),自適應思考始終開啟;不支援 thinking: {type: "disabled"}
  • Claude Mythos Preview(claude-mythos-preview),自適應思考為預設值;不支援 thinking: {type: "disabled"}
  • Claude Opus 4.8(claude-opus-4-8),自適應思考是唯一支援的思考模式。除非您在請求中明確設定 thinking: {type: "adaptive"},否則思考功能為關閉狀態;手動設定 thinking: {type: "enabled"} 會被拒絕並回傳 400 錯誤。
  • Claude Opus 4.7(claude-opus-4-7),自適應思考是唯一支援的思考模式。除非您在請求中明確設定 thinking: {type: "adaptive"},否則思考功能為關閉狀態;手動設定 thinking: {type: "enabled"} 會被拒絕並回傳 400 錯誤。
  • Claude Opus 4.6(claude-opus-4-6)
  • Claude Sonnet 4.6(claude-sonnet-4-6)


thinking.type: "enabled" 和 budget_tokens 在 Opus 4.6 和 Sonnet 4.6 上已棄用,並將在未來的模型版本中移除。請改用 thinking.type: "adaptive" 搭配 effort 參數。現有的 budget_tokens 設定仍然可用,但不再建議使用;請規劃遷移。

較舊的模型(Sonnet 4.5、Opus 4.5 等)不支援自適應思考,需要使用 thinking.type: "enabled" 搭配 budget_tokens。

自適應思考的運作方式

在自適應模式下,思考對模型而言是可選的。Claude 會評估每個請求的複雜度,並決定是否以及使用多少擴展思考。在預設的 effort 等級(high)下,Claude 幾乎總是會進行思考。在較低的 effort 等級下,Claude 可能會對較簡單的問題跳過思考。

自適應思考也會自動啟用交錯思考(interleaved thinking)。這表示 Claude 可以在工具呼叫之間進行思考,使其對代理工作流程特別有效。

如何使用自適應思考

在您的 API 請求中將 thinking.type 設定為 "adaptive":

自適應思考與 effort 參數

您可以將自適應思考與 effort 參數結合使用,以引導 Claude 進行多少思考。effort 等級作為 Claude 思考分配的軟性指引:

Effort 等級思考行為
maxClaude 始終進行思考,對思考深度沒有限制。適用於 Claude Fable 5、Claude Mythos 5、Claude Mythos Preview、Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6 和 Claude Sonnet 4.6。
xhighClaude 始終進行深度思考並擴展探索。適用於 Claude Fable 5、Claude Mythos 5、Claude Opus 4.8 和 Claude Opus 4.7。
high(預設)Claude 幾乎總是進行思考。對複雜任務提供深度推理。
mediumClaude 使用適度的思考。對於非常簡單的查詢可能會跳過思考。
lowClaude 將思考降至最低。對於速度最重要的簡單任務會跳過思考。

自適應思考與串流

自適應思考可與串流無縫搭配使用。思考區塊會透過 thinking_delta 事件進行串流,就像手動思考模式一樣:

自適應、手動與停用思考的比較

模式設定可用性使用時機
自適應thinking: {type: "adaptive"}Claude Fable 5(始終開啟)、Claude Mythos 5(始終開啟)、Claude Mythos Preview(預設)、Claude Opus 4.8(唯一模式)、Opus 4.7(唯一模式)、Opus 4.6、Sonnet 4.6Claude 決定何時以及使用多少擴展思考。使用 effort 進行引導。
手動thinking: {type: "enabled", budget_tokens: N}除 Claude Fable 5、Claude Mythos 5、Claude Opus 4.8 和 Claude Opus 4.7 外的所有模型(會被拒絕並回傳 400 錯誤)。在 Opus 4.6 和 Sonnet 4.6 上已棄用(請考慮改用自適應模式)。當您需要精確控制思考 token 花費時。
停用省略 thinking 參數或傳遞 {type: "disabled"}除 Claude Fable 5、Claude Mythos 5 和 Claude Mythos Preview 外的所有模型當您不需要擴展思考且希望獲得最低延遲時。


自適應思考適用於 Claude Fable 5、Claude Mythos 5、Claude Mythos Preview、Claude Opus 4.8、Claude Opus 4.7、Opus 4.6 和 Sonnet 4.6。在 Claude Fable 5 和 Claude Mythos 5 上,自適應思考始終開啟:當 thinking 未設定時會自動套用且無法停用。在 Mythos Preview 上,自適應思考是預設值,當 thinking 未設定時會自動套用。在 Claude Opus 4.8 上,自適應思考是唯一支援的模式;除非您明確設定 thinking: {type: "adaptive"},否則思考功能為關閉狀態,且手動設定 type: "enabled" 搭配 budget_tokens 會被拒絕並回傳 400 錯誤。在 Claude Opus 4.7 上,自適應思考是唯一支援的模式,type: "enabled" 搭配 budget_tokens 會被拒絕。較舊的模型僅支援 type: "enabled" 搭配 budget_tokens。在 Opus 4.6 和 Sonnet 4.6 上,type: "enabled" 搭配 budget_tokens 仍然可用但已棄用。

各模式的交錯思考可用性:

  • **自適應模式:**交錯思考在 Claude Fable 5、Claude Mythos 5、Claude Mythos Preview、Claude Opus 4.8、Claude Opus 4.7、Opus 4.6 和 Sonnet 4.6 上會自動啟用。在 Claude Fable 5、Claude Mythos 5、Mythos Preview、Claude Opus 4.8 和 Opus 4.7 上,工具間推理始終位於思考區塊內。
  • **Sonnet 4.6 上的手動模式:**交錯思考透過 interleaved-thinking-2025-05-14 beta 標頭運作。
  • **Opus 4.6 上的手動模式:**交錯思考不可用。如果您的代理工作流程需要在 Opus 4.6 上的工具呼叫之間進行思考,請使用自適應模式。

重要考量事項

驗證變更

使用自適應思考時,先前的助手回合不需要以思考區塊開始。這比手動模式更具彈性,在手動模式中,API 會強制要求啟用思考的回合必須以思考區塊開始。

提示快取

連續使用 adaptive 思考的請求會保留提示快取斷點。然而,在 adaptive 和 enabled/disabled 思考模式之間切換會破壞訊息的快取斷點。無論模式如何變更,系統提示和工具定義仍會保持快取。

調整思考行為

自適應思考的觸發行為可透過提示進行調整。如果 Claude 思考的頻率比您希望的更高或更低,您可以在系統提示中加入指引:

Extended thinking adds latency and should only be used when it
will meaningfully improve answer quality — typically for problems
that require multi-step reasoning. When in doubt, respond directly.

若要鼓勵思考,請使用類似以下的語句:

This task involves multi-step reasoning. Think carefully before responding.

引導效果可能對確切的措辭很敏感——如果某種表達方式沒有產生您想要的行為,請嘗試更直接的變體。

您也可以從使用者回合中針對個別訊息引導思考。在使用者訊息後附加 "Please think hard before responding." 會鼓勵 Claude 在該回合進行思考;"Answer directly without deliberating." 則會抑制思考。這與系統提示獨立運作,當對話中只有部分請求需要擴展推理時特別有用。



引導 Claude 減少思考頻率可能會降低受益於推理的任務品質。在將基於提示的調整部署到生產環境之前,請先衡量對您特定工作負載的影響。請考慮先使用較低的 effort 等級進行測試。

成本控制

使用 max_tokens 作為總輸出(思考 + 回應文字)的硬性限制。effort 參數提供額外的軟性指引,控制 Claude 分配多少思考。兩者結合可讓您有效控制成本。

在 high 和 max effort 等級下,Claude 可能會進行更廣泛的思考,並且更有可能耗盡 max_tokens 預算。如果您在回應中觀察到 stop_reason: "max_tokens",請考慮增加 max_tokens 以給予模型更多空間,或降低 effort 等級。

使用思考區塊

以下概念適用於所有支援擴展思考的模型,無論您使用自適應模式還是手動模式。

摘要式思考

啟用擴展思考後,Claude 4 模型的 Messages API 會回傳 Claude 完整思考過程的摘要。摘要式思考提供擴展思考的完整智慧優勢,同時防止濫用。當思考配置中的 display 欄位未設定或設定為 "summarized" 時,這是 Claude 4 模型的預設行為。在 Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、Claude Opus 4.7 和 Claude Mythos Preview 上,display 預設為 "omitted",因此您必須明確設定 display: "summarized" 才能接收摘要式思考。

以下是關於摘要式思考的一些重要考量:

  • 您需要為原始請求所產生的完整思考 token 付費,而非摘要 token。
  • 計費的輸出 token 數量將不會符合您在回應中看到的 token 數量。
  • 在 Claude 4 模型上,思考輸出的前幾行會較為詳盡,提供詳細的推理過程,這對於提示工程目的特別有幫助。Claude Mythos Preview 從第一個 token 開始就進行摘要,因此其思考區塊不會顯示這種詳盡的前言。
  • 由於 Anthropic 持續致力於改進擴展思考功能,摘要行為可能會有所變更。
  • 摘要以最小的額外延遲保留 Claude 思考過程的關鍵概念,實現可串流的使用者體驗。
  • 摘要是由與您在請求中指定的模型不同的模型所處理。思考模型不會看到摘要後的輸出。


在極少數情況下,如果您需要存取 Claude 4 模型的完整思考輸出,請聯絡 Anthropic 銷售團隊。

控制思考顯示

思考配置中的 display 欄位控制思考內容在 API 回應中的返回方式。它接受兩個值:

  • "summarized":思考區塊包含摘要化的思考文本。詳情請參閱摘要化思考。這是 Claude Opus 4.6、Claude Sonnet 4.6 及更早的 Claude 4 模型的預設值。
  • "omitted":思考區塊返回時 thinking 欄位為空。signature 欄位仍攜帶加密的完整思考內容,以維持多輪對話的連續性(請參閱思考加密)。這是 Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、Claude Opus 4.7 及 Claude Mythos Preview 的預設值。

當您的應用程式不向使用者顯示思考內容時,設定 display: "omitted" 會很有用。主要優點是**串流時更快到達首個文本 token:**伺服器會完全跳過串流思考 token,僅傳送簽章,因此最終文本回應會更快開始串流。

以下是關於省略思考的一些重要考量:

  • 您仍需為完整的思考 token 付費。省略可降低延遲,但不會降低成本。
  • 如果您在多輪對話中回傳思考區塊,請原封不動地傳回。伺服器會解密 signature 以重建原始思考內容用於提示建構(請參閱保留思考區塊)。您在往返傳遞的省略區塊中放入 thinking 欄位的任何文本都會被忽略。
  • display 與 thinking.type: "disabled" 一起使用時無效(因為沒有內容可顯示)。
  • 當使用 thinking.type: "adaptive" 且模型針對簡單請求跳過思考時,無論 display 設定為何,都不會產生思考區塊。


無論 display 是 "summarized" 還是 "omitted",signature 欄位都是相同的。支援在對話的不同輪次之間切換 display 值。



display 設定僅控制可見性。在每種設定下,思考都會發生且計費方式相同。

thinking.display 的預設值取決於模型:

  • **Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、Claude Opus 4.7 和 Claude Mythos Preview:**預設值為 "omitted"。思考區塊仍會出現在回應串流中,但除非您明確選擇加入,否則其 thinking 欄位為空。這是相對於 Claude Opus 4.6 的靜默變更,在 Claude Opus 4.6 中預設值為 "summarized"。
  • **Claude Opus 4.6:**預設值為 "summarized"。可讀的摘要會在無需選擇加入的情況下顯示。

若要在預設值為 "omitted" 的模型上接收摘要式思考文字,請明確將 thinking.display 設定為 "summarized":

thinking = {
    "type": "adaptive",
    "display": "summarized",
}

如需程式碼範例以及使用 display: "omitted" 時的串流行為,請參閱擴展思考頁面上的控制思考顯示。該處的範例使用 type: "enabled";使用自適應思考時,請改用:

thinking = {"type": "adaptive", "display": "omitted"}

思考加密

完整的思考內容會被加密並在 signature 欄位中回傳。此欄位用於驗證思考區塊在傳回 API 時確實是由 Claude 所生成。



只有在使用搭配擴展思考的工具時,才嚴格需要傳回思考區塊。否則您可以省略先前回合的思考區塊。如果您將它們傳回,API 是否保留或移除這些區塊取決於模型:Opus 4.5+ 和 Sonnet 4.6+ 預設會將它們保留在上下文中;較早的 Opus/Sonnet 模型以及所有 Haiku 模型則會將它們移除。請參閱上下文編輯以進行相關設定。

如果要傳回思考區塊,請將所有內容按照您收到的原樣傳回,以保持一致性並避免潛在問題。

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

  • 當串流回應時,簽章會透過 content_block_delta 事件內的 signature_delta 加入,且發生在 content_block_stop 事件之前。
  • Claude 4 模型中的 signature 值比先前的模型長得多。
  • signature 欄位是一個不透明的欄位,不應被解讀或解析。
  • signature 值可跨平台相容(Claude API、Amazon Bedrock 和 Vertex AI)。在一個平台上生成的值可與另一個平台相容。

Claude Fable 5 和 Claude Mythos 5 上的思考輸出

在 Claude Fable 5 和 Claude Mythos 5 上,原始的思維鏈永遠不會被回傳。您收到的思考區塊是一般的 thinking 區塊,而非 redacted_thinking。thinking.display 設定的運作方式與其他模型相同:

  • "summarized" 會回傳推理的可讀摘要。
  • "omitted"(這些模型的預設值)仍會在回應中包含 thinking 區塊,但其 thinking 欄位為空字串。

如需思考區塊的回應格式,請參閱 Messages API 參考文件。

在同一模型上繼續對話時,請將每個思考區塊按原樣傳回 API,包括 thinking 欄位為空的區塊。請勿編輯或重建它們。讀取摘要文字以供顯示是可以的:API 會拒絕內容已被修改的區塊,而非您已讀取過的區塊。

當您切換模型時,例如在分類器拒絕後備之後,請從先前的助手回合中移除 thinking 和 redacted_thinking 區塊。思考區塊與產生它們的模型綁定。其他模型會靜默忽略它們而非拒絕請求,但被忽略的區塊仍會增加輸入 token。

有兩個例外情況,詳見後備額度:

  • 後備額度重試必須原封不動地回傳被拒絕的請求主體。
  • 來自輸出中途後備的 fallback 區塊會保留在其出現的位置。

若要了解模型的推理過程,請讀取本節所述的 thinking 區塊,而非在回應文字中提示要求推理內容。在 Claude Fable 5 上,嘗試在回應文字中引出模型內部推理的請求可能會被拒絕,並回傳 stop_details.category: "reasoning_extraction"。如需欄位參考和處理指引,請參閱拒絕類別。

定價

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

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

  • 思考期間使用的 token(輸出 token)
  • 保留在上下文中的先前助手回合的思考區塊:在較早的 Opus/Sonnet 模型和所有 Haiku 模型上僅保留最後一個回合;在 Opus 4.5+ 和 Sonnet 4.6+ 上預設保留所有回合(輸入 token)
  • 標準文字輸出 token


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

使用摘要式思考時:

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

使用 display: "omitted" 時:

  • **輸入 token:**您原始請求中的 token(與摘要式相同)
  • **輸出 token(計費):**Claude 內部生成的原始思考 token(與摘要式相同)
  • **輸出 token(可見):**零個思考 token(thinking 欄位為空)


計費的輸出 token 數量將不會與回應中可見的 token 數量相符。您需要為完整的思考過程付費,而非回應中可見的思考內容。

若要查看內部推理消耗了多少計費輸出 token,請讀取回應中的 usage.output_tokens_details.thinking_tokens。此值反映模型生成的原始推理(而非回應主體中返回的摘要文字),且始終小於或等於 output_tokens。將其從 output_tokens 中減去,即可估算輸出中非推理部分的數量。

{
  "usage": {
    "input_tokens": 25,
    "output_tokens": 348,
    "output_tokens_details": {
      "thinking_tokens": 312
    }
  }
}

output_tokens 仍然是用於計費的完整且具權威性的總數。output_tokens_details 是僅供觀察用途的唯讀明細。

其他主題

擴展思考頁面透過特定模式的程式碼範例更詳細地涵蓋了幾個主題:

  • 思考與工具使用:自適應思考適用相同的規則:在工具呼叫之間保留思考區塊,並注意思考啟用時的 tool_choice 限制。
  • 提示快取:使用自適應思考時,連續使用相同思考模式的請求會保留快取斷點。在 adaptive 和 enabled/disabled 模式之間切換會破壞訊息的快取斷點(系統提示和工具定義仍會保持快取)。
  • 上下文視窗:思考 token 如何與 max_tokens 和上下文視窗限制互動。

後續步驟


擴展思考

深入了解擴展思考,包括手動模式、工具使用和提示快取。

Effort 參數

使用 effort 參數控制 Claude 回應的詳盡程度。

Was this page helpful?

  • 支援的模型
  • 自適應思考的運作方式
  • 如何使用自適應思考
  • 自適應思考與 effort 參數
  • 自適應思考與串流
  • 自適應、手動與停用思考的比較
  • 重要考量事項
  • 驗證變更
  • 提示快取
  • 調整思考行為
  • 成本控制
  • 使用思考區塊
  • 摘要式思考
  • 控制思考顯示
  • 思考加密
  • Claude Fable 5 和 Claude Mythos 5 上的思考輸出
  • 定價
  • 其他主題
  • 後續步驟
client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    messages=[
        {
            "role": "user",
            "content": "Explain why the sum of two even numbers is always even.",
        }
    ],
)

for block in response.content:
    if block.type == "thinking":
        print(f"\nThinking: {block.thinking}")
    elif block.type == "text":
        print(f"\nResponse: {block.text}")
client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    output_config={"effort": "medium"},
    messages=[{"role": "user", "content": "What is the capital of France?"}],
)

print(response.content[0].text)
client = anthropic.Anthropic()

with client.messages.stream(
    model="claude-opus-4-8",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    messages=[
        {
            "role": "user",
            "content": "What is the greatest common divisor of 1071 and 462?",
        }
    ],
) as stream:
    for event in stream:
        if event.type == "content_block_start":
            print(f"\nStarting {event.content_block.type} block...")
        elif event.type == "content_block_delta":
            if event.delta.type == "thinking_delta":
                print(event.delta.thinking, end="", flush=True)
            elif event.delta.type == "text_delta":
                print(event.delta.text, end="", flush=True)