Extended Thinking 是 Claude 4 系列引入的功能,讓模型在生成最終回答之前,先在一個「思考空間」裡做更長時間的內部推理。這個設計靈感來自一個觀察:當人類解決複雜問題時,通常會先打草稿、列出推理步驟、驗證每個步驟,最後才給出結論——而不是直接「想」出答案。
標準模式 vs Extended Thinking 模式的差別:
在標準模式下,Claude 接收輸入,直接生成輸出。對簡單任務(翻譯、摘要、格式轉換),這個方式完全夠用——輸入到輸出的映射是相對直接的。
在 Extended Thinking 模式下,Claude 首先在一個隱藏的(或可選顯示的)空間裡進行推理——分析問題的各個維度、考慮不同的解決路徑、驗證中間步驟——然後才基於這個推理過程生成最終答案。這讓它在需要多步驟推導的任務上,表現顯著優於直接回答。
為什麼「多想一步」能讓答案更準確?
從 LLM 的生成機制來看,每個輸出的 Token 是基於之前所有的 Token 預測的。當 Claude 「先想後答」時,它的推理步驟成為後續生成的錨點——每一步推理都讓下一步的「起點」更準確,而不是從一個模糊的問題直接跳到答案。這和 Chain-of-Thought Prompting 的有效性有同樣的根本原因。
Extended Thinking 在哪些任務上效果最顯著,在哪些任務上不值得開啟?
效果最顯著的任務類型:
數學和形式化推理——多步驟計算、公式推導、邏輯證明。Extended Thinking 讓模型在給出最終答案前,能驗證每個計算步驟的正確性,大幅降低中間步驟的錯誤率。
複雜的演算法設計——需要評估多種可能的實作方案、分析時間和空間複雜度。Extended Thinking 讓模型能系統性地探索解決空間。
多約束條件的決策問題——需要同時滿足多個互相衝突的要求,Extended Thinking 讓模型能更全面地追蹤所有約束。
需要嚴密論證的分析——法律分析、複雜的商業策略評估、需要整合多個資訊來源的研究。
效果有限、不值得開啟的任務:
翻譯、格式轉換、文字摘要——這些任務本質上不需要深度推理,開了 Extended Thinking 只是增加費用和延遲,輸出品質幾乎沒有提升。
創意寫作——Extended Thinking 的邏輯性特點可能反而讓創意輸出過於結構化,失去創意的靈動。
簡單事實查詢——不需要推理的直接資訊提取,Extended Thinking 沒有加分。
怎麼在 Claude API 裡正確啟用 Extended Thinking?有哪些參數需要設定?
在 Anthropic Python SDK 裡啟用 Extended Thinking 的方式:
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000 # 思考過程最多使用的 Token 數
},
messages=[{
"role": "user",
"content": "你的問題"
}]
)
重要參數說明:
budget_tokens:思考過程最多能使用的 Token 數。這是一個上限,不保證 Claude 一定會用完。設得太小(如 1,000 Token),Claude 可能沒有足夠的「空間」進行深度推理;設得太大會增加費用。一般建議:中等複雜度任務用 5,000-10,000,高難度任務用 10,000-32,000。
max_tokens:這是整個回應(包含思考過程和最終答案)的總 Token 上限。需要設得夠大,通常建議至少 budget_tokens + 1000(留足空間給最終答案)。
費用計算:思考過程產生的 Token 也計費(算作輸入 Token),實際費用比標準模式高 2-5 倍,取決於 budget_tokens 的設定和實際使用量。
查看思考過程:回應裡有一個 thinking 內容塊,包含 Claude 的思考過程文字。如果你想在介面上顯示給用戶看,從這個塊讀取;如果只需要最終答案,忽略它即可。
Extended Thinking 和 Chain-of-Thought Prompting 有什麼關係?它們是同一件事嗎?
兩者有相同的底層原理,但在實作層面是不同的東西:
Chain-of-Thought(CoT)Prompting:一種提示詞技術——你在提示詞裡加上「請一步一步思考」或提供有推理過程的示範例子,讓 Claude 在最終回答裡把推理步驟作為輸出的一部分。CoT 是通過提示詞驅動的、輸出在正常的回應文字裡、不需要 API 特殊參數。
Extended Thinking:一個模型層面的功能——讓 Claude 在一個獨立的「思考空間」裡做推理,這個思考過程可以比最終回答長很多、能做更多的「打草稿和回退」操作(模型能在思考空間裡「試錯」),而且這個思考過程對 Claude 的最終輸出有更直接的影響。需要 API 的 thinking 參數啟用。
主要差別:CoT 的推理步驟是輸出的一部分(用戶看到的正文裡);Extended Thinking 的推理在一個獨立的 block 裡(可以選擇不顯示給用戶)。Extended Thinking 的思考空間更大、模型在其中的自由度更高,通常比 CoT 效果更強。如果你用 API,對需要深度推理的任務,Extended Thinking 通常比 Zero-Shot CoT 效果更好;如果你用 claude.ai,可以試著用「一步一步思考」的指令手動觸發 CoT 行為。
一個資料科學家需要 Claude 幫她設計一個演算法,從一個有噪音的時間序列數據裡識別異常點。這個問題涉及多個可能的方法(統計方法、機器學習方法、基於規則的方法),以及不同方法的適用條件(數據量、噪音類型、實時性要求)。
不開 Extended Thinking 的典型輸出:Claude 可能直接推薦「Isolation Forest 或 LOF 算法」,給出代碼,說明這是處理異常點檢測的標準方法。這個答案在很多場景下是對的,但它跳過了「這個特定問題是否適合用這些方法」的評估。
開 Extended Thinking 的輸出:在思考空間裡,Claude 先分析了問題的幾個關鍵維度:時間序列數據的特點(是否有季節性、趨勢)、異常點的類型(點異常、上下文異常、集體異常)、實時性要求、數據量大小。然後評估了幾種方法各自的適用條件和局限。最終答案是有條件的建議:「如果你的數據有明顯的季節性,建議先用 STL 分解再做異常檢測;如果數據是平穩的,Isolation Forest 是好選擇;如果有實時性要求,考慮 RRCF 算法」。
第二個回答的品質顯著更高,但如果不開 Extended Thinking,Claude 不一定有足夠的「空間」做這個系統性的方法評估。
Extended Thinking 的核心取捨是「推理深度 vs 費用和速度」。開啟後,思考過程的 Token 也計費(通常是輸入 Token 的 2-5 倍),回應時間也更長。對需要高精確率、且費用和速度不是首要考量的任務,這個代價完全值得;對高頻率的簡單任務,這個代價是不必要的。最有效的使用方式是「分層策略」:只對被分類為「高複雜度需要深度推理」的請求開啟 Extended Thinking,其他請求用標準模式。這樣在整體費用可控的前提下,讓需要深度推理的任務獲得最高品質的輸出。