Gemini 3.1 Pro Thinking 推理中途停下:修复

Gemini 3.1 Pro Thinking 推理到一半被截,或最终答案很短没推理痕迹。多半是 thinking level 或输出上限的问题。2026 年 6 月已核实的修复办法。

你在 Gemini 3.1 Pro 上开了 thinking,问一道难数学、证明或代码题,结果要么思维链中途断了,要么直接给一个明显跳过推理的短答案。在 AI Studio 里有时还能看见思考 token 用光,最终答案根本没出现。

最快修复(九成情况): 你的输出预算用完了。maxOutputTokens 默认只有 8192,而在 Gemini 3.1 Pro 上,思考 token 是从同一份预算里扣的。难题在默认的 high 思考档可以烧掉 20K 以上 token 推理,8K 根本不够留给答案。把 maxOutputTokens 调到 65536(模型上限),通常马上就能拿到完整答案。消费版调不了这个,所以把真正推理那一步挪到 AI Studio 或 API 上做。

本文首发以来有一个重要变化:截至 2026 年 6 月,当前模型是 Gemini 3.1 Pro(2026 年 2 月 19 日发布),它用 thinking_level(low / medium / high)控制推理深度,而不是 Gemini 2.5 系列那个数字型的 thinking_budget。数字预算在 3.1 Pro 上还作为旧版兼容能用,但现在官方支持的是 thinking_level

你属于哪一类

现象最可能的原因跳到
思考过程很长,然后答案很短或被截maxOutputTokens 太低(思考把预算吃光了)步骤 1
思考过程突然结束,模型说”那我就用…”推理在结束前就被封顶步骤 2
答案完整但很浅,没真正推理thinking_level 太低,或思考关着步骤 3 + 步骤 6
API / AI Studio 没问题,但 app 里会截断消费版限制输出,且对 Deep Think 设了门槛步骤 5
只在长对话很深的地方才截上下文膨胀,留给本轮的空间太少步骤 4

常见原因(按出现频率)

1. maxOutputTokens 太低 —— 思考把预算吃光了(最常见)

在 Gemini 3.1 Pro 上,思考 token 和可见答案 token 是从同一份 maxOutputTokens 里出。默认是 8192。在默认的 high 思考档,模型可以花 20,000 以上 token 推理,所以还没写出一个字答案,8K 就用完了。

如何确认:response.usage_metadata.thoughts_token_count(API)—— 如果它接近你的 maxOutputTokens,就是被思考耗光了。AI Studio 里则是思考栏很长,但答案框很短或为空。

2. 推理在结束前被封顶

如果你强行设了一个小的数字型 thinking_budget(3.1 Pro 的旧版用法,或 2.5 Pro 上的任何值),模型撞到上限被迫收尾,最终答案就短而粗糙。

如何确认: 思考过程突然结尾,带收尾口吻,比如”在预算之内我就定为…”或”那我就用…”。

3. thinking_level 对任务来说太低

low 是给翻译、分类用的;medium 是平衡的日常默认;high 是完整的 Deep Think Mini 推理。如果给证明题或多文件重构设了 low,模型想得不够,答案就单薄。

4. 对话中段上下文膨胀

一段已经堆了很多长轮次的对话,留给当前轮的空间就少。思考加答案仍要全部塞进 maxOutputTokens,臃肿的上下文会把两边都挤掉。

5. 消费版限制思考,并对 Deep Think 设门槛

gemini.google.com 的输出上限远低于 API,而且不让你调高。app 里有一个 Thinking Level 菜单(Standard / Extended Thinking / Deep Think),截至 2026 年 6 月,Gemini 3.1 Pro 上的 Deep Think 仅限 Google AI Ultra($99.99/月),而 Extended Thinking 对所有用户免费。Standard 档基本不深想。

6. Prompt 太开放

“深入思考 X”没边界,会在岔路上游荡、烧光预算。一个有范围的 prompt(“分 3 阶段解决,然后停下给答案”)收敛更快,也能在预算内完成。

最短修复路径

步骤 1:调高 maxOutputTokens(先做这一步)

这一个改动就能修掉大部分截断。Gemini 3.1 Pro 的上限是 65536

在 AI Studio 里:

aistudio.google.com
→ 模型:Gemini 3.1 Pro
→ 右侧 "Run settings":
    Max output tokens:65536
    Thinking level:High        (2.5 时代这里是数字型的 "Thinking budget" 滑块)

因为思考和答案共用这份预算,给满 64K 后,即使思考很长,也仍有充足空间留给答案。

步骤 2:API 里设 thinking_level + 大输出上限

thinking_level(low / medium / high)是 Gemini 3.1 Pro 当前的控制项。默认是 high,但显式写出来,你才知道自己拿到的是什么档。

from google import genai
from google.genai import types

client = genai.Client(api_key="YOUR_API_KEY")
response = client.models.generate_content(
    model="gemini-3.1-pro-preview",
    contents="证明前 n 个立方数之和等于前 n 个整数之和的平方,并以 n=5 验证。",
    config=types.GenerateContentConfig(
        max_output_tokens=65536,
        thinking_config=types.ThinkingConfig(
            thinking_level="high",
            include_thoughts=True,
        ),
    ),
)

# 诊断:看思考与答案各占多少
print(response.usage_metadata.thoughts_token_count)
print(response.usage_metadata.candidates_token_count)

include_thoughts=True 会返回推理摘要,你能看清楚它在哪儿停的。thoughts_token_count 告诉你到底是思考、还是答案,把预算吃掉了。

如果你还在用更早的 Gemini 2.5 Pro,改用旧版数字预算(那里没有 thinking_level):

thinking_config=types.ThinkingConfig(
    thinking_budget=-1,      # -1 = 动态;2.5 Pro 有效范围是 128..32768
    include_thoughts=True,
)

不要同时设 thinking_levelthinking_budget —— 它们会冲突。

步骤 3:让 thinking_level 匹配任务

  • low —— 翻译、分类、格式化。又快又省。
  • medium —— 大多数日常推理。质量/成本平衡得好。
  • high —— 证明、难算法、多步调试。这就是 Deep Think Mini。

当答案完整但偏浅时,把卡住的 low/medium 任务提到 high,往往就够了。

步骤 4:结构化 prompt 让推理更快收敛

不要”深入思考”,而要明确范围:

分 3 阶段解决:
阶段 1:用你自己的话复述问题(最多 100 字)。
阶段 2:列 2-3 个候选方法(每个最多 200 字)。
阶段 3:选最好的一个,完整执行,验证。

到此停下并给答案。

分阶段让模型挑一条路走下去,而不是四处晃,于是每个 token 换来的有效推理更多。

步骤 5:超硬题分多轮

如果一个问题超过单轮的输出预算,就拆开。每一轮都拿到一份全新的 maxOutputTokens:

第 1 轮:"<问题> 最有希望的 3 种方法是什么?选最好的一个。"
第 2 轮:"现在完整执行 <X> 方法,给出全部证明。"
第 3 轮:"现在用独立方法验证。"

整体推理深度比一口气问深得多,而且没有哪一轮会被截断。

步骤 6:确认思考真的开着

  • App: 在 prompt 框里点模型名,选 Pro,再点一次模型名,选 Thinking Level,然后选 Extended Thinking(免费)或 Deep Think(Google AI Ultra)。Standard 档不深想。
  • API: 在 3.1 Pro 上即使不传 ThinkingConfig 也默认 high,但如果你照搬了 2.5 时代带 thinking_budget=0 的代码,思考就是关着的 —— 删掉它,或改用 thinking_level

步骤 7:非要待在 app 里的用户

如果对话必须留在 gemini.google.com(比如要共享对话)而思考反复被截,就在 AI Studio 里以 Thinking level: HighMax output tokens: 65536 做那一步重推理,再把结论贴回共享对话。

如何确认已修好

  1. max_output_tokens=65536 重跑同一个 prompt。
  2. 打印 response.usage_metadata.thoughts_token_countcandidates_token_count。思考应当明显低于总量,给答案留出空间。
  3. response.candidates[0].finish_reason —— STOP 表示干净收尾;MAX_TOKENS 表示你还在撞上限(继续调高预算或拆分问题)。
  4. 可见答案完整(没有半句截断),并且有真正的推理,而不是一行猜测。

常见问题

为什么 Gemini 3.1 Pro 对一个短答案报告了那么多输出 token? 因为思考 token 也按输出计费、计数。一个 200 字的答案背后可能带着 15K 以上思考 token。看 thoughts_token_count 就能看清分布。这也是为什么账单和 maxOutputTokens 用量看起来很高。

thinking_budget 怎么了?我的旧代码还在用它。 数字型 thinking_budget 是 Gemini 2.5 的控制项(范围 128..32768,-1 为动态)。Gemini 3.x 用 thinking_level(low/medium/high)取代了它。thinking_budget 在 3.1 Pro 上还作为旧版兼容能用,但官方建议迁到 thinking_level,而且两者不能同时设。

Gemini 3.1 Pro 能把思考关掉吗? 不能。不像 Gemini 2.5 Flash(thinking_budget=0 可关闭),Gemini 3.1 Pro 总会思考。最低只能到 thinking_level="low"

为什么只在 app 里截断,API 里不会? 消费版限制输出且你调不了,而 3.1 Pro 上的 Deep Think 又被锁在 Google AI Ultra。做长的数学/证明/代码,用 AI Studio 或 API,那里你能自己控 maxOutputTokensthinking_level

调到 65536 还是被截,怎么办? 你碰到的是真正的大任务。看 finish_reason —— 如果是 MAX_TOKENS,把工作拆成多轮(步骤 5),让每轮都拿到全新的 64K 预算;或把 thinking_level 降到 medium,少花 token 推理、多留给答案。

预防

  • API 里做任何不平凡的推理,默认 max_output_tokens=65536 —— 思考和这份预算共用。
  • 显式设 thinking_level(难题用 high,日常用 medium),这样你清楚它想多深。
  • 数学、证明、复杂代码,用 AI Studio 或 API —— 消费版藏起了旋钮,还把 Deep Think 锁在 Google AI Ultra 后面。
  • prompt 写成编号阶段,减少游荡,在预算内收尾。
  • 开发时保留 include_thoughts=True,盯着 thoughts_token_count —— 它能立刻告诉你是思考还是答案没空间了。

相关

外部参考:

标签: #Gemini #排查 #thinking