Claude API 擴展思考(extended thinking)參數怎麼設:adaptive、budget_tokens、effort 和 display

想讓 Claude 先想再答?官方現在推薦 thinking 設為 adaptive 並用 effort 控制深度,舊的 enabled 加 budget_tokens 已被標為遺留功能,Claude 4.7 及之後的模型直接返回 400。本文講各模型的取值、display、計費、工具調用和常見 400 報錯。

NNathaniel bigo··原創首發·AI 輔助撰寫
11 分鐘讀完
資料核對於 2026-11-05 · 依據官方文檔與公開資料整理 其他 帳號
本文根據 Claude 官方《Extended thinking》《Thinking》整理,資料核對於 2026-11-05。配圖為本站整理的示意圖,不是介面截圖。代碼裏的模型名取自官方當天示例,請以官方模型頁為準。本站(bigolab.com)不是 Anthropic 官方網站。API 是按用量計費的獨立服務,與 Claude 訂閱分開計算,Key 的獲取見 /guides/claude-api-key-console。

適用於誰

  • 想讓 Claude 在複雜數學、代碼、分析任務裏先推理再回答的開發者;
  • 看到舊教學寫 thinking={"type": "enabled", "budget_tokens": ...},換了新模型卻報 400 的人;
  • 想知道思考到底怎麼計費、怎麼控制深度的人。

結論先說

  1. 官方現在推薦自適應思考:thinking 寫 {"type": "adaptive"},深度用 output_config 裏的 effort 控制。
  2. 舊的 enabled 加 budget_tokens 是遺留功能,已棄用;Claude 4.7 及之後的模型不支持,請求會返回 400。
  3. Claude 5 系列等較新模型預設就是自適應思考,不用寫 thinking 也在思考;Opus 4.8、4.7、4.6 和 Sonnet 4.6 預設關閉,要顯式設 adaptive。
  4. 思考 token 按輸出 token 計費,即使你設了不返回思考文字,也按完整思考計費,並且算在 max_tokens 裏。
  5. 想看思考文字要設 display:較新的模型預設 omitted,只返回空的 thinking 字段加簽名。

該用 adaptive 還是 budget_tokens

圖:本站根據 Claude 官方《Thinking》 整理的示意圖

一、先認識三個概念

  • thinking:決定“思不思考”以及“用哪種方式”的開關;
  • effort:決定整個回答“花多少力氣”,在自適應模式下,也就決定了多久想一次、想多深;
  • display:決定思考文字“要不要返回給你”。

官方特別強調:adaptive 是 thinking 的模式,不是 effort 的取值,別把它填進 effort。

三個參數各管什麼

圖:本站根據 Claude 官方《Thinking》 整理的示意圖

二、推薦寫法:adaptive 加 display

官方示例的 Python 寫法:

python
import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5-5",  # 以官方模型頁當天為準
    max_tokens=16000,
    thinking={"type": "adaptive", "display": "summarized"},
    messages=[
        {
            "role": "user",
            "content": "1071 和 462 的最大公約數是多少?",
        }
    ],
)

for block in response.content:
    if block.type == "thinking":
        print("思考摘要:", block.thinking)
    elif block.type == "text":
        print("回答:", block.text)

要點:

  • 響應裏會先出現 thinking 塊,再出現 text 塊;
  • display: "summarized" 才會返回思考摘要,官方說明返回的永遠是摘要,不是原始思維鏈;
  • 如果模型覺得問題簡單、沒有思考,就不會產生 thinking 塊,不管 display 怎麼設;
  • max_tokens 要給夠,思考也佔這個額度。

三、用 effort 控制深度

取值有 low、medium、high、xhigh、max,放在 output_config 裏:

json
{
  "model": "claude-opus-5-5",
  "max_tokens": 16000,
  "thinking": { "type": "adaptive" },
  "output_config": { "effort": "high" }
}

Python 裏對應 output_config={"effort": "high"}。官方說明的預設值:Sonnet 4.6 預設 high;Opus 5.5 和 Haiku 5.5 預設 medium;其他支持 effort 的模型預設 high。每個級別具體怎麼影響思考、每個模型支持哪些級別,請看官方 Effort 頁,本文不替官方列表。

官方給了一個選用思路:

  • 想降成本、降延遲:先降 effort,它會把整個回答縮小,包括思考;
  • Claude 想得太少或太淺:提高 effort;
  • 想徹底關掉思考:用 thinking: {"type": "disabled"},但只有部分模型接受;
  • 想要硬性的費用上限:用 max_tokens,effort 只是軟性指導。

四、各模型能設什麼

官方的對照表很長,下面只摘常見的幾類(完整表格以官方當天為準):

模型不寫 thinkingadaptiveenabled 加 budget_tokens
Opus 5.5、Sonnet 5.5、Haiku 5.5自適應思考自適應思考400
Opus 4.8、Opus 4.7關閉自適應思考400
Opus 4.6、Sonnet 4.6關閉自適應思考可用但已棄用
Opus 4.5、Sonnet 4.5、Haiku 4.5關閉400可用

關閉思考也有差別:Opus 5.5 不接受 disabled;Sonnet 5.5 不接受 disabled,最低檔是 {"type": "between_tools"},它關掉“回答前的思考”,但工具調用之間的簡短說明仍以思考塊的形式返回;Haiku 5.5 接受 disabled,但 effort 為 xhigh 或 max 時會報錯。具體哪個模型怎麼寫,到官方對照表核對最穩。

五、舊寫法:budget_tokens

仍在用 Claude 4.5 系列這類只支持舊寫法的模型時,才需要它:

python
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    thinking={"type": "enabled", "budget_tokens": 10000},
    messages=[{"role": "user", "content": "你的問題"}],
)

官方對預算的規則:

  • 最小 1024 個 token,小於會被拒絕;
  • 必須小於 max_tokens,因為思考計入 max_tokens,預算要給最終回答留位置(交錯思考是例外);
  • 它是目標,不是嚴格上限,Claude 可能用不滿預算;max_tokens 才是硬上限;
  • 簡單任務從接近 1024 起步,複雜任務從 16000 左右起步,再按延遲和質素調整;
  • 預算超過 32k 時,官方建議改用批處理,避免長請求被網絡掐斷;
  • 多輪緩存對話裏,中途改 budget_tokens 會使緩存失效,所以選定後別亂改;
  • 響應的 usage.output_tokens_details.thinking_tokens 能看到其中有多少是思考。

從舊寫法遷移到新寫法很簡單:刪掉 budget_tokens,把 type 改成 adaptive,用 effort 控制深度。官方提醒這不只是語法變化:舊寫法每次都思考,自適應則由 Claude 判斷,低 effort 時簡單問題可能完全不思考。切換思考配置後的第一個請求會讓緩存斷點失效。

六、和工具調用一起用

用了思考又調用工具時,官方要求:把 thinking 塊原樣、完整地和對應的 tool_use 塊一起傳回去,不能改、不能刪、不能重排,否則返回 400。官方強調即使 thinking 字段是空的也要傳。工具調用基礎見 /guides/claude-tool-use-basics。

另有幾條限制(具體模型名單以官方當天為準):

  • Claude 4.6 及之後的模型不支持“預填”助手回覆,會返回 400;
  • 較新的模型上 temperature、top_p、top_k 取非預設值會返回 400;
  • Opus 5.5、Sonnet 5.5、Fable 5.1 等不支持強制工具調用(tool_choice 的 any 或指定工具),用 auto 即可。

七、流式與計費

流式時,思考以 thinking_delta 事件出現,簽名以一個 signature_delta 在塊結束前發送,事件順序見 /guides/claude-api-streaming。display 設為 omitted 時不流式發送思考文字,官方說這樣正文開始得更早,但不會省錢,只省延遲。

費用上:思考 token 計入輸出 token,對於“只返回摘要”的情況,帳單按完整思考生成量算,而不是按你看到的摘要。在 Claude Opus 4.5 以及編號 4.6 及更高的模型上,之前輪次的思考塊會保留在上下文裏並按輸入 token 計費,較早的模型會自動去掉。價格以官方價格頁當天為準,估算上下文大小請用 /guides/claude-api-count-tokens。

常見問題

Q:報 "thinking.type.enabled" is not supported for this model?

你用的是 Claude 4.7 及之後的模型,舊寫法已被移除。按上面的遷移,改成 adaptive 並用 effort 控制。

Q:報 adaptive thinking is not supported on this model?

你用的是隻支持舊寫法的模型(Claude 4.5 及更早),改回 enabled 加 budget_tokens,或換到支持 adaptive 的模型。

Q:報 thinking 塊不能被修改?

工具調用後傳回曆史時,你改動或丟掉了 thinking 塊,請原樣傳回,包括 redacted_thinking。其他 400 報錯的整體排查見 /guides/claude-api-error-codes。

Q:模型怎麼選?

見 /guides/claude-models-compare。

參考資料

  • Claude 官方:Extended thinking — https://platform.claude.com/docs/en/build-with-claude/extended-thinking
  • Claude 官方:Thinking — https://platform.claude.com/docs/en/build-with-claude/thinking
  • Claude 官方:Claude API errors — https://platform.claude.com/docs/en/api/errors

Nathaniel 的更多內容

  1. 01

    Claude Code 處理大倉庫:怎麼讓它只看需要的目錄(子目錄 CLAUDE.md、claudeMdExcludes、deny 規則)

    倉庫太大,Claude Code 總在讀無關文件、讀進別的包的規則?本文按官方大倉庫指南講:從哪個目錄啟動、子目錄 CLAUDE.md、claudeMdExcludes、Read 的 deny 規則、worktree.sparsePaths、additionalDirectories,以及一份合併後的配置示例。

    Claude0
  2. 02

    Claude Code 在 CI 裏跑:從本機 claude -p 到 GitHub Actions 的完整例子(自動審 PR、控成本)

    一條線走完 Claude Code 的 CI 用法:先在本機用 claude --bare -p 配 --json-schema 跑通,再寫進 GitHub Actions 用 claude-code-action@v1 自動審 PR,最後加上 --max-turns、超時、並發限制來控成本,並附上常見故障的排查順序。

    Claude0
  3. 03

    Claude Code 自定義 subagent 實例:測試員、調試員、只讀調研員、只讀數據庫員怎麼寫

    四個可直接改的 subagent 實例:跑測試的 test-runner、找根因的 debugger、只讀調研員、用 PreToolUse hook 限成只讀 SQL 的 db-reader;講 tools、disallowedTools、model、maxTurns 怎麼配,怎麼點名調用。

    Claude0
  4. 04

    Claude Code 的 CLAUDE.md 模板:前端、後端、數據分析各一份,附拆分與自檢方法

    直接拿去改的三份 CLAUDE.md 模板(前端、後端、數據分析),每份都控制在官方建議的 200 行以內;再講怎麼用 .claude/rules 的 paths 拆出專屬規則、用 @ 導入長文檔,以及用 /context all 和 /doctor prompt-audit 檢查是否生效。

    Claude0
  5. 05

    Claude Code 自己寫一個插件並發布到 marketplace:plugin.json、marketplace.json、validate 到團隊安裝的完整流程

    想把自己寫的 Skill、Hook 打包給團隊用?按 Claude Code 官方 Plugins 文檔,從目錄結構、plugin.json、claude plugin validate,到寫 marketplace.json、推到 Git、讓同事一條命令安裝,再到版本更新,走完一遍完整流程。

    Claude0
  6. 06

    Claude Code 寫一個會自動觸發的 Skill:從需求到觸發,用 description、when_to_use 和 paths 控制它什麼時候出場

    寫好的 Skill 總是不觸發,或者什麼都觸發?本文按 Claude Code 官方「Extend Claude with skills」走一遍完整實例:把「改數據庫遷移前先檢查」寫成一個會自動出場的 Skill,包含 description、when_to_use、paths、附帶腳本、觸發測試和評估。

    Claude0

同產品的其他教學

  1. 01

    Claude Code 配 Sentry MCP 排查線上報錯:添加命令、瀏覽器授權、貼 issue 連結修 bug 和插件子智能體

    線上報錯只能手動複製堆棧給 Claude Code?Sentry 官方提供 MCP 服務,可以讓它直接讀 issue、堆棧和 trace。本文按 Claude Code 官方 MCP 文檔和 Sentry MCP 官方說明,講添加命令、/mcp 授權、典型排查流程、插件方式和自託管注意事項。

    Claude0
  2. 02

    Claude Code 配 Context7 MCP 查最新文檔:兩種安裝方式、use context7 怎麼寫、指定庫和版本

    Claude Code 寫出來的代碼用了舊版 API?Context7 是一個把庫的最新文檔餵給編程助手的 MCP 服務。本文按 Context7 官方倉庫和文檔,講兩種安裝方式、在 Claude Code 裏的添加命令、use context7 與 library ID 的寫法,以及使用時的注意事項。

    Claude0
  3. 03

    Claude API 用量層級與速率限制:Evaluation / Start / Build / Scale 怎麼分、月度花費上限、自設上限和怎麼申請提額

    Claude API 的限額到底按什麼算?按官方《Rate limits》講清用量層級、RPM / ITPM / OTPM、緩存讀取為何不佔 ITPM、各層級月度花費上限、自設花費上限的 400、工作區限額、響應頭,以及在 Console 裏 Request tier increase 提額。

    Claude0
  4. 04

    Claude API 模型 ID 怎麼寫、怎麼查可用模型:dateless 命名、別名區別、Models API 的 lifecycle 和 capabilities

    model 參數該填什麼?按官方《Models overview》《Model IDs and versioning》《List Models》講清 Claude 模型 ID 的格式、4.6 之前帶日期與之後不帶日期的區別、別名是什麼,以及用 GET /v1/models 查可用模型、生命週期和能力字段。

    Claude0
  5. 05

    Claude API 代碼執行工具(code execution)怎麼用:tools 寫法、上載文件分析、取回生成文件、容器限制和計費

    想讓 Claude API 真的跑代碼做數據分析、生成圖表和文件?按官方《Code execution tool》講清三個工具版本、最小請求、上載 CSV 分析、$OUTPUT_DIR 取回文件、容器內存與聯網限制、錯誤碼、容器複用和計費規則。

    Claude0
  6. 06

    Claude API 聯網搜尋工具(web search tool)怎麼用:tools 寫法、max_uses、域名過濾、引用字段和計費

    想讓 Claude API 回答帶最新資訊?按官方《Web search tool》講清 web_search 工具的三個版本、請求寫法、max_uses、域名過濾、引用字段、錯誤碼和計費,附排查表。

    Claude0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~