此功能符合「Zero Data Retention」(零資料保留),即 ZDR 的資格。當您的組織具有 ZDR 安排時,透過此功能傳送的資料在 API 回應返回後不會被儲存。
自適應思考(adaptive thinking)是在 Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 5 和 Claude Sonnet 4.6 上使用擴展思考的建議方式,也是 Claude Fable 5 和 Claude Mythos 5 上唯一的思考模式。自適應思考不需要手動設定思考 token 預算,而是讓 Claude 根據每個請求的複雜度,動態決定何時以及使用多少擴展思考。各模型的預設值和限制列於支援的模型。
對於許多工作負載,特別是混合了簡單和複雜請求的工作負載,以及長時程的代理式工作流程,自適應思考可以比使用固定 budget_tokens 的擴展思考帶來更好的效能。不需要 beta 標頭。
如果您的工作負載需要可預測的延遲或對思考成本的精確控制,使用 budget_tokens 的擴展思考在 Claude Opus 4.6 和 Claude Sonnet 4.6 上仍然可用,但已被棄用且不再建議使用。請參閱支援的模型中的棄用警告。
以下模型支援自適應思考:
thinking: {type: "disabled"}。這兩個模型都不適用於零資料保留。thinking: {type: "disabled"},手動的 {type: "enabled", budget_tokens: N} 仍然可以使用。thinking: {type: "adaptive"},否則思考為關閉狀態;手動的 thinking: {type: "enabled"} 會被拒絕並回傳 400 錯誤。thinking: {type: "adaptive"},否則思考為關閉狀態;手動的 thinking: {type: "enabled"} 會被拒絕並回傳 400 錯誤。thinking: {type: "adaptive"},否則自適應思考為關閉狀態;手動的 {type: "enabled", budget_tokens: N} 仍然可以使用但已被棄用。thinking: {type: "disabled"} 可將其關閉。手動的 {type: "enabled"} 會被拒絕並回傳 400 錯誤。thinking: {type: "adaptive"},否則自適應思考為關閉狀態;手動的 {type: "enabled", budget_tokens: N} 仍然可以使用但已被棄用。在自適應模式下,思考對模型而言是可選的。Claude 會評估每個請求的複雜度,並決定是否以及使用多少擴展思考。在預設的 effort 等級(high)下,Claude 幾乎總是會思考。在較低的 effort 等級下,Claude 可能會對較簡單的問題跳過思考。
自適應思考也會自動啟用交錯思考。這表示 Claude 可以在工具呼叫之間進行思考,使其在代理式工作流程中特別有效。
在您的 API 請求中將 thinking.type 設定為 "adaptive"。範例中也將 thinking.display 設定為 "summarized" 以使思考文字可見:在最新的模型上,display 預設為 "omitted",會回傳 thinking 欄位為空的思考區塊。詳情請參閱控制思考顯示。
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive", "display": "summarized"},
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}")思考 token 會計入 max_tokens,因此請將其設定得足夠高,以便為思考和回應文字都留出空間。請參閱成本控制。
您可以將自適應思考與 effort 參數結合使用,以引導 Claude 的思考量。effort 等級作為 Claude 思考分配的軟性引導:
| Effort 等級 | 思考行為 |
|---|---|
max | Claude 總是思考,且對思考深度沒有限制。在所有支援自適應思考的模型上可用。 |
xhigh | Claude 總是進行深度思考並進行擴展探索。在 Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、Claude Opus 4.7 和 Claude Sonnet 5 上可用。 |
high(預設) | Claude 幾乎總是思考。對複雜任務提供深度推理。 |
medium | Claude 使用適度的思考。可能會對簡單查詢跳過思考。 |
low | Claude 將思考降至最低。對速度最重要的簡單任務跳過思考。 |
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?"}],
)
for block in response.content:
if block.type == "text":
print(block.text)自適應思考可與串流搭配使用。思考區塊透過 thinking_delta 事件進行串流,與手動思考模式相同。如同先前的範例,thinking.display: "summarized" 使串流的思考文字可見:
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive", "display": "summarized"},
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)| 模式 | 設定 | 可用性 | 使用時機 |
|---|---|---|---|
| 自適應 | thinking: {type: "adaptive"} | Claude Fable 5(始終開啟)、Claude Mythos 5(始終開啟)、Claude Mythos Preview(預設)、Claude Opus 4.8(唯一模式)、Claude Opus 4.7(唯一模式)、Claude Opus 4.6、Claude Sonnet 5(預設)和 Claude Sonnet 4.6 | Claude 決定何時以及使用多少擴展思考。使用 effort 進行引導。 |
| 手動 | thinking: {type: "enabled", budget_tokens: N} | 除 Claude Fable 5、Claude Mythos 5、Claude Sonnet 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 Sonnet 5 上,需明確傳入 {type: "disabled"}(省略 thinking 時預設為自適應)。 | 當您不需要擴展思考並希望獲得最低延遲時。 |
各模型的預設值和限制列於支援的模型。比所列模型更舊的模型僅接受 type: "enabled" 搭配 budget_tokens(前提是它們支援擴展思考)。
各模式的交錯思考可用性:
interleaved-thinking-2025-05-14 beta 標頭使用。使用自適應思考時,先前的 assistant 回合不需要以思考區塊開頭。這比手動模式更有彈性,手動模式下 API 會強制要求啟用思考的回合以思考區塊開頭。
另外,Claude Fable 5、Claude Mythos 5、Claude Mythos Preview、Claude Opus 4.8、Claude Opus 4.7 和 Claude Sonnet 5 會拒絕非預設的 temperature、top_p 和 top_k 值並回傳 400 錯誤。這適用於這些模型上的每個請求,無論思考是否處於啟用狀態。
使用 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 等級。
以下概念適用於所有支援擴展思考的模型,無論您使用自適應模式還是手動模式。
啟用「extended thinking」(擴展思考)後,Claude 4 模型的 Messages API 會回傳 Claude 完整思考過程的摘要。摘要式思考提供擴展思考的完整智慧優勢,同時防止濫用。當思考配置中的 display 欄位未設定或設定為 "summarized" 時,這是 Claude 4 模型的預設行為。在 Claude Fable 5、Claude Mythos 5、Claude Sonnet 5、Claude Opus 4.8、Claude Opus 4.7 和 Claude Mythos Preview 上,display 預設為 "omitted",因此您必須明確設定 display: "summarized" 才能接收摘要式思考。
以下是關於摘要式思考的一些重要考量事項:
在極少數情況下,如果您需要存取 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 Sonnet 5、Claude Opus 4.8、Claude Opus 4.7 及 Claude Mythos Preview 的預設值。當您的應用程式不向使用者顯示思考內容時,設定 display: "omitted" 會很有用。主要好處是**串流時更快取得首個文本 token:**伺服器會完全跳過串流思考 token,僅傳送簽章,因此最終文本回應能更快開始串流。
以下是關於省略思考的一些重要考量:
signature 以重建原始思考內容用於提示建構(請參閱保留思考區塊)。您在往返傳遞的省略區塊中放入 thinking 欄位的任何文本都會被忽略。display 與 thinking.type: "disabled" 搭配使用時無效(因為沒有內容可顯示)。thinking.type: "adaptive" 且模型針對簡單請求跳過思考時,無論 display 設定為何,都不會產生思考區塊。無論 display 是 "summarized" 還是 "omitted",signature 欄位都是相同的。支援在對話的不同輪次之間切換 display 值。
display 設定僅控制可見性。在任何設定下,思考都會發生且計費方式相同。
thinking.display 的預設值取決於模型:
"omitted"。思考區塊仍會出現在回應串流中,但除非您明確選擇加入,否則其 thinking 欄位為空。這是相對於 Claude Opus 4.6 的一項無聲變更,後者的預設值為 "summarized"。"summarized"。可讀的摘要無需選擇加入即會出現。若要在預設值為 "omitted" 的模型上接收摘要式思考文字,請明確將 thinking.display 設定為 "summarized":
thinking = {
"type": "adaptive",
"display": "summarized",
}有關 display: "omitted" 的程式碼範例和串流行為,請參閱擴展思考頁面上的控制思考顯示。該處的範例使用 type: "enabled";使用自適應思考時,請使用:
thinking = {"type": "adaptive", "display": "omitted"}完整的思考內容會被加密並在 signature 欄位中回傳。此欄位用於在將思考區塊傳回 API 時,驗證這些思考區塊確實是由 Claude 所生成。
以下是關於思考加密的一些重要考量事項:
content_block_delta 事件內的 signature_delta 新增,並緊接在 content_block_stop 事件之前。signature 值比先前的模型長得多。signature 欄位是一個不透明的欄位,不應被解讀或解析。signature 值可跨平台相容(Claude API、Amazon Bedrock 和 Google Cloud)。在一個平台上生成的值可與另一個平台相容。在 Claude Fable 5 和 Claude Mythos 5 上,永遠不會回傳原始的思維鏈。您收到的思考區塊是一般的 thinking 區塊,而非 redacted_thinking。thinking.display 設定的運作方式與其他模型相同:
"summarized" 回傳推理的可讀摘要。"omitted"(這些模型的預設值)仍會在回應中包含 thinking 區塊,但其 thinking 欄位為空字串。有關思考區塊的回應結構,請參閱 Messages API 參考文件。
在同一模型上繼續對話時,請將每個思考區塊原封不動地傳回 API,包括 thinking 欄位為空的區塊。請勿編輯或重建它們。讀取摘要文字以供顯示是沒問題的:API 拒絕的是內容被修改過的區塊,而不是您讀取過的區塊。
當您切換模型時,例如在分類器拒絕回退之後,請從先前的 assistant 回合中移除 thinking 和 redacted_thinking 區塊。思考區塊與產生它們的模型綁定。其他模型會默默忽略它們而不是拒絕請求,但被忽略的區塊仍會增加 input tokens。
有兩個例外情況,詳見回退額度:
fallback 區塊保留在它們出現的位置。若要了解模型的推理過程,請讀取本節所述的 thinking 區塊,而不是在回應文字中提示要求推理。在 Claude Fable 5 上,試圖將模型的內部推理作為回應文字一部分引出的請求可能會被拒絕,並回傳 stop_details.category: "reasoning_extraction"。請參閱拒絕類別以了解欄位參考和處理指引。
如需完整的定價資訊,包括基本費率、快取寫入、快取命中和輸出 token,請參閱定價頁面。
思考過程會產生以下費用:
啟用擴展思考時,系統會自動包含一個專用的系統提示以支援此功能。
使用摘要式思考時:
使用 display: "omitted" 時:
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 的限制。max_tokens 和上下文視窗限制互動。使用 effort 參數控制 Claude 回應時使用的 token 數量,在回應的完整性和 token 效率之間取得平衡。
為複雜任務賦予 Claude 增強的推理能力,並控制思考內容的回傳方式。
Claude Sonnet 5 的行為差異和提示模式,涵蓋 effort、自適應思考預設值、工具使用,以及從 Claude Sonnet 4.6 的遷移。
Was this page helpful?