Parameters by Upstream
Some request fields do not mean the same thing everywhere. This page states what the gateway does with each one on the way to each provider - passed through, translated into the provider's own equivalent, or dropped.
This is not a list of every accepted field; each endpoint page documents its own request body. Listed here are the fields where supported is not a yes or no, because the answer changes with the provider your model runs on.
reasoning_effort
Full guide, with values and cost impact →
| You call | Upstream | Behaviour | 說明 |
|---|---|---|---|
/v1/chat/completions | OpenAI-compatible (GPT, GLM, DeepSeek, Qwen, Kimi…) | 透傳 | Forwarded to the provider as sent, with one exception: when a model's catalog entry lists the effort levels it accepts, a value below the lowest is raised to it and one above the highest steps down (GPT-6.1 Sol cannot turn reasoning off, so none and minimal run at low). Otherwise the gateway neither validates the value nor guarantees the provider honours it. Commonly minimal, low, medium and high, but the accepted set is the provider's: OpenAI also takes none on most models, GLM takes up to max. Check the provider's own reference for its range. |
/v1/chat/completions | Google Vertex - Gemini 4 | 對應 | Becomes Gemini's thinkingLevel, kept inside the three levels Gemini 4 Argon accepts: none and minimal run at low (the model cannot turn thinking off), low/medium/high map straight across, xhigh and max run at high. An explicit google.thinking_config in the request wins over this mapping. |
/v1/chat/completions | Google Vertex - Gemini 3.x | 對應 | Becomes Gemini's thinkingLevel: none and minimal both map to minimal, low/medium/high map straight across. An explicit google.thinking_config in the request wins over this mapping. |
/v1/chat/completions | Google Vertex - Gemini 2.5 | 丟棄 | Gemini 2.5 only understands thinkingBudget and rejects thinkingLevel outright, so the gateway sends neither and leaves the model at its default thinking behaviour. Use google.thinking_config with thinking_budget to control 2.5. |
/v1/chat/completions | Anthropic (Claude) | 對應 | 轉換為模型可接受形式的 Anthropic thinking。在只支援自適應思考的 Claude 型號上(Claude Opus 4.7 及以後、Sonnet 5 及以後、Haiku 5.5),low/medium/high/xhigh/max 轉為 thinking:{"type":"adaptive"},並以同一檔位寫入 output_config.effort;minimal 依 low 處理。none 依該型號自己的寫法關閉思考:多數型號為 {"type":"disabled"},Sonnet 5.5 為 {"type":"between_tools"},Opus 5.5 無法關閉思考,依 low 檔位以自適應方式執行。其他取值不會轉發。在更早的 Claude 型號上則轉換為預算:none 與 minimal 關閉思考({"type":"disabled"});low/medium/high/xhigh/max 分別對應 2,048 / 8,192 / 16,384 / 32,768 token 的預算——即反方向那套分桶對應的逆對應。檔位衍生出的預算會被限制在 max_tokens 以內;當 max_tokens 連 Anthropic 的 1,024 token 下限都放不下時則完全不下發,因此設定檔位絕不會把一個原本能成功的請求變成上游 400。 |
/v1/messages | OpenAI-compatible (GPT, GLM, DeepSeek, Qwen, Kimi…) | 對應 | Derived from thinking.budget_tokens by bucket, when extended thinking is enabled and the budget is above zero: up to 2,048 tokens becomes low, up to 8,192 becomes medium, above that becomes high. A zero or absent budget sends nothing. For a model whose catalog entry lists the effort levels it accepts (GPT-6.1 Sol), the request's intent is followed instead: thinking disabled or between_tools runs at the lowest level (low), even when output_config.effort is also set; otherwise output_config.effort is sent as the effort. |
/v1/responses | OpenAI-compatible (GPT, GLM, DeepSeek, Qwen, Kimi…) | 對應 | Read out of the Responses-API reasoning.effort object and sent as the flat reasoning_effort field. |
thinking / thinking_budget / enable_thinking
| You call | Upstream | Behaviour | 說明 |
|---|---|---|---|
/v1/chat/completions | Anthropic (Claude) | 對應 | 這些是別家供應商替同一個旋鈕取的名字,閘道會統一歸一。thinking:{"type":"disabled"}、enable_thinking:false、thinking_budget:0 都表示關閉思考,效果與該型號上的 reasoning_effort none 相同。在更早的 Claude 型號上,thinking_budget:N 與 thinking:{"type":"enabled","budget_tokens":N} 的預算原樣透傳;超出範圍的值由上游拒絕,而不是被我們悄悄改掉。在只支援自適應思考的型號上不會下發預算,而是折算為 output_config.effort(不超過 2,048 為 low,不超過 8,192 為 medium,低於 32,768 為 high,32,768 及以上為 xhigh;不會折成 max)。單獨的 thinking:{"type":"adaptive"} 不下發任何思考設定,模型依預設行為執行。 |
/v1/chat/completions | Google Vertex - Gemini 4 | 對應 | Normalised into thinkingConfig.thinkingLevel, because Gemini 4 Argon rejects thinkingBudget: turning thinking off runs at low, and an explicit budget is folded into a level (up to 2,048 tokens low, up to 8,192 medium, above that high). An explicit google.thinking_config in the request still wins. |
/v1/chat/completions | Google Vertex - Gemini 3.x | 對應 | Normalised into thinkingConfig: turning thinking off becomes thinkingLevel:"minimal", and an explicit budget becomes thinkingBudget. An explicit google.thinking_config in the request still wins over all of it. |
/v1/chat/completions | Google Vertex - Gemini 2.5 | 對應 | Normalised into thinkingConfig.thinkingBudget - turning thinking off sends a budget of 0, and an explicit budget passes through. thinkingLevel is not used here because 2.5 rejects it. An explicit google.thinking_config in the request still wins. |
Every row is transcribed from the converter that implements it and pinned by a Go test, so this table cannot drift from the running gateway without a build failing.