output_config.effort(努力檔位)和 thinking(自適應思考)的正確用法。
基礎的通道、計費與接入資訊請先看 Claude API 基礎說明。
適用模型:Claude Opus 4.8 / 4.7 / 4.6、Sonnet 4.6 等。本文以 Opus 4.8 為例。
線上測試工具
不想寫程式碼?可以先用 API易 線上推理測試工具體驗:選擇模型與 effort 檔位、設定 Max Tokens、勾選「請求返回思考摘要」,即可直接對比不同檔位的推理效果。推理測試 · API易 線上工具
網頁端直接呼叫 Claude(也支援 GPT / Gemini)推理測試,無需寫程式碼,填入 API易 令牌即可使用。

請求的基本結構
Endpoint 與請求頭
經 API易 轉 Bedrock 時,客戶端仍用 Anthropic 原生格式(
x-api-key + /v1/messages),閘道內部負責翻譯成 Bedrock 的 bedrock-2023-05-31。你不需要寫 anthropic_version: bedrock-2023-05-31。最小請求體
effort 努力檔位
effort 控制 Claude 願意花多少 token 來產出結果,在「徹底程度」和「速度/成本」之間權衡。它影響全部 token 消耗:正文、工具呼叫、以及擴充套件思考。
帶 effort 的請求體
檔位一覽
各模型支援的檔位
不是所有模型都支援全部檔位。xhigh 是 Opus 4.7 才新增的,max 不支援 Sonnet:
thinking 自適應思考
Opus 4.7 / 4.8 用自適應思考:由模型自己決定何時思考、思考多少,配合 effort 控制深度。thinking.type: "adaptive"—— 開啟自適應思考(不傳則不思考)。thinking.display: "summarized"—— 讓響應裡返回思考摘要塊;不需要展示可刪掉。- effort 與思考的關係:
high/xhigh/max幾乎總會深度思考;low/medium在簡單題上可能跳過思考。 display預設值隨模型不同:Opus 4.6 預設summarized,Opus 4.7 / 4.8 預設omitted(思考塊仍在,但thinking文本為空,前端表現為「正文前一段停頓」)。想穩定拿到摘要就顯式寫display: "summarized"。- 沒有
-thinking字尾的原生模型。是否思考由thinking引數決定,不是靠模型名字尾;xxx-thinking都是第三方別名,直接用基礎模型 ID +thinking引數即可。
thinking 摘要的本質(重要)
- 摘要由 Anthropic 官方(模型/服務層)生成,不是閘道或第三方模型二次加工;原始思維鏈(raw CoT)永不原文返回,你拿到的就是官方摘要。
- 不能用 system prompt 定製 thinking 摘要的語氣/格式。
system影響的是模型「怎麼思考」和「最終回答」的風格,摘要只是內部推理的可讀呈現。語氣、排版、風格等要求請放進對最終回答的約束,讓它體現在text塊裡。 - 不要在 prompt 裡要求模型把內部推理「原文」輸出到回答中 —— 可能觸發拒答(
stop_reason: "refusal",stop_details.category可能為reasoning_extraction)。需要看推理就讀display: "summarized"的摘要。
多輪對話在同一模型上繼續時,要把上一輪收到的 thinking 塊原樣回傳(含簽名、含空文本塊)—— API 拒絕被修改過的 thinking 塊。展示摘要沒問題,但不要編輯後再回傳。
解析響應
響應的content 是一個塊陣列,按 type 區分:
usage 欄位:
若
stop_reason 為 max_tokens,說明輸出被 max_tokens 截斷(高 effort 下思考容易吃滿),此時正文可能為空 —— 把 max_tokens 調大即可。流式(stream)下的 thinking 欄位
stream: true 時,思考內容不走 delta.text,而是專門的事件序列:
正文文本仍走
delta.type = "text_delta" → delta.text。若 display: "omitted",思考塊照常出現但 delta.thinking 為空字串。
完整可執行示例
經 Bedrock 時的注意事項
常見報錯排查
"thinking.type.enabled" is not supported for this model
經 AWS(Bedrock)通道呼叫 Opus 4.7 / 4.8 時,最常見的一個 400 報錯:
thinking: { "type": "enabled", "budget_tokens": N }。Opus 4.7 / 4.8(以及更新的模型)已移除這種寫法,只支援自適應思考;AWS 上游會直接返回 ValidationException 400。這與 thinking 自適應思考 章節的提示一致。
解決:刪掉 type: "enabled" 和 budget_tokens,改用 adaptive + output_config.effort 控制思考深度。
不想思考時:Opus 4.7 / 4.8 可傳
thinking: { "type": "disabled" },或乾脆不傳 thinking 欄位(不傳即不思考)。參考
- Anthropic — Effort 文件:
platform.claude.com/docs/en/build-with-claude/effort - AWS Bedrock — Adaptive thinking:
docs.aws.amazon.com/bedrock/latest/userguide/claude-messages-adaptive-thinking.html - AWS Bedrock — Claude Opus 4.8:
docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-4-8.html