LLM の思考制御:13 モデルの対応・無視・厳密適用
目次
同じ思考制御パラメータでも、どのモデルに送るかによって3つの異なる意味を持ちます。thinking_budget: 16 は Qwen 3.8 Max、GLM 5.2、そして両方の DeepSeek V4 ビルドではちょうど16個の推論トークンを消費し、Kimi K3 と MiniMax M3 では黙って無視され、GPT-5.6 では400エラーで拒否されます。私たちは9つのベンダーの13モデルを、OpenAI互換サーフェスが受け付けるあらゆる制御スペリングで調査し、その後、同じ4つのソルト付きタスクで、セルごとに3回ずつ実行し、各ダイヤル位置が推論トークンでいくらかかり、正確性で何を壊すかを測定しました。
TL;DR
thinking: {"type": "disabled"}は13モデル中11モデルで推論をゼロにする。例外の2つ(Gemini pro、GPT-5.6)はこれを拒否する。- Qwen、GLM、DeepSeek は
thinking_budget: 16をちょうど16として消費する。Kimi と MiniMax はこのフィールドを受け入れるが何も変更しない。Kimi はその上限に対して8〜97を消費し、16になることはなかった。 - 思考をオフにすると、5ステップの算術が8モデルで3/3から0〜1/3に低下した。DeepSeek V4 Pro と Claude は、ステップを可視の回答に書き込むことで3/3を維持した。
- JSON抽出は、オフをサポートする12モデルすべてで思考オフの状態で3/3を記録した。
各 API はどの思考制御を受け付けるのか?
OpenAI 互換 API では、主に 3 系統の制御方法が使われている。すべてに対応するモデルはない。reasoning_effort は enum(none から max まで)、thinking_budget は token 数を指定する。thinking: {"type": "disabled"} と類似の enable_thinking: false は、思考の完全無効化を要求する。各セルで簡単な salt 付き質問を 1 回実行した結果は次のとおり。
| モデル | reasoning_effort | thinking_budget | thinking: disabled |
|---|---|---|---|
| kimi-k3 | 全7値 | 受理されるが無視される | 動作する (rt=0) |
| qwen3.8-max | 全7値 | 正確 (16 → 16; 0は拒否) | 動作する |
| deepseek-v4-flash-0731 | 5値、オフ位置なし | 正確 (16 → 16) | 動作する |
| deepseek-v4-pro | 5値、オフ位置なし | 正確 | 動作する |
| gpt-5.6-luna | 7値中5値 (minimal/maxはアップストリームで拒否) | 拒否 (400) | 拒否 (400) |
| glm-5.2 | 全7値 | 正確 (16 → 16) | 動作する |
| gemini-3.6-flash | 全値; none/minimalは完全にオフ | 変換され、粗い: 0-64 = オフ、1,024で上限 | 動作する (ct=2) |
| gemini-3.1-pro-preview | none/minimalは拒否 (proは無効化不可) | 消費を抑え、高値を下限で切り上げ (64 → 204) | 拒否 (400) |
| minimax-m3 | 受理される; noneは無視される | 受理されるが無視される | 動作する (ct=2) |
| Dola-Seed-2.0-pro | 4値; minimalは完全にオフ | 0 = オフ; 非ゼロは無視される (16 → 36-64) | 動作する (rt=0) |
| claude-sonnet-5 | output_config.effort | budget_tokensは拒否 (400) | 動作する |
| claude-opus-5 | output_config.effort | budget_tokensは拒否 (400) | 動作する |
| claude-fable-5 | output_config.effort | 受理される | 受理される |
2つの行には注意が必要です。Googleは自社の路線を分けています。flashティアはきれいにオフになる一方、proティアはすべてのオフ指定を400で拒否し、pro級の思考は無効化できないというGoogleの立場に沿っています。また、「accepted」とマークされた2つのclaude-fable-5のセルは、そのモデルについて思考が無効化できないと明記したAnthropicの公開契約と異なるため、これらのセルは流動的なものとして扱ってください。
「受理」は「適用」を意味するのか?
意味しない。この差にも料金が発生する。200 レスポンスから分かるのはパラメータの parse に成功したことだけで、モデルまで届いた保証はない。判別方法は単純だ。budget に 16 を指定して、meter を確認すればよい。
Qwen、GLM、そして両方のDeepSeekビルドは、ちょうど16を消費しました。Kimiは同じ上限に対して4回の実行で8、19、79、97を消費し、一度も16にはならず、MiniMaxも18〜44で同じ挙動を示し、通常通り課金され、レスポンスには上限が無視されたことを示唆するものは何もありませんでした。Geminiは予算をネイティブな制御へと粗い粒度で変換します。flashでは、0から64までの上限は完全なオフとして動作し、1,024は思考を許可しました(5ステップのタスクで中央値141)。proティアは上限下で消費を削減しましたが、要求された64に対して約200で下限に達し、ゼロには到達できません。GPT-5.6とClaudeはこのスペクトルの誠実な側に位置します。数値予算は400で拒否され、自分の立ち位置が即座に分かります。
運用では、思考制御を設定した直後のレスポンスで completion_tokens_details.reasoning_tokens を確認し、実際に値が動いたか検証する。明示的に失敗する制御ならコストは 1 回の retry で済む。黙って失敗する制御では、上限を設けたつもりの reasoning 料金がリクエストのたびに発生する。
共通の off-switch はあるのか?
thinking: {"type": "disabled"} が最も近い挙動を示します。13モデルのうち11モデルで推論をゼロにしました。対象はKimi、Qwen、両方のDeepSeek、GLM、Gemini flash、MiniMax、ByteDanceのSeedシリーズ、そして3つのClaudeモデルすべてに及びます。その類似形である enable_thinking: false はほぼすべての箇所で一致しますが、静かな例外が1つあります。MiniMaxはこれを受け入れつつも推論を継続します(我々の検証では31推論トークン)。
2つの例外は、静かにではなく大声で失敗します。Gemini proはすべてのスペルミスに対して400を返し(このティアはthinkingを無効化できません)、GPT-5.6もこのフィールドを拒否します。GPT-5.6は同じ意味でのオフスイッチを必要としません。gpt-5.6-lunaはデフォルトで単純な検索や抽出に対して推論トークンを一切消費せず(そのファミリーの2レバーパターン)、reasoning_effort: "none"は数式のような入力に対してもその挙動を固定します。
thinking を無効にすると精度はどこまで落ちるのか?
5 ステップの連続算術では大幅に落ちる。thinking を無効にした瞬間、8 モデルが 3/3 から 0/3 または 1/3 に低下した。2 段階の文章問題では影響が小さい。多くのモデルが thinking 無効でも 3/3 を維持し、0/3 まで落ちたのは Kimi と MiniMax だけだった。K3 の調査で launch build に確認したものと同じ不安定な off 状態だ。モデルが 1 回の回答生成で保持できる範囲をステップ数が超えると、精度が急落する。
| モデル | 5 ステップの乗算。thinking 有効 | 5 ステップの乗算。thinking 無効 |
|---|---|---|
| kimi-k3 | 3/3(52 rt) | 1/3 |
| qwen3.8-max | 3/3(96 rt) | 0/3 |
| deepseek-v4-flash-0731 | 3/3(70 rt) | 1/3 |
| deepseek-v4-pro | 3/3(112 rt) | 3/3(回答が 142 token に増加) |
| gpt-5.6-luna | 3/3(33 rt) | 0/3 |
| glm-5.2 | 3/3(237 rt) | 0/3 |
| gemini-3.6-flash | 3/3(338 rt) | 0/3 |
| minimax-m3 | 3/3(66 rt) | 1/3 |
| Dola-Seed-2.0-pro | 3/3(128 rt) | 0/3 |
| claude-sonnet-5 | 3/3(70 out) | 3/3(出力が 139 token に増加) |
| claude-opus-5 | 3/3(60 out) | 3/3 |
正答率を維持した 3 モデルには共通点がある。thinking を無効にすると、中間ステップを回答本文に書く。DeepSeek V4 Pro の回答中央値は 115 token から 142 token に増え、Sonnet 5 は 70 token から 139 token に増えた。hidden reasoning への支払いが visible reasoning への支払いに変わる。多くの料金表では、どちらも同じ出力単価だ。「off」は支出をなくすというより、費目を付け替えている。off 時に 1-4 token で即答するモデルほど精度が急落する。
精度が急落するケースでも、小さな budget を与えれば回復する。thinking_budget: 256 にすると、Qwen と 2 つの DeepSeek ビルドは reasoning token の中央値 77-128 で 3/3 に戻った。DeepSeek の再学習版と Qwen 3.8 の hidden cap で測定したのと同じ、最小予算で精度を救済できるパターンだ。
マトリクス内には、数値をまったく取得できないセルが 1 つあった。claude-fable-5 は、すべての effort 設定で、使用した算術問題の表現に対して 12 回中 12 回 stop_reason: "refusal"(category cyber)を返した。意味が同じ別表現では 12 回中 12 回成功した。Anthropic は refusal を正式な stop reason として文書化 しており、opt-in の fallback も用意している。fable クラスのモデルを rotation に含めるなら、必要になる前にこの stop reason を処理できるようにする。
effort level で実際に得られるものは何か?
ベンダーごとに曲線が異なり、右肩上がりになるのは Google だけだった。同じ 5 ステップのタスクに対して、各モデルが受理する enum をすべて試した。各設定を 3 回実行し、中央値を同じ尺度で描画した。

曲線は 4 種類に分かれる。実際に効く throttle:2 つの Gemini は単調に増加する。flash は reasoning token が 137 から 390、pro は 180 から 387 まで増加し、high で頭打ちになる。low でも精度は 3/3 を維持し、上位設定の 3 分の 1 から 2 分の 1 の token しか使わない。Gemini pipeline では low を明示的なデフォルトにする価値がある。横ばい:DeepSeek は low の 78 から max の 54 へ緩やかに減少し、Kimi は minimal の 94 から max の 67、MiniMax は順序性なく 61-93 だった。複数段階の設定はあるが、どの位置にしても実質的な変化はない。DeepSeek の model card は「max reasoning effort」での benchmark を掲載しているが、以前の検証でもデフォルトとの差は確認できなかった。上限に届かない cap:Qwen の level は budget 上限として機能する。この規模のタスクでは上限に届かないため、85-156 の間で推移して傾向は見られない。深い処理でのみ違いが出ることは、単独の検証で確認している。非単調:GLM は low の 184 と max の 345 に対し、high が 116 だった。この対応関係が安定するまでは、中間設定に順序があると考えないほうがよい。2 つの adaptive モデルでは、設定自体の必要性が低い。gpt-5.6-luna は enum 全体で 32 から 41 token の範囲に収まった。Opus 5 の output_config.effort で変わる visible output も誤差範囲内で、54-63 token だった。Sonnet 5 も同様に 71-92 token で、実際の判断は adaptive thinking 側が行う。
運用方針は曲線の形から決まる。Gemini では level ごとに実際の料金が変わるため、意図的に選ぶ。Qwen、GLM、DeepSeek では enum ではなく、厳密に適用される thinking_budget と off-switch を使う。それ以外では enum は off と default の間を飾るだけだ。どの種類かを判定するには、上記の ladder test を行うしかない。同じタスクをすべての設定で実行し、meter を確認する。
タスク形状による違いは他にも当てはまる。単一ステップの JSON 抽出では、thinking 有効時の消費量がマトリクス全体でも最大級だった。GLM は reasoning token を 377、Gemini flash は 332 消費したが、効果はなかった。thinking を無効化できる 12 モデルは、すべて無効時に 3/3 を記録した。構造化抽出は、無駄な reasoning 料金が最も大きくなりやすく、しかも off-switch を安全に使える workload だ。
支払った reasoning の内容は見えるのか?
billing meter は共通だが、thinking の内容は共通ではない。open-weight 系のうち 6 モデルは、reasoning テキストを reasoning_content で返す。GLM 5.2 と DeepSeek V4 Pro は、ほぼ完全な chain に見える内容を返した。GLM は reasoning token 167 に対して 508 文字、DeepSeek V4 Pro は 100 token に対して 312 文字だった。Kimi、Qwen、DeepSeek Flash、MiniMax、Seed が返す trace は短く、少ない token 消費量とおおむね一致する。GPT-5.6 と 2 つの Gemini は何も返さない。reasoning token は課金されるが、内容は見えない。Claude は thinking block を返すが、今回測定した API surface では内容がデフォルトで省略される。thinking が実行されたことは分かるが、中身は分からない。
この可視性の違いは budget の挙動を debug するときに重要になる。何も返さないモデルでは、usage details の reasoning_tokens だけが判断材料だ。200 レスポンスではなく、meter を信頼する。
FAQ
OpenAI 互換 API で thinking を無効にするには?
thinking: {"type": "disabled"} を送信してください。私たちの13モデルのマトリックスでは、11モデル(Kimi、Qwen、DeepSeek x2、GLM、Gemini flash、MiniMax、Seed、そしてClaudeファミリー)で推論がゼロになりました。Gemini pro はオフにできず、400を返します。GPT-5.6 はこのフィールドを拒否しますが、デフォルトでは単純なタスクではほとんど思考しません。次のレスポンスで reasoning_tokens を読んで確認してください。
thinking_budget: 0 で thinking を無効にできる?
モデルによって異なります。Gemini flashとByteDance Seedでは、0はクリーンなオフとして機能します。QwenとDeepSeekは0を400で拒否します。KimiとMiniMaxはどんなバジェットも受け入れますが無視します。バジェットがトークン単位で厳密に適用される場合(Qwen、GLM、DeepSeek)、最小限の有用な値は小さな正の数です。256は、5ステップのタスクにおいてQwenと両方のDeepSeekビルドで3/3を維持しましたが、GLMは同じ設定で2/3に揺らぎました。
JSON 抽出で thinking を無効にしても安全?
今回の測定では安全だった。単一ステップの抽出は、thinking を無効化できる全モデルで 3/3 を記録した。thinking 有効時は同じ出力のために最大 377 reasoning token を消費した。境界を決めるのは出力形式ではなく、ステップ数だ。複数ステップのタスクでは、11 モデル中 8 モデルが thinking なしで破綻した。ただし、DeepSeek の調査 で確認した例外がある。0731 の再学習版では thinking 有効時に strict JSON の値が壊れたため、off-switch は正確性を直す手段にもなる。
thinking budget を厳密に適用するモデルは?
Qwen 3.8 Max、GLM 5.2、そして両方のDeepSeek V4ビルド:リクエスト16に対して、メーターは16を示します。Kimi K3とMiniMaxは同じフィールドを受け付けますが無視します。Geminiはそれを大まかに変換します(flashでは小さいキャップはoffとして機能し、proでは高い値を最低値に切り下げます)。GPT-5.6とClaude 5世代のモデルは数値予算を完全に拒否します(Claudeのbudget_tokensは適応的思考を指す400を返します)。
Synthoraiゲートウェイを通じて2026-08-11/12に測定:13モデルにわたるreasoning_effort(7つの値)、thinking_budget(0/16/1024)、enable_thinking、thinking:{"type":"disabled"}の受け入れプローブを、公開の数時間前に再検証。その後、552コールの税マトリクス(4つのソルト付きタスク形状 x アームごとに3回の実行、アームは各モデルの検証済みで動作するコントロールに限定)、5ステップのタスクにおける183コールのフルenumラダー(チャートのデータ)、追加セル、モデルごとの推論可視性プローブを実施。精度は生の回答から採点。トークンの中央値はn=3、推論トークンはcompletion_tokens_details.reasoning_tokensから読み取り(Claudeモデルは出力トークンのみを報告)。プロンプトはコールごとにソルト付与。ダイヤルのセマンティクスとenumはこの日に測定した表面であり、変更される可能性がある。単一のセルに依存する前に再プローブすること。