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 →
| 呼び出し先 | アップストリーム | 挙動 | 説明 |
|---|---|---|---|
/v1/chat/completions | OpenAI-compatible (GPT, GLM, DeepSeek, Qwen, Kimi…) | そのまま転送 | そのままプロバイダーへ転送されます。例外が 1 つあり、モデルのカタログ項目が受け付けるエフォート段階を宣言している場合は、最低段階より低い値はその段階に引き上げ、最高段階より高い値は引き下げます(GPT-6.1 Sol は推論をオフにできないため、none と minimal は low で実行されます)。それ以外では、ゲートウェイは値を検証せず、プロバイダーが従うことも保証しません。一般的な値は minimal・low・medium・high ですが、受け付ける範囲はプロバイダー次第です(OpenAI は多くのモデルで none も、GLM は max まで受け付けます)。 |
/v1/chat/completions | Google Vertex - Gemini 4 | 変換 | Gemini の thinkingLevel に変換され、Gemini 4 Argon が受け付ける 3 つのレベルに収められます。none と minimal は low で実行され(このモデルは思考をオフにできません)、low/medium/high はそのまま対応し、xhigh と max は high で実行されます。リクエストに明示的な google.thinking_config がある場合はそちらが優先されます。 |
/v1/chat/completions | Google Vertex - Gemini 3.x | 変換 | Gemini の thinkingLevel に変換されます。none と minimal はどちらも minimal に、low/medium/high はそのまま対応します。リクエストに明示的な google.thinking_config がある場合はそちらが優先されます。 |
/v1/chat/completions | Google Vertex - Gemini 2.5 | 破棄 | Gemini 2.5 は thinkingBudget しか解釈せず、thinkingLevel は拒否します。そのためゲートウェイはどちらも送らず、モデルの既定の思考動作のままにします。2.5 を制御するには google.thinking_config の thinking_budget を使ってください。 |
/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 トークンのバジェットになります(逆方向のバケット対応の逆写像)。導出されたバジェットは max_tokens 未満に収まるよう調整され、max_tokens が Anthropic の最小値 1,024 トークンに満たない場合は送信されません。そのため effort を指定しても、動いていたリクエストがアップストリームの 400 になることはありません。 |
/v1/messages | OpenAI-compatible (GPT, GLM, DeepSeek, Qwen, Kimi…) | 変換 | 拡張思考が有効かつ予算が 0 より大きい場合に、thinking.budget_tokens から段階的に導出されます:2,048 以下は low、8,192 以下は medium、それ以上は high。予算が 0 または未指定なら何も送りません。カタログ項目が受け付けるエフォート段階を宣言しているモデル(GPT-6.1 Sol)では、代わりにリクエストの意図に従います。thinking が disabled または between_tools なら、output_config.effort が同時に指定されていても最低段階(low)で実行し、それ以外は output_config.effort をそのままエフォートとして送ります。 |
/v1/responses | OpenAI-compatible (GPT, GLM, DeepSeek, Qwen, Kimi…) | 変換 | Responses API の reasoning.effort オブジェクトから読み取り、フラットな reasoning_effort フィールドとして送信します。 |
thinking / thinking_budget / enable_thinking
| 呼び出し先 | アップストリーム | 挙動 | 説明 |
|---|---|---|---|
/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 | 変換 | thinkingConfig.thinkingLevel に正規化されます。Gemini 4 Argon は thinkingBudget を拒否するためです。思考のオフは low で実行され、明示的な予算はレベルに換算されます(2,048 トークンまでは low、8,192 までは medium、それを超えると high)。リクエストに明示的な google.thinking_config があれば、そちらが優先されます。 |
/v1/chat/completions | Google Vertex - Gemini 3.x | 変換 | thinkingConfig に正規化されます。思考のオフは thinkingLevel:"minimal"、明示的な予算は thinkingBudget になります。リクエストに明示的な google.thinking_config があれば、そちらが優先されます。 |
/v1/chat/completions | Google Vertex - Gemini 2.5 | 変換 | thinkingConfig.thinkingBudget に正規化されます——思考のオフは予算 0 を送信し、明示的な予算はそのまま渡します。2.5 は thinkingLevel を拒否するため、ここでは使いません。リクエストに明示的な google.thinking_config があれば、そちらが優先されます。 |
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.