自適應思考是什麼,跟舊版的擴充思考有什麼不同?
自適應思考(Adaptive Thinking)是 Claude 目前主流的推理模式,在 API 裡透過 thinking: {"type": "adaptive"} 啟用。它跟舊版擴充思考(Extended Thinking,type: "enabled" 搭配 budget_tokens)最根本的差異,在於「誰決定要花多少心力思考」:舊版是開發者手動指定一個固定的思考 token 預算,Claude 每次請求都會用掉這個預算去思考;新版則是 Claude 自己依據每個請求的複雜度,動態判斷這次到底需不需要思考、需要思考多深,簡單問題可能完全跳過思考直接回答,複雜問題才會深入推理。
這不只是語法上的改變,而是行為模式的根本轉變——固定預算模式下 Claude 每次都會思考;自適應模式下,Claude 在較低的 Effort 設定時,可能對簡單輸入完全略過思考這個步驟。
自適應思考為什麼存在,解決了什麼問題?
固定 token 預算模式有一個結構性的浪費:不管問題難不難,Claude 都要用掉開發者事先設定的那個預算去思考。對於一個混合了簡單查詢與複雜任務的實際工作流程來說,這代表簡單問題也被迫花費不必要的思考成本,複雜問題卻可能因為預算設得不夠而思考不完整。
自適應思考解決的正是這種「一刀切」帶來的效率損失。官方文件指出,這個機制在混合了簡單與複雜請求的工作負載、以及長時間運行的代理式工作流程裡,表現可靠地優於固定預算的擴充思考。本質上,這是把「這個問題該想多深」的判斷權,從請求發送前的開發者手動設定,轉移到請求發送當下由 Claude 自己即時判斷,判斷的顆粒度從「整批工作流程共用一個預算」細化到「每一個請求各自決定」。
自適應思考實際運作起來是什麼樣子?
啟用自適應思考時,Claude 是否要思考、思考多少,取決於兩個因素:effort 參數與請求本身的複雜度。在預設的高 Effort 等級下,Claude 幾乎總是會思考;等級調低時,對於簡單問題可能完全跳過思考直接作答,只有偵測到請求本身確實複雜時才會觸發推理。這裡有個重要細節:Effort 只是一種軟性引導,不是強制上限——即使設定為低 Effort,如果問題本身夠複雜,Claude 仍然會選擇深入思考,不會因為等級低就被迫給出草率答案。
自適應思考還會自動啟用交錯思考(interleaved thinking),讓 Claude 能在多次工具呼叫之間穿插思考步驟,這對代理式工作流程(例如需要連續讀檔、搜尋、驗證的任務)特別有幫助。需要注意的是,官方建議搭配 max_tokens 一起設定作為總輸出的硬上限,因為在高或最高 Effort 等級下,Claude 可能會思考得比預期更多,如果回應裡出現 stop_reason: "max_tokens",代表輸出被這個硬上限截斷了,這時候該做的是調高 max_tokens,或反過來調低 Effort 等級。
了解自適應思考的運作邏輯,對我實際使用 Claude 有什麼影響?
如果你是透過 API 開發,最直接的影響是遷移路徑:如果你手上還有用舊版 budget_tokens 寫的程式碼,遷移到自適應思考不是單純換個參數名稱那麼簡單,而是要理解行為本質已經改變——舊版每次都會用掉整個預算思考,新版可能完全不思考,這代表你需要重新測試延遲與輸出品質,而不是假設換了寫法之後行為完全一樣。另外要特別注意,切換思考模式(例如從 enabled/disabled 切到 adaptive)會讓提示詞快取的斷點失效,第一次請求會重新建立快取。
如果你只透過 Claude Code 或 Claude.ai 使用 Claude,不直接碰 API,這個概念依然有用——它解釋了為什麼同樣的 Effort 設定,Claude 對簡單問題跟複雜問題的反應速度會有明顯差異:不是系統變慢或變快了,而是 Claude 這次判斷這個問題到底需不需要深入思考。
官方文件裡有一個具體的行為對照:在自適應模式下、Effort 設為預設的高等級時,Claude 幾乎總是會思考;但把 Effort 調降到低等級後,同一個系統對於簡單查詢會直接跳過思考步驟給出答案,只有真正複雜的問題才會觸發推理——這個對照直接示範了「Effort 是軟性引導、不是強制規則」這個特性,也說明了為什麼同一段程式碼、只改動 Effort 參數,就能觀察到 Claude 回應速度與思考深度的明顯落差。
優點是能依請求複雜度動態分配思考成本,避免簡單問題浪費預算、複雜問題預算不夠,尤其適合混合難易度的工作流程;缺點是失去了固定預算模式那種「每次思考量可預期」的特性,高 Effort 等級下 Claude 可能思考得比預期更多,需要額外搭配 max_tokens 硬上限來控管成本與延遲的可預測性。