最終更新

Codex Router の仕組み — アーキテクチャとリクエストフロー

Codex Router はコーディングエージェントと外部モデルプロバイダーの間にあるローカルサービスです。Codex が主要フロントエンドであり、同じ認証済みモデルレジストリを DeepSeek Harness、Gemini CLI、Cursor、Claude Code、OpenClaw、opencode、pi、omp、Command Code、Hermes Agent にも公開できます。このページではリクエストフローとセキュリティ境界を説明します。

なぜルーターが必要か

Codex App は Responses API と Codex 型のモデルカタログを期待します。Kimi と DeepSeek は、認証とリクエスト詳細が異なる OpenAI 互換の Chat Completions API を公開しています。Codex Router はそれらの契約を橋渡しし、ネイティブ GPT トラフィックは通常の ChatGPT Codex バックエンドのままにします。

4 つの構成要素

  • 生成カタログが外部モデルを Codex の model_catalog_json のネイティブ GPT モデルの隣に配置。
  • ディスパッチャーが名前空間モデル ID でネイティブ/外部ルーティングを選択——deepseek/kimi-oauth/anthropic-api/ などで始まるものは外部パスへ。
  • LiteLLM が Responses リクエスト・ストリーム・ツールコールを各プロバイダーのネイティブプロトコル(OpenAI 互換 Chat Completions と Anthropic Messages を含む)に変換。
  • 認証情報フォワーダーが選択したプロバイダーの認証だけを注入し、他をすべて除去。

すべてのリスナーは 127.0.0.1 にバインドされ、サービス全体がマシン上でローカルに動作します。

リクエストフロー

Codex は Responses リクエストを 4202 ポートのループバックルーターに送信します:

ポートリスナー役割
4202ルータークライアント要求を受信し caller capability を認証
4200LiteLLMResponses を各プロバイダーのネイティブプロトコルへ変換
4201Kimi OAuth更新済み OAuth bearer で Kimi に転送
4203API フォワーダー選択キーで API キープロバイダーに転送

ネイティブ GPT モデルの場合、ルーターは許可リスト化された Codex ヘッダーとネイティブモデル ID で ChatGPT Codex バックエンドに転送します——ネイティブリクエストを外部プロバイダーに送ることはありません。

レジストリモデル(例:kimi-oauth/k3)の場合、ルーターは呼び出し元を検証し、ゲートウェイモデルと内部キーを LiteLLM に渡し、LiteLLM がリクエストを変換して一致するフォワーダーに渡します。フォワーダーは内部キーを破棄し、選択したプロバイダー認証のみを注入します。ストリームは Responses イベントとして LiteLLM を経由して戻ります。

1 つのレジストリ、複数クライアント

Codex、DeepSeek Harness、Gemini CLI、Cursor、Claude Code、OpenClaw、opencode、pi、omp、Command Code、Hermes Agent は、プロバイダー表示とモデル選択状態を共有します。各パブリッシャーは外側の契約(Responses、Gemini、Anthropic Messages、Cursor edge)のみを適応し、同じルート要求パスへ戻します。Command Code と Hermes Agent は Claude Code と同じ Anthropic Messages 面を使い、opencode、pi、omp は認証済みのローカルループバック /v1 パスを受け取ります。公開先の 5 クライアントには MODEL_ROUTER_TARGET も 2 つ目のサービスもなく、プロバイダーの有効化やモデルのキュレーションでまとめて再公開されます。Codex 以外でネイティブ ChatGPT モデルを公開するには、ユーザーが chatgpt-session enable を明示実行する必要があります。

認証情報境界

ルート入ってくる Codex 認証アップストリーム認証
ネイティブ GPT許可リスト化・転送既存の ChatGPT/Codex 認証
Kimi OAuth破棄~/.kimi-code の Kimi CLI OAuth bearer
Kimi API破棄Kimi Platform API キー
DeepSeek破棄DeepSeek API キー
GitHub Copilot破棄Copilot 権限とエンドポイント検証済みの GitHub fine-grained token

Codex からルーターへ、内部サービスへの 2 つの信頼境界は別々のランダムキーを使用し、それぞれ mode 600 または現在ユーザー Windows ACL で保存されます。外部フォワーダーは、アップストリームへ送信する前に Codex アカウント・インストール・attestation・プライベートヘッダーを除去します。

GitHub Copilot は catalog-only プロバイダーです。fine-grained token はまず GitHub の Copilot アカウントエンドポイントで検証され、返された推論先は GitHub 所有の Copilot ホストに限定されます。ライブ検出はアカウントから見える、ストリーミングとツールコール対応の Responses モデルだけを表示するため、利用モデルと上限は Copilot プランおよび組織ポリシーに従います。

セキュリティモデル

  • ローカル呼び出し元認証。 管理ベース URL には独立したランダムケーパビリティが含まれ、ルーターはモデルリクエストの読み取り前、アップストリーム接触前にそれを検証します。Codex は内蔵プロバイダーにルーター専用ヘッダーを付けられないため、ケーパビリティは URL パスに置かれます。ステータス・移行・サポートツールはそれを脱敏します。
  • ブラウザアクセスなし。 ルーターは JSON コンテンツを要求し、ブラウザオリジンヘッダーを拒否し、CORS を許可しません。
  • 脱敏されたエラー。 ネットワーク向けエラーは限定的で非機密。生の例外テキストは置き換えられます。
  • 認証情報漏洩なし。 診断は存在とソースのみを報告し、値を報告しません。保護ファイルは mode 600 または現在ユーザー ACL を使用。

トランスポートと圧縮

現在の Codex は認証付き Responses WebSocket を使う場合があります。ルーターは同じ caller-capability エッジで受け入れ、要求ごとに ID を導出し、クォータ/エラー情報を保持したまま同じ管理 Responses パスへ送ります。HTTP も引き続き対応します。Zstandard、gzip、deflate、Brotli の要求ボディを扱い、上限超過フレームはデコード前に拒否します。

外部 Chat Completions プロバイダーは OpenAI の不透明な暗号化圧縮ペイロードを作成できないため、ルーターは選択した外部モデルに続きの要約を生成させ、ルーター所有の kcr1: ペイロードに包みます。リプレイ時には普通の続きメッセージに変換します。

Codex 内に残るもの

コマンド、権限、MCP ツール、スキル、エージェントループ、タスク状態は Codex に残ります。ルーターはモデル推論と外部モデルの圧縮を処理します。選択したモデルやプロバイダーが実装していない機能を追加することはできません。

コラボレーションサブエージェントの場合、ルーターはネイティブタスクペイロードを認証済みのネイティブ Codex バックエンド経由で中継します——このリレーには有効な ChatGPT ログインが必要で、ログインフリーでは読み取り不能な暗号文を外部プロバイダーに転送せず、失敗して閉じます。モデルをサブエージェントとして有効化すると自動リサーチが行われます:分離プローブがストリーミングと強制ツールコールを検証し、合格したモデルは experimental v2 上書きとして公開。最初の実子ターンが機械ローカルの証明を記録し、構造的拒否は理由付きで v1 に降格します。生成されるルート agent 定義にはモデルごとの model_reasoning_effort も書き込まれるため、低エフォートの親がすべての子を暗黙に低エフォートへ固定することはありません。

条件を満たして見えるモデルへ委譲できないときは、子を生成して codex exited 1 を読む代わりに理由を尋ねられます:

./bin/model-router codex subagents explain <provider/model>

このコマンドは最初の阻害要因とそれを解消するコマンドを示し、タイプミス・未キュレーションのモデル・ネイティブスラグを区別します。また、そのルートの v2 主張がレジストリ由来か、ローカルの 5 項目チェック由来か、あなた自身の選択由来かも報告します。読み取り専用で、クォータを消費しません。

ネイティブツールとカスタムモデル向けスキルパック

ルーティングされたカスタムモデルも、Codex のスレッド、オートメーション、アプリ内ブラウザー、コンピューター操作ツールを利用できます。一部のモデルには明示的なツール呼び出しガイドが必要なため、インストーラーは codex-routercodex-app-threadscodex-in-app-browsercodex-computer-use の 4 つの管理対象スキルを追加します。同名のユーザー所有スキルは上書きせず、アンインストール時はルーター管理版だけを削除し、doctor がチェックアウトおよび現在のアプリツールセットとの整合性を確認します。

ネイティブカタログは保持される

統合は内蔵 OpenAI プロバイダー、ネイティブ GPT モデル、ChatGPT ログイン、プロファイル、MCP 設定、プロジェクトトラスト、推論デフォルトを保持します。Codex 設定にはマークされたルートブロックと不活性カスタムプロバイダーテーブルを 1 つ追加するだけです。disable は以前の値を正確に復元します。

関連:インストールモデル概要トラブルシューティング