調用 Gemini 3.0 Pro Preview 或 gemini-3-flash-preview 模型時遇到 thinking_budget and thinking_level are not supported together 錯誤?這是 Google Gemini API 在不同模型版本間參數升級導致的兼容性問題。本文將從 API 設計演進角度,系統解析這個錯誤的根本原因和正確的配置方法。
核心價值: 讀完本文,你將掌握 Gemini 2.5 和 3.0 模型思考模式參數的正確配置方法,避免常見的 API 調用錯誤,優化模型推理性能和成本控制。

Gemini API 思考模式參數演進核心要點
| 模型版本 | 推薦參數 | 參數類型 | 配置示例 | 適用場景 |
|---|---|---|---|---|
| Gemini 2.5 Flash/Flash-Lite | thinking_budget |
整數或 -1 | thinking_budget: 0 (禁用)thinking_budget: -1 (動態) |
精確控制思考 token 預算 |
| Gemini 3.0 Pro/Flash | thinking_level |
枚舉值 | thinking_level: "minimal"/"low"/"medium"/"high" |
簡化配置,按場景分級 |
| 兼容性說明 | ⚠️ 不可同時使用 | – | 同時傳遞兩個參數會觸發 400 錯誤 | 根據模型版本選擇其一 |
Gemini 思考模式參數核心差異
Google 在 Gemini 3.0 引入 thinking_level 參數的核心原因是簡化開發者配置體驗。Gemini 2.5 的 thinking_budget 要求開發者精確估算思考 token 數量,而 Gemini 3.0 的 thinking_level 將複雜度抽象爲 4 個語義化等級,降低了配置門檻。
這種設計變化反映了 Google 在 API 演進中的取捨:犧牲部分精細控制能力,換取更好的易用性和跨模型一致性。對於大多數應用場景,thinking_level 的抽象已經足夠,只有在需要極致成本優化或特定 token 預算控制時,才需要使用 thinking_budget。
💡 技術建議: 在實際開發中,我們建議通過 API易 apiyi.com 平臺進行接口調用測試。該平臺提供統一的 API 接口,支持 Gemini 2.5 Flash、Gemini 3.0 Pro、Gemini 3.0 Flash 等模型,有助於快速驗證不同思考模式配置的實際效果和成本差異。
錯誤根本原因:參數設計的向前兼容策略
API 錯誤信息解析
{
"status_code": 400,
"error": {
"message": "Unable to submit request because thinking_budget and thinking_level are not supported together.",
"type": "upstream_error",
"code": 400
}
}
這個錯誤的核心信息是 thinking_budget 和 thinking_level 不能同時存在。Google 在 Gemini 3.0 引入新參數時,並未完全廢棄舊參數,而是採用了互斥策略:
- Gemini 2.5 模型: 只接受
thinking_budget,忽略thinking_level - Gemini 3.0 模型: 優先使用
thinking_level,同時接受thinking_budget以保持向後兼容,但不允許兩者同時傳遞 - 錯誤觸發條件: API 請求中同時包含
thinking_budget和thinking_level參數
爲什麼會出現這個錯誤?
開發者遇到這個錯誤,通常是以下 3 種場景:
| 場景 | 原因 | 典型代碼特徵 |
|---|---|---|
| 場景 1: SDK 自動填充 | 某些 AI 框架(如 LiteLLM、AG2)會根據模型名自動填充參數,導致同時傳遞兩個參數 | 使用封裝好的 SDK,未檢查實際請求體 |
| 場景 2: 硬編碼配置 | 代碼中硬編碼了 thinking_budget,後續切換到 Gemini 3.0 模型時未更新參數名 |
配置文件或代碼中同時存在兩個參數的賦值 |
| 場景 3: 模型別名誤判 | 使用 gemini-flash-preview 等別名,實際指向 Gemini 3.0,但按 2.5 參數配置 |
模型名包含 preview 或 latest,參數配置未同步更新 |

🎯 選擇建議: 在切換 Gemini 模型版本時,建議先通過 API易 apiyi.com 平臺測試參數兼容性。該平臺支持快速切換 Gemini 2.5 和 3.0 系列模型,方便對比不同思考模式配置的響應質量和延遲差異,避免在生產環境中遇到參數衝突。
3 種解決方案:根據模型版本選擇正確參數
方案 1: Gemini 2.5 模型配置 (使用 thinking_budget)
適用模型: gemini-2.5-flash、gemini-2.5-pro 等
參數說明:
thinking_budget: 0– 完全禁用思考模式,最低延遲和成本thinking_budget: -1– 動態思考模式,模型根據請求複雜度自動調整thinking_budget: <正整數>– 精確指定思考 token 數量上限
極簡示例
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1"
)
response = client.chat.completions.create(
model="gemini-2.5-flash-preview-04-17",
messages=[{"role": "user", "content": "解釋量子糾纏的原理"}],
extra_body={
"thinking_budget": -1 # 動態思考模式
}
)
print(response.choices[0].message.content)
查看完整代碼 (包含思考內容提取)
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1"
)
response = client.chat.completions.create(
model="gemini-2.5-flash-preview-04-17",
messages=[{"role": "user", "content": "解釋量子糾纏的原理"}],
extra_body={
"thinking_budget": -1, # 動態思考模式
"include_thoughts": True # 啓用思考摘要返回
}
)
# 提取思考內容 (如果啓用)
for part in response.choices[0].message.content:
if hasattr(part, 'thought') and part.thought:
print(f"思考過程: {part.text}")
# 提取最終回答
final_answer = response.choices[0].message.content
print(f"最終回答: {final_answer}")
建議: Gemini 2.5 模型將於 2026 年 3 月 3 日退役,建議儘早遷移到 Gemini 3.0 系列。可通過 API易 apiyi.com 平臺快速對比遷移前後的響應質量差異。
方案 2: Gemini 3.0 模型配置 (使用 thinking_level)
適用模型: gemini-3.0-flash-preview、gemini-3.0-pro-preview
參數說明:
thinking_level: "minimal"– 最小思考,接近零預算,需要傳遞思考簽名(Thought Signatures)thinking_level: "low"– 低強度思考,適合簡單指令跟隨和聊天場景thinking_level: "medium"– 中等強度思考,適合一般推理任務(僅 Gemini 3.0 Flash 支持)thinking_level: "high"– 高強度思考,最大化推理深度,適合複雜問題(默認值)
極簡示例
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1"
)
response = client.chat.completions.create(
model="gemini-3.0-flash-preview",
messages=[{"role": "user", "content": "分析這段代碼的時間複雜度"}],
extra_body={
"thinking_level": "medium" # 中等強度思考
}
)
print(response.choices[0].message.content)
查看完整代碼 (包含思考簽名傳遞)
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1"
)
# 第一輪對話
response_1 = client.chat.completions.create(
model="gemini-3.0-flash-preview",
messages=[{"role": "user", "content": "設計一個 LRU 緩存算法"}],
extra_body={
"thinking_level": "high",
"include_thoughts": True
}
)
# 提取思考簽名 (Gemini 3.0 自動返回)
thought_signatures = []
for part in response_1.choices[0].message.content:
if hasattr(part, 'thought_signature'):
thought_signatures.append(part.thought_signature)
# 第二輪對話,傳遞思考簽名以保持推理鏈
response_2 = client.chat.completions.create(
model="gemini-3.0-flash-preview",
messages=[
{"role": "user", "content": "設計一個 LRU 緩存算法"},
{"role": "assistant", "content": response_1.choices[0].message.content, "thought_signatures": thought_signatures},
{"role": "user", "content": "優化這個算法的空間複雜度"}
],
extra_body={
"thinking_level": "high"
}
)
print(response_2.choices[0].message.content)
💰 成本優化: 對於預算敏感的項目,可以考慮通過 API易 apiyi.com 平臺調用 Gemini 3.0 Flash API,該平臺提供靈活的計費方式和更優惠的價格,適合中小團隊和個人開發者。配合
thinking_level: "low"可進一步降低成本。
方案 3: 動態模型切換的參數適配策略
適用場景: 需要在代碼中同時支持 Gemini 2.5 和 3.0 模型
智能參數適配函數
def get_thinking_config(model_name: str, complexity: str = "medium") -> dict:
"""
根據模型版本自動選擇正確的思考模式參數
Args:
model_name: Gemini 模型名稱
complexity: 思考複雜度 ("minimal", "low", "medium", "high", "dynamic")
Returns:
適用於 extra_body 的參數字典
"""
# Gemini 3.0 模型列表
gemini_3_models = [
"gemini-3.0-flash-preview",
"gemini-3.0-pro-preview",
"gemini-3-flash",
"gemini-3-pro"
]
# Gemini 2.5 模型列表
gemini_2_5_models = [
"gemini-2.5-flash-preview-04-17",
"gemini-2.5-flash-lite",
"gemini-2-flash",
"gemini-2-flash-lite"
]
# 判斷模型版本
if any(m in model_name for m in gemini_3_models):
# Gemini 3.0 使用 thinking_level
level_map = {
"minimal": "minimal",
"low": "low",
"medium": "medium",
"high": "high",
"dynamic": "high" # 默認高強度
}
return {"thinking_level": level_map.get(complexity, "medium")}
elif any(m in model_name for m in gemini_2_5_models):
# Gemini 2.5 使用 thinking_budget
budget_map = {
"minimal": 0,
"low": 512,
"medium": 2048,
"high": 8192,
"dynamic": -1
}
return {"thinking_budget": budget_map.get(complexity, -1)}
else:
# 未知模型,默認使用 Gemini 3.0 參數
return {"thinking_level": "medium"}
# 使用示例
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1"
)
model = "gemini-3.0-flash-preview" # 可動態切換
thinking_config = get_thinking_config(model, complexity="high")
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "你的問題"}],
extra_body=thinking_config
)

| 思考複雜度 | Gemini 2.5 (thinking_budget) | Gemini 3.0 (thinking_level) | 推薦場景 |
|---|---|---|---|
| 最小 | 0 |
"minimal" |
簡單指令跟隨、高吞吐量應用 |
| 低 | 512 |
"low" |
聊天機器人、輕量級 QA |
| 中 | 2048 |
"medium" |
一般推理任務、代碼生成 |
| 高 | 8192 |
"high" |
複雜問題求解、深度分析 |
| 動態 | -1 |
"high" (默認) |
自動適配複雜度 |
🚀 快速開始: 推薦使用 API易 apiyi.com 平臺快速搭建原型。該平臺提供開箱即用的 Gemini API 接口,無需複雜配置,5 分鐘即可完成集成,支持一鍵切換不同思考模式參數進行效果對比。
Gemini 3.0 思考簽名 (Thought Signatures) 機制詳解
什麼是思考簽名?
Gemini 3.0 引入的思考簽名 (Thought Signatures) 是模型內部推理過程的加密表示。當你啓用 include_thoughts: true 時,模型會在響應中返回思考過程的加密簽名,你可以在後續對話中傳遞這些簽名,讓模型保持推理鏈的連貫性。
核心特性:
- 加密表示: 簽名內容不可讀,僅模型可解析
- 推理鏈保持: 多輪對話中傳遞簽名,模型可基於之前的思考繼續推理
- 強制返回: Gemini 3.0 默認返回思考簽名,即使未請求
思考簽名的實際應用場景
| 場景 | 是否需要傳遞簽名 | 說明 |
|---|---|---|
| 單輪問答 | ❌ 不需要 | 獨立問題,無需保持推理鏈 |
| 多輪對話 (簡單) | ❌ 不需要 | 上下文足夠,無複雜推理依賴 |
| 多輪對話 (複雜推理) | ✅ 需要 | 例如:代碼重構、數學證明、多步驟分析 |
| 最小思考模式 (minimal) | ✅ 必須 | thinking_level: "minimal" 要求傳遞簽名,否則返回 400 錯誤 |
思考簽名傳遞示例代碼
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1"
)
# 第一輪:讓模型設計算法
response_1 = client.chat.completions.create(
model="gemini-3.0-pro-preview",
messages=[{"role": "user", "content": "設計一個分佈式限流算法"}],
extra_body={
"thinking_level": "high",
"include_thoughts": True
}
)
# 提取思考簽名
signatures = []
for part in response_1.choices[0].message.content:
if hasattr(part, 'thought_signature'):
signatures.append(part.thought_signature)
# 第二輪:基於之前的推理繼續優化
response_2 = client.chat.completions.create(
model="gemini-3.0-pro-preview",
messages=[
{"role": "user", "content": "設計一個分佈式限流算法"},
{
"role": "assistant",
"content": response_1.choices[0].message.content,
"thought_signatures": signatures # 傳遞思考簽名
},
{"role": "user", "content": "如何處理分佈式時鐘不一致問題?"}
],
extra_body={"thinking_level": "high"}
)
💡 最佳實踐: 在需要多輪複雜推理的場景(如系統設計、算法優化、代碼審查),建議通過 API易 apiyi.com 平臺測試思考簽名傳遞的效果差異。該平臺支持完整的 Gemini 3.0 思考簽名機制,方便驗證不同配置下的推理質量。
常見問題
Q1: 爲什麼 Gemini 2.5 Flash 設置 thinking_budget=0 後仍然返回思考內容?
這是一個已知的 Bug,在 Gemini 2.5 Flash Preview 04-17 版本中,thinking_budget=0 未被正確執行。Google 官方論壇已確認此問題。
臨時解決方案:
- 使用
thinking_budget=1(極小值) 而非 0 - 升級到 Gemini 3.0 Flash,使用
thinking_level="minimal" - 在後處理中過濾思考內容 (如果 API 返回了 thought 字段)
推薦通過 API易 apiyi.com 快速切換到 Gemini 3.0 Flash 模型,該平臺支持最新版本,可避免此類 Bug。
Q2: 如何判斷當前使用的是 Gemini 2.5 還是 3.0 模型?
方法 1: 檢查模型名稱
- Gemini 2.x: 名稱包含
2.5-flash、2-flash-lite - Gemini 3.x: 名稱包含
3.0-flash、3-pro、gemini-3-flash
方法 2: 發送測試請求
# 僅傳遞 thinking_level,觀察響應
response = client.chat.completions.create(
model="your-model-name",
messages=[{"role": "user", "content": "test"}],
extra_body={"thinking_level": "low"}
)
# 如果返回 400 錯誤且提示不支持 thinking_level,說明是 Gemini 2.5
方法 3: 查看 API 響應頭
部分 API 實現會在響應頭中返回 X-Model-Version 字段,可直接識別模型版本。
Q3: Gemini 3.0 的 thinking_level 等級具體消耗多少 token?
Google 官方未公開不同 thinking_level 對應的精確 token 預算,僅給出以下指導:
| thinking_level | 相對成本 | 相對延遲 | 推理深度 |
|---|---|---|---|
| minimal | 最低 | 最低 | 幾乎無思考 |
| low | 低 | 低 | 淺層推理 |
| medium | 中等 | 中等 | 中等推理 |
| high | 高 | 高 | 深度推理 |
實測建議:
- 通過 API易 apiyi.com 平臺對比不同等級的實際 token 消耗
- 使用相同提示詞,分別調用 low/medium/high,觀察計費差異
- 根據實際業務場景(響應質量 vs 成本)選擇合適等級
Q4: 可以在 Gemini 3.0 中強制使用 thinking_budget 嗎?
可以,但不推薦。
Gemini 3.0 爲了向後兼容,仍然接受 thinking_budget 參數,但官方文檔明確指出:
"While
thinking_budgetis accepted for backwards compatibility, using it with Gemini 3 Pro may result in suboptimal performance."
原因:
- Gemini 3.0 的內部推理機制已針對
thinking_level優化 - 強制使用
thinking_budget可能繞過新版本的推理策略 - 可能導致響應質量下降或延遲增加
正確做法:
- 遷移到
thinking_level參數 - 參考上述"方案 3"的參數適配函數,動態選擇正確參數
總結
Gemini API thinking_budget 和 thinking_level 報錯的核心要點:
- 參數互斥: Gemini 2.5 使用
thinking_budget,Gemini 3.0 使用thinking_level,不可同時傳遞 - 模型識別: 通過模型名稱判斷版本,2.5 系列用
thinking_budget,3.0 系列用thinking_level - 動態適配: 使用參數適配函數,根據模型名自動選擇正確參數,避免硬編碼
- 思考簽名: Gemini 3.0 引入思考簽名機制,多輪複雜推理場景需傳遞簽名保持推理鏈
- 遷移建議: Gemini 2.5 將於 2026 年 3 月 3 日退役,建議儘早遷移到 3.0 系列
推薦通過 API易 apiyi.com 快速驗證不同思考模式配置的實際效果。該平臺支持 Gemini 全系列模型,提供統一接口和靈活計費方式,適合快速對比測試和生產環境部署。
作者: APIYI 技術團隊 | 如有技術問題,歡迎訪問 API易 apiyi.com 獲取更多 AI 模型接入方案。
