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