2025年末まで、私たちはすべてのチャット関連をOpenAIを通じて直接運用していました。1つのアカウント、1つのキー、1つの請求書。2026年1月にマルチモデルアグリゲーターに移行しました。実際に何が起こったのかをご紹介します。

私たちが持っていたもの

  • OpenAIエンタープライズティア — 月額約8,000ドル
  • すべてのチャット完了はgpt-4oまたはgpt-4o-mini
  • 1つの埋め込みモデル、1つの画像モデル(DALL-E 3)
  • 4つのサービスでの直接SDK統合

移行のきっかけ

  • Claude Opus 4.6が私たちのエージェントコーディング評価で顕著に良いスコアを出していた
  • Gemini 3 Proが長文コンテキスト文書分析で明確な勝者となった
  • オープンソースモデル(DeepSeek, Llama 4)を推論インフラなしでテストしたかった
  • 5つのプロバイダーを運用することは、5つの契約、5つの請求サイクル、5つのレート制限ダッシュボードを意味していた

移行

OpenAI互換のアグリゲーターに切り替えました(実際にはこれです — 私たちは自社製品を本番環境で使用しています)。変更はSDKのbaseURLapiKeyを置き換えるだけでした。コードの差分は4つのサービスで8行でした。

// Before
const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY });

// After
const openai = new OpenAI({
  apiKey: process.env.AIGEN_KEY,
  baseURL: 'https://aimarcus.eu/aigenerate/api/v1',
});

請求書での変化

  • チャット(GPT-4o → タスクに基づくGPT-4o + Claude Sonnetの混合):-22%
  • エージェントコーディング(Claude Opusに移行):+8%、しかし評価は15ポイント改善
  • 長文コンテキスト分析(Gemini 3 Proに移行):-40%
  • 画像生成(DALL-E 3からNano Bananaに移行):-65%

月額請求への純効果:-28%。各サーフェスでのより良いモデル選択 + 直接交渉する必要のない上流アグリゲーターからの低いトークン単価。

うまくいかなかった3つのこと

  • ストリーミングSSEフォーマットの違い。ClaudeはOpenAIとは少し異なるストリーミングを行います。クライアント側のバッファロジックが約10分間壊れ、互換性シムを追加するまで続きました。
  • トークンカウント。異なるモデルは異なる方法でトークン化します。内部の「会話ごとに使用されたトークン」メトリックはモデルごとに再校正が必要でした。
  • モデル名をキーとしたキャッシング。プロンプトキャッシュはgpt-4oをキーとして使用していました。Claudeにいくつかのリクエストをルーティングし始めたとき、古いキャッシュヒットを受け取りました。教訓:常にキャッシュキーにモデルを含めること。

もう一度やるか?

はい — コストとは無関係の3つの理由から。

  • オプショナリティ。4月3日にOpenAIが40分間の停止をしたとき、トラフィックがAnthropicとGeminiに自動的にフェイルオーバーしたため、チャットサーフェスは動き続けました。それだけでも移行の価値があります。
  • モデルのパリティは終わった。2026年には「最高のモデル」は存在しません。各タスクに最適なモデルがあります。アグリゲーションはその事実を実際に利用する方法です。
  • 1つの請求書。財務部門はエンジニアリング部門よりもこれを望んでいました。1つの請求書、1つのベンダー関係、12のプロバイダーに対する1つの契約。

単一プロバイダーで意味のあるボリュームを運用している場合、切り替えは最初の月で元が取れます。