Claude Code 学习站

Claude 扩展思维(Extended Thinking)参考

整理 Claude 手动扩展思维模式的 budget_tokens 配置规则、交错思维、缓存交互及向自适应思维迁移的完整参考。

本页目录16
AI 摘要 · 已核查整理于 2026-06-08原文:Extended thinking(Anthropic)Claude API扩展思维参考文档
要点速览
  • 手动扩展思维通过 `thinking: {type: "enabled", budget_tokens: N}` 开启,`budget_tokens` 最小 1024,且必须小于 `max_tokens`(交错思维除外)
  • 该模式在 Claude 4.6 系列已废弃(仍可用),Claude 4.7 及更新模型直接拒绝并返回 400 错误,应迁移到 `thinking: {type: "adaptive"}` + `output_config.effort`
  • 更改 `budget_tokens` 会使提示缓存失效,应在同一对话生命周期内保持预算值稳定
  • 交错思维在不同模型代际支持差异较大,需按模型分别判断是否需要 `interleaved-thinking-2025-05-14` beta 头
  • 可通过响应中的 `usage.output_tokens_details.thinking_tokens` 字段追踪实际思维 token 消耗

本文是对 Anthropic 官方参考页的中文整理,完整与最新内容以原文为准:https://platform.claude.com/docs/en/build-with-claude/extended-thinking

概述与弃用状态

扩展思维(manual extended thinking)通过在请求中设置固定的思维 token 预算,让 Claude 在给出最终答案前先进行内部推理。适用于需要可预测延迟或需要精确控制思维成本的场景。

场景状态
thinking.type: "enabled" + budget_tokens(手动模式)在 Claude 4.6 系列模型上已弃用,但仍可正常请求成功
Claude 4.7 及更新模型不支持手动扩展思维,使用该参数会返回 400 错误
Claude 4.5 及更早支持思维的模型扩展思维是唯一可用的思维模式
Claude Mythos Preview同时支持手动扩展思维与自适应思维两种模式

若请求返回 400 错误,且错误信息以「"thinking.type.enabled" is not supported」开头,说明该模型使用的是自适应思维模式,应参考本文「迁移到自适应思维」章节。

凡两种模式都可用的模型,官方建议优先使用自适应思维(adaptive thinking)

支持的模型

各模型对扩展思维的支持情况(含仅支持扩展思维的模型列表),参见按模型配置对照表

基本用法

请求体中加入 thinking 对象即可启用:

{
  "model": "claude-sonnet-4-6",
  "max_tokens": 16000,
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  },
  "messages": [ ... ]
}

响应中的 content 数组会包含 type: "thinking" 的思维块(内容在 thinking 字段中,为摘要形式)和 type: "text" 的正文文本块。

budget_tokens 规则

规则说明
最小值 1,024 tokens小于该值 API 会拒绝请求
必须小于 max_tokens思维 token 计入该轮的 max_tokens 限额,需为最终回答留出空间
交错思维例外交错思维场景下,budget_tokens 可以超过 max_tokens,因为预算覆盖同一助手轮次内的所有思维块
不支持缓存预热由于 budget_tokens 必须小于 max_tokens,扩展思维无法与 max_tokens: 0(缓存预热)组合使用

budget_tokens 是目标值而非严格上限——Claude 实际用量可能远小于预算;max_tokens 才是输出总量的硬上限。

在 Claude Opus 4.5(唯一支持effort的纯扩展思维模型)上,effort 决定整体响应形态,budget_tokens 决定思维深度,两者需同时设置。

预算调优建议

任务类型建议起点
简单任务从接近 1,024 的最小值开始,逐步增加寻找最优区间
复杂任务从 16,000 tokens 起,依据延迟与质量需求调整
超过 32k 的思维预算建议改用批处理(batch processing),否则长时间运行的请求可能触发系统超时或连接数限制

预算越高通常推理越全面,但收益递减,且延迟增加。

用量追踪

响应中 usage.output_tokens_details.thinking_tokens 字段记录被计费输出 token 中用于内部推理的部分。流式返回时,该字段只出现在最后一个 message_delta 事件中。

手动模式下的交错思维(Interleaved Thinking)

交错思维允许 Claude 在同一助手轮次内的工具调用之间进行思考,对每个工具结果推理后再决定下一步。概念与轮次结构参见思维总览页

模型手动模式下的交错思维支持
Claude Opus 4.5、Claude Sonnet 4.5、Claude Opus 4.1、Claude Opus 4、Claude Sonnet 4需添加 beta 头 interleaved-thinking-2025-05-14
Claude Sonnet 4.6该 beta 头配合手动 type: "enabled" 仍可用但已弃用,建议改用自适应思维(无需该头)
Claude Opus 4.6手动模式完全不支持交错思维,需切换为 thinking: {type: "adaptive"}
Claude Haiku 4.5不支持交错思维;Claude API 会接受该 beta 头但忽略之

其他要点:

  • 在交错思维场景下,budget_tokens 可超过 max_tokens(见上文预算规则例外)
  • 交错思维仅支持通过 Messages API 使用的工具

各平台对 beta 头的处理

平台行为
Claude API、AWS 上的 Claude Platform在任意模型上接受 interleaved-thinking-2025-05-14 头,在不支持的模型上忽略它
Amazon Bedrock、Google Cloud(Vertex AI)同样在任意模型上接受该头且不报错,在不支持交错思维的模型上忽略它

注意:「接受」不等于「生效」——在拒绝 type: "enabled" 的模型(4.7 及更新)或手动模式不支持交错思维的模型(Claude Opus 4.6)上,该头在手动模式下不产生效果,此时是自适应思维自动完成交错。

手动模式下的轮次结构

通用的轮次结构规则(单轮工具调用循环、轮次中途配置冲突处理、跨轮次切换思维开关)参见思维总览页 - 工具使用中的思维

手动模式额外要求:启用思维的请求中,最后一个助手轮次必须以思维块开头(自适应思维取消了该要求)。跨轮次更改思维配置会使提示缓存失效(见下节)。

手动模式下的提示缓存

除思维模式通用的缓存行为(参见思维与提示缓存)外,手动模式额外规则:

跨请求更改 budget_tokens 会使缓存断点失效,原理与切换思维模式相同——因为预算值会被渲染进提示词中。

缓存断点类型更改 budget_tokens 后的影响
消息级(message-level)断点总是失效(miss)
工具与系统提示断点是否失效取决于模型在何处渲染该配置

实测示例(Claude Sonnet 4.6,消息级缓存)

请求说明usage 关键字段
第一次请求建立缓存cache_creation_input_tokens: 1370, cache_read_input_tokens: 0, input_tokens: 17, output_tokens: 700
第二次请求思维参数不变(预期命中缓存)cache_creation_input_tokens: 0, cache_read_input_tokens: 1370, input_tokens: 303, output_tokens: 874
第三次请求预算从 4,000 改为 8,000(预期缓存失效)cache_creation_input_tokens: 1370, cache_read_input_tokens: 0, input_tokens: 747, output_tokens: 619

建议:在同一缓存对话的生命周期内选定一个预算值并保持不变。

与思维模式无关的共享机制

以下内容在思维总览页统一说明,手动模式同样适用:

迁移到自适应思维(Adaptive Thinking)

情况是否需要迁移
模型仅支持扩展思维(Claude Sonnet 4.5、Claude Opus 4.5、Claude Haiku 4.5 及更早的 Claude 4 系列)暂不需要,type: "adaptive" 会返回 400 错误,应继续使用 budget_tokens 直到升级模型
使用 Claude Opus 4.6 或 Claude Sonnet 4.6需要迁移,budget_tokens 已弃用
迁移到 Claude Opus 4.7、Claude Opus 4.8、Claude Opus 5、Claude Sonnet 5、Claude Fable 5、Claude Mythos 5必须迁移,type: "enabled" 会返回 400 错误

迁移映射

迁移前:

{
  "model": "claude-sonnet-4-6",
  "max_tokens": 16000,
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  }
}

迁移后:

{
  "model": "claude-sonnet-4-6",
  "max_tokens": 16000,
  "thinking": {
    "type": "adaptive"
  },
  "output_config": {
    "effort": "high"
  }
}

即:移除 budget_tokens,设置 thinking: {type: "adaptive"},改用 output_config.effort 控制推理深度。effort: "high" 与 API 默认值一致,省略该字段效果相同。

行为差异(不仅是语法变化)

维度手动模式(固定预算)自适应模式
是否思考每次请求都思考由模型按每次请求自行判断是否思考及思考多少;在较低 effort 设置下,遇到简单输入可能完全跳过思考
interleaved-thinking-2025-05-14 beta 头部分模型需要迁移后可移除,自适应思维自动交错,Claude API 在这些模型上会忽略该头

思维块保留差异

模型是否在上下文中保留先前轮次的思维块(并计费为输入)
Claude Opus 4.5、编号 4.6 及以上的模型保留
Claude Sonnet 4.5、Claude Haiku 4.5 及更早模型剥离(不保留)

详见按模型的思维块保留说明

切换思维模式属于思维配置变更,切换后第一个请求会使缓存断点失效(与「手动模式下的提示缓存」章节所述规则相同)。

完整指引另见:自适应思维effort模型迁移指南