你在 Gemini 2.5 Pro 上开了 Thinking,问一道难数学或难代码题,结果要么思维链中途断了,要么直接给一个明显跳过推理步骤的短答案。在 AI Studio 里你能看见思考 token 被截掉,最终答案根本看不见。
修复几乎永远关乎预算。Gemini 2.5 Pro Thinking 有两个独立上限:thinkingBudget(模型用于内部推理的 token 数)和 maxOutputTokens(整次回复的总量,含思考)。消费版这些是隐藏的且小;AI Studio / API 可以大幅提高。
常见原因
按出现频率:
1. thinkingBudget 在推理结束前撞顶(最常见)
模型在推理,撞到设的 thinkingBudget,被迫收尾,最终答案就短而粗糙。AI Studio 默认预算(几千 token)对硬题第一遍就可能耗光。
如何判断:AI Studio 里,思考过程突然结尾,模型说”那我就用…”之类的收尾。
2. maxOutputTokens 太低(思考 + 答案合计)
在 Gemini 2.5 Pro 上,思考 token 也算在 maxOutputTokens 里(具体随 SDK 版本变,但总量是封顶的)。默认 8K 把所有东西封住。思考吃掉 6K,答案只剩 2K。
如何判断:思考很长,可见答案却很短而且不完整。
3. 消费版思考预算特别紧
gemini.google.com 比 AI Studio 思考上限更紧。app 里的”Thinking”开关有用,但你拨不大。
4. Prompt 太开放
“深入思考 X”没边界很容易在岔路上烧光预算。“分步思考 X,然后给结论”加结构,收敛更快。
5. 免费版思考预算更少
免费的 Gemini 2.5 Pro(在能用的地区)思考预算比 AI Pro 低。
6. 对话中段上下文膨胀
如果对话已经经过很多轮长上下文,留给当前轮思考的预算就少了。
步骤 1:在 AI Studio 调高预算
aistudio.google.com
→ 模型:Gemini 2.5 Pro
→ 右侧 "Run settings":
Max output tokens:65536
Thinking budget:24576(或 "Dynamic")
“Dynamic” 让模型按需消耗(模型上限内)。难题就用这个。
步骤 2:API 显式带 ThinkingConfig
from google import genai
from google.genai import types
client = genai.Client(api_key="YOUR_API_KEY")
response = client.models.generate_content(
model="gemini-2.5-pro",
contents="证明前 n 个立方数之和等于前 n 个整数之和的平方,并以 n=5 验证。",
config=types.GenerateContentConfig(
max_output_tokens=65536,
thinking_config=types.ThinkingConfig(
thinking_budget=24576,
include_thoughts=True,
),
),
)
include_thoughts=True 会把思考过程返回,你能看清楚它在哪儿停的。
步骤 3:结构化 prompt 让推理更快收敛
不要”深入思考”,而要明确范围:
分 3 阶段解决:
阶段 1:用你自己的话复述问题(最多 100 字)。
阶段 2:列 2-3 个候选方法(每个最多 200 字)。
阶段 3:选最好的一个,完整执行,验证。
到此停下并给答案。
分阶段让模型挑一条路走下去,而不是四处晃。每个 token 思考效率更高。
步骤 4:超硬题分多轮
如果一个问题超过你的单轮思考预算,拆开:
第 1 轮:"<问题> 最有希望的 3 种方法是什么?选最好的一个。"
第 2 轮:"现在完整执行 <X> 方法,给出全部证明。"
第 3 轮:"现在用独立方法验证。"
每轮拿到新的思考预算。整体推理深度比一口气问深得多。
步骤 5:消费版用户 — 换面板
如果非要在 gemini.google.com(比如要共享对话)而思考反复被截,可以在 AI Studio 实际推理,再把结论手动贴回消费版。
步骤 6:确认思考真的开着
App 里看模型选择器旁边的大脑图标或 Thinking 开关。API 里 thinking_budget=0 或没传 ThinkingConfig 就等于关掉了 — 确认你显式开了。
预防
- API 里做任何不平凡的推理,默认
max_output_tokens=65536,thinking_budget设动态或调高 - 数学、证明、复杂代码生成,优先 AI Studio,不要用消费版 — 思考旋钮是暴露的
- prompt 写成编号阶段(“阶段 1、阶段 2…”)减少四处游荡,在预算内收尾
- 真难题做多轮工作流,不要硬塞一个超大 prompt
- 开发时用
include_thoughts=True看思考在哪儿断 — 排查神器