延伸思考實際上在做什麼,跟一般回覆有什麼不同?
延伸思考是 Claude 在產生最終回覆之前,先進行一段內部推理的機制。官方文件把這個過程描述成「自我評估」——模型會先判斷這次請求是不是真的需要額外推理才能答好,如果判斷不需要,同一次對話裡的這一輪可能完全不會有思考區塊;如果判斷需要,才會展開思考過程,再據此產生最終答案。
這跟一般回覆最大的差別在於「是否固定發生」。延伸思考不是每次都會啟動的功能,而是依照請求複雜度動態決定的——同一個對話裡,前一輪可能有思考區塊,後一輪問了個簡單問題,可能就完全沒有,這種深度上的變化是設計本來就預期的行為,不是不穩定或異常。
舊版的 budget_tokens 跟現在的 effort 參數,差別到底在哪?
budget_tokens 是較舊的模型上才會用到的設定方式,屬於手動管理:你直接指定一個思考過程能用的 token 上限,是一個硬性限制。官方文件也特別提醒,在請求之間更動 budget_tokens 的數值,會讓 prompt caching 的快取點失效。
effort 參數是現行模型採用的做法,設定在 output_config.effort,提供 low、medium、high、xhigh、max 五個層級。跟 budget_tokens 最根本的不同是,effort 只是「軟性引導」,告訴模型大致該往哪個方向分配資源,並不是寫死的硬上限——即使設成 max,也不保證每次請求都會啟動思考;即使設成 low,遇到真正複雜的請求,模型仍然可能判斷需要思考。跟 budget_tokens 相同的是,更動 effort 層級同樣會讓快取點失效,這個代價沒有因為改用新參數而消失。
怎麼決定在自己的應用裡要用哪個 effort 層級?
官方文件列出的對照很具體:max 代表思考量最大、深度最深,對思考長度沒有限制;xhigh 比 high 更願意啟動思考、也思考得更深;high 是多數模型的預設值,對大部分能從思考中受益的請求都會啟動;medium 是 Claude Opus 5.5 的預設值,思考強度中等,遇到簡單查詢可能直接跳過;low 把思考量壓到最低,優先求回應速度。
實務上的選擇邏輯是看任務性質:簡單、需要快速回應、大量重複呼叫的場景,適合用 low 或乾脆不特別設定(使用模型預設值);需要多步驟推理、程式碼除錯、複雜分析這類任務,拉高到 high 或以上通常比較划算。真正該留意的是成本控制的另一半——max_tokens 才是總輸出(思考加上回覆)的硬性上限,effort 只決定這個上限裡大概要分配多少比例給思考,兩個參數要一起設定才完整。
延伸思考的 token 怎麼算錢,畫面上看到的思考內容跟實際計費的量一樣嗎?
不完全一樣。計費採用的是 usage.output_tokens_details.thinking_tokens 這個欄位記錄的完整思考 token 數,這個數字會被當成一般輸出 token 一併計費;但畫面上實際顯示給你看的思考內容,有可能是經過摘要處理的版本,不是逐字呈現模型內部的完整推理過程。也就是說,你看到的思考文字長度,不能直接拿來估算這次請求實際花了多少錢,真正該看的是回傳的 thinking_tokens 數字。
這個落差對成本控制很重要:如果你只靠肉眼看思考內容的長短去判斷花費,很容易低估實際成本,因為完整的內部推理可能比畫面上呈現的摘要長得多。
官方文件給出的計費範例很直接:一次請求回傳的 usage 顯示 input_tokens: 25、output_tokens: 348,其中 output_tokens_details.thinking_tokens 記錄的是 312——代表這 348 個輸出 token 裡,有 312 個其實是思考過程消耗掉的,只有剩下 36 個才是真正顯示給使用者的回覆內容,但計費時 348 個 token 全部算作輸出 token,沒有區分思考跟回覆分別計價。
延伸思考能讓模型在真正需要多步驟推理的任務上明顯提升答案品質,而且 effort 的軟性引導比舊版硬性上限更有彈性,不需要為每種任務精算 token 數;代價是思考過程本身要計入輸出 token 費用,而且更動 effort 層級會讓 prompt caching 的快取點失效,對高頻率、低延遲要求的應用來說,這個快取失效的成本需要額外評估。