最近 OpenRouter で DeepSeek V4.1 Flash を使っていて、困った状況に出くわしました。同じモデルなのに、とても賢いときもあれば、明らかに賢くないときもあるのです。賢くないときは、ツール呼び出し(tool call)の形式まで間違えたり、同じことを繰り返して堂々巡りになり、まったく進まなかったりします。モデル名は変わっていないのに、まるで別人のようでした。これで、普段見落としがちな点に気づきました。モデルを選ぶだけでなく、実際にどのプロバイダーがそのモデルを動かしているかも、使い心地に影響するのです。

OpenRouter では 1 つの入り口からさまざまなモデルを使えますが、同じモデルでも複数のプロバイダーが提供していることがあります。同じモデル名を選んでも、毎回同じプロバイダーが応答しているとは限りません。同じレシピを別々のお店に渡すようなものだと考えてください。レシピは同じでも、設備や作り方は違うかもしれません。モデルも同じで、リソース節約のために数値の精度を下げる「量子化」をしているところもあれば、モデルを動かすソフトウェアである推論エンジンが違うところもあり、さらに各社の設定もあります。その結果、回答やツールの使い方に差が出ることがあります。

OpenRouter 自身も同じモデルのプロバイダー間の品質差を記録しています。ツール呼び出しの性能も含まれます。プロバイダーが使い心地に影響するなら、いちばん直接的な方法は、自分が使って安定しているプロバイダーに固定することです。最も簡単なのは、OpenRouter の Privacy 設定でアカウントが使えるプロバイダー、つまりホワイトリストを設定することです。この設定はアカウント全体の API リクエストとチャットルームに適用されます。特定の 1 社だけを避けたい場合は、除外リストを設定することもできます。API を自分で呼び出す場合は、リクエストに次の内容を加えることもできます。

{
  "provider": {
    "only": ["<provider slug>"]
  }
}

<provider slug> を OpenRouter が使うプロバイダーの識別名に置き換えると、リクエストはリスト内のプロバイダーにだけ送られます。ここで使うのは only です。order は優先順位を決めるだけなので、それだけを設定すると、失敗した後に別のプロバイダーへ回される可能性があります。詳しいオプションは OpenRouter のルーティングのドキュメントを参照してください。私のようにツール経由でモデルを使っているなら、ツール側で設定することもできます。OpenCode の場合は、opencode.json で OpenRouter のモデルに次の設定を加えます。

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "openrouter": {
      "models": {
        "<OpenRouter model ID>": {
          "options": {
            "provider": {
              "only": ["<provider slug>"],
              "allow_fallbacks": false
            }
          }
        }
      }
    }
  }
}

<OpenRouter model ID> はモデルページにある完全な ID に、<provider slug> は使いたいプロバイダーの識別名に置き換えます。山かっこも一緒に置き換えてください。すでに設定ファイルがある場合は、この部分をマージすれば大丈夫です。OpenCode でのこの設定方法は公式ドキュメントを参考にしてください。

only はプロバイダーを制限し、allow_fallbacks: false はフォールバックを無効にします。1 社だけを指定すれば、常にそのプロバイダーを使うことになります。代償もはっきりしていて、そのプロバイダーが一時的に使えなくなると、リクエストが失敗する可能性があります。また、アカウントのホワイトリストとこの設定は同時に適用されるので、指定するプロバイダーはアカウントで許可されている必要があります。

以前はモデルを選ぶとき、モデル自体が十分に賢いかどうかを主に気にしていました。今回の経験で、モデル名だけでなく、プロバイダーも一緒に選ぶ価値があると気づきました。特に AI に自分でツールを操作させ、続けてタスクをこなさせる場合、最後まで安定してやり遂げられるかどうかは大きく違います。