關於「zero data retention」(零資料保留),即 ZDR 如何適用於此功能,請參閱 API 與資料保留。
Claude 的思考是自適應的:模型會評估每個請求,並自行決定是否思考以及思考多少。您設定意圖,可選擇性地指定 effort,模型會在它判斷推理有幫助的地方分配推理。
這使得思考非常適合混合了簡單和複雜請求的工作負載,以及長程代理式工作流程,其中每個步驟所需的推理量各不相同。
關於如何開啟思考、如何讀取思考輸出,以及 Claude Fable 5 和 Claude Mythos 5 上的思考輸出,請參閱思考概覽。本頁涵蓋 Claude 如何決定何時思考、如何引導該決定,以及由此衍生的快取、成本和定價機制。
思考對模型而言是可選的。在每個請求中,Claude 會權衡輸入的複雜度,並決定更深入的推理是否能改善答案。一個簡單的事實性問題可能會得到完全沒有思考區塊的直接回應;而一個多步驟的數學問題或棘手的除錯任務則會觸發更深入的推理。
這個決定是逐請求進行的。同一個對話可以包含有思考和沒有思考的回合,而 Claude 選擇不思考的回合不包含思考區塊。不要建構假設每個助手回合都以思考區塊開頭的應用程式邏輯。
對此決定的主要控制是 effort 參數,它作為 Claude 應該多願意思考以及思考多深的軟性指引;請參閱本頁的 Effort 層級以了解每個層級的作用。
如果您希望 Claude 較少思考,請先降低 effort 層級,再考慮使用基於提示的引導。
思考也會自動與工具使用交錯進行:Claude 可以在工具呼叫之間思考,在決定下一步之前反思每個工具結果(交錯思考)。您不需要 beta 標頭或任何額外的設定。
關於思考設定與 effort 參數如何互動的完整說明,請參閱思考與 effort。
Claude 在特定回合是否思考是可以透過提示控制的。Effort 設定整體的傾向,但您也可以直接用自然語言指引來塑造這個決定,無論是在系統提示中全域設定,還是從使用者回合逐訊息設定。
請按以下順序一起使用這兩個控制桿:
關於思考的更廣泛提示指引,請參閱善用思考和交錯思考能力。
Effort 是引導思考的主要控制桿。每個層級為 Claude 思考的頻率和深度設定不同的預設值:
| Effort 層級 | 思考行為 |
|---|---|
max | Claude 總是思考,且思考深度不受限制。 |
xhigh | Claude 總是深入思考並進行擴展探索。 |
high(預設) | Claude 幾乎總是思考。在複雜任務上提供深入推理。 |
medium | Claude 使用適度的思考。對於簡單查詢可能會跳過思考。 |
low | Claude 將思考降至最低。對於速度最重要的簡單任務會跳過思考。 |
此表格描述每個層級如何改變思考行為。關於針對特定工作負載應選擇哪個層級的指引(包括各模型的建議),請參閱 effort 頁面上的何時調整 effort 參數。
Effort 是在 output_config.effort 設定的,而不是在 thinking 物件內;完整的各語言範例請參閱 Effort。
{
"model": "claude-opus-4-8",
"max_tokens": 4096,
"output_config": { "effort": "medium" },
"messages": [{ "role": "user", "content": "..." }]
}層級的可用性因模型而異;effort 頁面上的 effort 可用性表格是各模型支援哪些層級的權威來源。
系統提示指引會改變對話中每個請求的 Claude 思考門檻。如果 Claude 思考的頻率超過您工作負載的需求,請在系統提示中加入如下指引:
Extended thinking adds latency and should only be used when it
will meaningfully improve answer quality, typically for problems
that require multistep reasoning. When in doubt, respond directly.若要鼓勵思考,則使用如下的措辭:
This task involves multistep reasoning. Think carefully before responding.引導的效果可能對確切的措辭很敏感。如果某種措辭沒有產生您想要的行為,請嘗試更直接的變體。
您也可以從使用者回合逐訊息引導思考,獨立於系統提示之外。在使用者訊息後附加 "Please think hard before responding." 會鼓勵 Claude 在該回合思考;"Answer directly without deliberating." 則會抑制思考。
當對話中只有部分請求需要擴展推理時,逐訊息引導很有用。例如,代理框架可以在規劃步驟附加鼓勵性措辭,在例行確認時附加抑制性措辭,而無需更動系統提示或在回合之間變更任何請求參數。
基於提示的引導會改變模型行為,因此請像對待任何其他提示變更一樣:在發布前先測量。使用有指引和沒有指引的情況下執行您流量的代表性樣本,並比較思考觸發的頻率(回應中思考區塊的存在)、輸出 token 使用量、延遲,以及對您重要的案例的答案品質。
引導 Claude 減少思考頻率可能會降低受益於推理的任務的品質。降低 effort 層級通常是更好的第一個控制桿,因為它是經過校準的控制,而不是對措辭敏感的指令。在將基於提示的調整部署到生產環境之前,請先測量對您特定工作負載的影響。
Claude 自行管理思考會衍生出三個機制:回合驗證、提示快取,以及如何限制成本。
助手回合不需要以思考區塊開頭。(使用舊式手動思考預算的模型會強制要求啟用思考的請求的最後一個助手回合以思考區塊開頭;請參閱手動模式下的回合結構。)
對於多回合應用程式,這表示您可以以任何現有的形式傳回對話歷史:
這種放寬是關於驗證,而不是關於您應該傳送什麼。當您有思考區塊時,請原封不動地傳回它們,特別是在工具使用期間,因為它們承載了 Claude 工具呼叫背後的推理。完整規則請參閱思考概覽。
保持相同思考設定和 effort 層級的連續請求會保留提示快取;完整規則請參閱思考與提示快取。解析後的 effort 值會被渲染到提示中,因此在請求之間變更它會使快取斷點失效,就像在使用舊式 budget_tokens 參數的模型上變更該參數一樣。將 effort 明確設定為模型的預設值等同於省略它,不會破壞快取。
實際的結論是:為每個對話選定一個思考設定和一個 effort 層級並保持不變。如果某些回合需要更多或更少的思考,請使用逐訊息提示來引導:附加到最新使用者訊息的指引會保持先前的快取斷點完好,而設定或 effort 的變更則不會。
以下範例透過一個您可以自行執行的多回合腳本來示範這種失效情況:
您不需要設定思考 token 預算。有兩個控制項可以限制成本:
max_tokens 是該請求總輸出的硬性上限,包含思考和回應文字。Claude 絕不會生成超過此上限的內容。在工具使用迴圈中,回合中的每個請求都有自己的 max_tokens,因此它不會限制整個回合的花費。effort 是關於 Claude 將多少輸出分配給思考的軟性指引。它塑造行為,但不保證 token 數量。由於思考會計入 max_tokens,請將其設定得足夠高,以便為推理和答案都留出空間。為沒有思考的回應所設定的 max_tokens 大小,在 Claude 開始對困難請求進行思考後往往會太小。
在 high effort 及以上,Claude 可能會大量思考,更有可能耗盡預算。如果您在回應中看到 stop_reason: "max_tokens",您有兩種補救方法:
max_tokens,為模型提供更多思考加答案的空間。哪一種方法正確取決於被截斷的回應是否需要那些推理。如果那些請求的品質很重要,就提高上限;如果它們是過度思考,就降低 effort。
思考會產生以下費用:
當思考啟用時,會自動包含一個專門的系統提示來支援此功能。
無論 display 設定為何,您被收費的內容都是相同的;只有您看到的內容會改變:
display: "summarized" | display: "omitted" | |
|---|---|---|
| Input tokens | 您原始請求中的 token | 與 summarized 相同 |
| Output tokens(計費) | Claude 內部生成的完整思考 token | 與 summarized 相同 |
| Output tokens(可見) | 摘要後的思考文字 | 零思考 token(thinking 欄位為空) |
| 摘要生成 | 不收費 | 不適用 |
計費的 output token 數量與回應中可見的 token 數量不相符。您是為完整的思考過程付費,而不是為回應中可見的思考內容付費。
若要查看有多少計費的 output token 花費在內部推理上,請讀取回應中的 usage.output_tokens_details.thinking_tokens。此值反映模型生成的原始推理(而非回應主體中返回的摘要文字),且總是小於或等於 output_tokens。從 output_tokens 中減去它,即可近似得出輸出中非推理的部分。在串流時,此明細僅出現在最後的 message_delta 事件中。
{
"usage": {
"input_tokens": 25,
"output_tokens": 348,
"output_tokens_details": {
"thinking_tokens": 312
}
}
}output_tokens 仍然是用於計費的包含性、權威性總數。output_tokens_details 是用於可觀測性的唯讀明細。關於完整的定價資訊,包括基本費率、快取寫入、快取命中和 output tokens,請參閱定價。
Was this page helpful?