LLM 思考控制实测:13 个模型如何接受、忽略或执行参数
相同的思考控制参数根据你发送给哪个模型会有三种不同的含义:thinking_budget: 16 在 Qwen 3.8 Max、GLM 5.2 以及两个 DeepSeek V4 构建版本上恰好消耗 16 个推理 token,在 Kimi K3 和 MiniMax M3 上被静默忽略,而在 GPT-5.6 上则被拒绝并返回 400。我们用 OpenAI 兼容接口所接受的每一种控制写法,对来自九家厂商的 13 个模型进行了探测,然后测量了每个旋钮位置在推理 token 上的成本,以及它在准确性上造成的破坏,测试在相同的四个加盐任务上进行,每个单元格运行三次。
TL;DR
thinking: {"type": "disabled"}在 13 个模型中的 11 个上将推理归零;两个例外(Gemini pro、GPT-5.6)拒绝该设置。- Qwen、GLM 和 DeepSeek 将
thinking_budget: 16恰好用作 16;Kimi 和 MiniMax 接受该字段但不作任何改变:Kimi 在该上限下消耗了 8-97,从未达到 16。 - 关闭思考使 5 步算术在八个模型上从 3/3 降至 0-1/3;DeepSeek V4 Pro 和 Claude 通过将步骤写入可见答案中保持了 3/3。
- 在所有 12 个支持关闭思考的模型上,JSON 提取在关闭思考的情况下得分为 3/3。
每个 API 接受哪些思考控制参数?
OpenAI 兼容接口上常见的思考控制参数分为 3 类,没有任何模型同时遵循全部参数。reasoning_effort 接受枚举值(从 none 到 max),thinking_budget 接受 token 数量,thinking: {"type": "disabled"}(以及类似的 enable_thinking: false)用于强制关闭。下面是实测的接受情况,每个单元使用一道简单的加盐问题:
| 模型 | reasoning_effort | thinking_budget | thinking: disabled |
|---|---|---|---|
| kimi-k3 | 全部 7 个值 | 接受,被忽略 | 有效(rt=0) |
| qwen3.8-max | 全部 7 个值 | 精确(16 → 16;0 被拒绝) | 有效 |
| deepseek-v4-flash-0731 | 5 个值,无关闭档位 | 精确(16 → 16) | 有效 |
| deepseek-v4-pro | 5 个值,无关闭档位 | 精确 | 有效 |
| gpt-5.6-luna | 7 个中的 5 个值(minimal/max 在上游被拒绝) | 被拒绝(400) | 被拒绝(400) |
| glm-5.2 | 全部 7 个值 | 精确(16 → 16) | 有效 |
| gemini-3.6-flash | 全部值;none/minimal 真正关闭 | 转换、粗略:0-64 = 关闭,1,024 封顶 | 有效(ct=2) |
| gemini-3.1-pro-preview | none/minimal 被拒绝(pro 无法禁用) | 降低消耗,高值取下限(64 → 204) | 被拒绝(400) |
| minimax-m3 | 接受;none 被忽略 | 接受,被忽略 | 有效(ct=2) |
| Dola-Seed-2.0-pro | 4 个值;minimal 真正关闭 | 0 = 关闭;非零值被忽略(16 → 36-64) | 有效(rt=0) |
| claude-sonnet-5 | output_config.effort | budget_tokens 被拒绝(400) | 有效 |
| claude-opus-5 | output_config.effort | budget_tokens 被拒绝(400) | 有效 |
| claude-fable-5 | output_config.effort | 接受 | 接受 |
有两行值得标注。Google 将自己的产品线一分为二:flash 层级可以干净地关闭,而 pro 层级则用 400 拒绝所有关闭写法,这符合 Google 认为 pro 级思考无法被禁用的立场。而两个标记为”accepted”的 claude-fable-5 单元格与 Anthropic 为该模型公布的约定不符,后者规定思考无法被禁用;请将这些单元格视为尚未定论。
“接受”是否等于“执行”?
不等于,而且差额会计费。收到 200 响应,只能说明参数通过了解析,不能证明参数真正传到了模型。区分两者的方法很简单:把预算设为 16,然后查看计量结果。
Qwen、GLM 和两个 DeepSeek 版本都恰好消耗了 16。Kimi 在四次运行中针对相同的上限分别消耗了 8、19、79 和 97,从未达到 16,而 MiniMax 在 18-44 时表现相同,按常规计费,响应中没有任何迹象表明上限已被取消。Gemini 以粗粒度将预算转换为其原生控制:在 flash 上,0 到 64 的上限表现为完全关闭,而 1,024 则允许思考(在我们的 5 步任务中中位数为 141);pro 层级在上限下削减了消耗,但针对请求的 64 会触底约 200,且无法达到零。GPT-5.6 和 Claude 处于该光谱中诚实的一端:数字预算会被以 400 拒绝,你立刻就知道自己的处境。
实际使用时,每次设置思考控制参数后,都应查看下一条响应中的 completion_tokens_details.reasoning_tokens,确认档位确实发生了变化。显式失败只会让你多重试一次;静默失败则会让每次调用都产生原本以为已经封顶的推理费用。
是否存在通用的关闭开关?
thinking: {"type": "disabled"} 是最接近的方案:它在 13 个模型中的 11 个上将推理归零,涵盖 Kimi、Qwen、两个 DeepSeek、GLM、Gemini flash、MiniMax、字节跳动的 Seed 系列以及全部三个 Claude 模型。它的相似方案 enable_thinking: false 在几乎所有地方都能匹配,但有一个静默的例外:MiniMax 接受它但仍保持思考(在我们的探测中有 31 个推理 token)。
这两个例外会显式报错,而非静默失败:Gemini pro 对每一个拼写错误都返回 400(该档位无法禁用思考),GPT-5.6 也会拒绝该字段。GPT-5.6 在同样意义上不需要关闭开关:gpt-5.6-luna 默认对简单查询和提取消耗零推理 token(该系列的双杠杆模式),并且 reasoning_effort: "none" 也能将此行为锁定到数学形态的输入上。
关闭思考会损失多少准确率?
对于 5 步算术链,代价几乎是全部准确率:思考一关,8 个模型就从 3/3 跌到 0/3 或 1/3。对于两跳文字题,影响要小得多:多数模型关闭思考后仍能保持 3/3,只有 Kimi 和 MiniMax 降至 0/3,这与 K3 首发版本测试中发现的脆弱关闭状态 相同。当步骤数量超过模型单次可见生成所能处理的范围时,准确率就会断崖式下降。
| 模型 | 5 步算术链,开启思考 | 5 步算术链,关闭思考 |
|---|---|---|
| kimi-k3 | 3/3(52 rt) | 1/3 |
| qwen3.8-max | 3/3(96 rt) | 0/3 |
| deepseek-v4-flash-0731 | 3/3(70 rt) | 1/3 |
| deepseek-v4-pro | 3/3(112 rt) | 3/3(答案增长到 142 个 token) |
| gpt-5.6-luna | 3/3(33 rt) | 0/3 |
| glm-5.2 | 3/3(237 rt) | 0/3 |
| gemini-3.6-flash | 3/3(338 rt) | 0/3 |
| minimax-m3 | 3/3(66 rt) | 1/3 |
| Dola-Seed-2.0-pro | 3/3(128 rt) | 0/3 |
| claude-sonnet-5 | 3/3(70 out) | 3/3(输出增长到 139 个 token) |
| claude-opus-5 | 3/3(60 out) | 3/3 |
这 3 个仍然过关的模型采用了同一种办法:关闭思考后,把中间步骤直接写进可见答案。DeepSeek V4 Pro 的回复中位长度从 115 个 token 增至 142 个,Sonnet 5 则从 70 个增至 139 个。隐藏推理不再计费,费用转移到可见推理上;而多数价格表对二者采用相同的输出费率。因此,“关闭”更多只是换了费用名目,并没有真正消除支出。关闭后老老实实只输出 1-4 个 token 的模型,反而最容易出现准确率断崖。
对于会出现断崖的任务,较小的预算就能恢复准确率:thinking_budget: 256 让 Qwen 和两个 DeepSeek 版本重新达到 3/3,推理 token 中位数为 77-128。这与我们在 DeepSeek 重训版本和 Qwen 3.8 隐藏上限测试中观察到的低预算补救模式一致。
矩阵中有一个单元完全没有可用数据:claude-fable-5 对原始算术题表述连续 12 次返回 stop_reason: "refusal"(类别为 cyber),所有 effort 档位均如此;换成语义相同的另一种表述后,12 次全部通过。Anthropic 把拒绝记录为一种独立的停止原因,并提供了可选的回退机制。如果轮换策略中包含 fable 系列模型,应提前处理这种停止原因。
不同 effort 档位究竟能带来什么?
每家厂商的曲线都不一样,只有 Google 的曲线会随档位上升。我们在同一道 5 步任务上测试了每个模型接受的全部枚举值,每个档位运行 3 次,并把中位数绘制在同一尺度上:

这些曲线可以分成 4 类。真正的节流档位:两个 Gemini 都单调上升,flash 从 137 个推理 token 增至 390 个,pro 从 180 个增至 387 个,并在 high 档趋于饱和。low 档只消耗最高档位三分之一到二分之一的 token,却仍保持 3/3,因此值得设为 Gemini 流水线的默认值。平坦曲线:DeepSeek 从 low 的 78 降到 max 的 54,整体略微下降;Kimi 从 minimal 的 94 降到 max 的 67;MiniMax 则在 61-93 之间无规律波动。这些模型虽然提供多个档位,但各档位没有实际区别;DeepSeek 自己的模型卡使用“max reasoning effort”公布基准测试,而我们此前已发现该设置与默认值没有明显差异。未触发的上限:Qwen 的档位实际是预算上限,对于这种规模的任务不会生效,因此数据在 85-156 之间波动且没有趋势;只有处理深度任务时才能看到区别,单独测试结果也是如此。非单调曲线:GLM 的 high 消耗 116,低于 low 的 184 和 max 的 345;在档位映射稳定前,中间档位不能按顺序理解。两个自适应模型几乎不需要手动调档:gpt-5.6-luna 的整个枚举范围只有 32 到 41 个 token;Opus 5 的 output_config.effort 对可见输出的影响也只在噪声范围内(54-63 个 token,Sonnet 5 同样只有 71-92 个),真正的决策由自适应思考完成。
这些曲线直接给出了运维规则:Gemini 的每个档位都会产生真实的费用差异,必须明确选择。Qwen、GLM 和 DeepSeek 应使用严格执行的 thinking_budget 和关闭开关,而不是枚举值。其他模型的枚举值只是在关闭与默认状态之间充当装饰。要判断面对的是哪种情况,只能运行上面的档位测试:对同一个任务遍历所有档位,然后查看计量结果。
任务形态的影响同样具有普遍性。在单步 JSON 提取测试中,开启思考产生了整个矩阵中最高的消耗:GLM 为 377 个推理 token,Gemini flash 为 332 个,但结果没有任何改善。支持关闭思考的 12 个模型在关闭后全部取得 3/3。结构化提取承担了最高的无效推理税,同时又恰好是最适合安全关闭思考的工作负载。
能否看到费用花在了哪里?
计费数据普遍可见,思考内容则不一定。6 个开放权重系列模型会在 reasoning_content 中返回推理文本:GLM 5.2 和 DeepSeek V4 Pro 返回的内容接近完整思维链,分别为 508 和 312 个字符,对应 167 和 100 个推理 token;Kimi、Qwen、DeepSeek Flash、MiniMax 和 Seed 返回的轨迹更短,与其较低的消耗大致相符。GPT-5.6 和两个 Gemini 都不返回推理内容:推理 token 会计费,但不可见。Claude 会返回 thinking 块,但在我们测试的接口上,默认不会提供其中的内容。因此只能知道模型进行了思考,看不到具体过程。
这种可见性差异会影响预算行为的调试。对于不返回任何推理内容的模型,usage 详情中的 reasoning_tokens 是唯一的观测手段。还是同一条原则:相信计量数据,不要相信 200 响应。
常见问题
如何在 OpenAI 兼容 API 上关闭思考?
发送 thinking: {"type": "disabled"};在我们的 13 模型矩阵中,它使其中 11 个模型的推理归零(Kimi、Qwen、DeepSeek x2、GLM、Gemini flash、MiniMax、Seed 以及 Claude 系列)。Gemini pro 无法关闭并返回 400;GPT-5.6 拒绝该字段,但在简单任务上默认几乎不进行思考。可通过读取下一个响应中的 reasoning_tokens 来验证。
thinking_budget: 0 能关闭思考吗?
这取决于模型。在 Gemini flash 和 ByteDance Seed 上,0 表现为彻底关闭;Qwen 和 DeepSeek 会以 400 拒绝 0;Kimi 和 MiniMax 接受任意预算但忽略它。在按 token 严格执行预算的模型(Qwen、GLM、DeepSeek)上,最小的有效值是一个较小的正数:在我们的 5 步任务中,256 在 Qwen 和两个 DeepSeek 构建上都保持了 3/3,而 GLM 在相同设置下波动到了 2/3。
关闭思考后执行 JSON 提取安全吗?
在我们的测试中是安全的:所有支持关闭思考的模型,在单步提取任务中关闭后都取得 3/3;开启思考则会为相同输出额外消耗最多 377 个推理 token。边界取决于步骤数量,而非输出格式:在 11 个模型中,有 8 个关闭思考后无法完成多步任务。根据我们的 DeepSeek 测试,还有一个例外:0731 重训版本开启思考后反而会破坏严格 JSON 中的值,因此关闭思考同时也是正确性修复。
哪些模型会严格执行思考预算?
Qwen 3.8 Max、GLM 5.2 以及两个 DeepSeek V4 版本:请求 16,读数就是 16。Kimi K3 和 MiniMax 接受同样的字段但会忽略它;Gemini 会粗略地进行转换(在 flash 上,较小的数值等同于关闭,pro 会将较小值抬到 high);GPT-5.6 和 Claude 5 代模型则直接拒绝数值预算(Claude 的 budget_tokens 会返回一个指向自适应思考的 400)。
于 2026-08-11/12 通过 Synthorai 网关测量:针对 reasoning_effort(7 个值)、thinking_budget(0/16/1024)、enable_thinking 以及 thinking:{"type":"disabled"} 的接受性探测,覆盖 13 个模型,并在发布前数小时重新验证;随后进行了 552 次调用的税负矩阵(四种加盐任务形态 x 每组 3 次运行,各组仅限于每个模型经验证可用的控制项)、在 5 步任务上进行了 183 次调用的完整枚举阶梯(即图表数据)、补充单元格,以及每模型的推理可见性探测。准确率依据原始答案评分;token 中位数取 n=3;推理 token 读取自 completion_tokens_details.reasoning_tokens(Claude 模型仅报告输出 token)。提示词按每次调用加盐。旋钮语义与枚举是我们在该日期所测量的接口表现,可能会发生变化;在依赖任何单个单元格之前,请重新探测。