CLI エージェント

Responses API で Codex を外部モデルに接続する

現在の Codex が対応するのは Responses プロトコルのみです。設定、環境変数、API の確認手順と、Chat Completions しか提供しないゲートウェイへの対処を説明します。

確認日 2026-10-26対象
Codex CLI 0.154.0

先に結論

現在の Codex の wire_api は "responses" のみ対応しています。 "chat" は削除されており、指定すると起動時に設定エラーになります。KimiSeek は /v1/responses を提供するため、以下の設定で直接接続できます。

30 秒でわかる判断表

ゲートウェイの対応状況対処
/v1/responses を提供"responses" を使用
/v1/chat/completions のみResponses 対応のゲートウェイ、または Responses を公開する変換層を使用
不明下のコマンドでパスと応答本文を確認

Codex がデフォルトで responses を使う理由

Codex は /responses にリクエストを送り、Responses のツール呼び出しとストリーミングイベントを処理します。Chat Completions はリクエストとイベントの構造が異なり、wire_api の変更だけでは現在の Codex から利用できません。モデルの能力は上流とゲートウェイの実装にも依存し、API の疎通成功だけで全ツールの動作が確認できるわけではありません。

前提条件

  • Node.js 20 以上
  • Codex CLI:npm install -g @openai/codex
  • KimiSeek の API Key(ks- で始まる)。ダッシュボードで作成

Step 1 · 設定ファイルを書く

設定ファイルは ~/.codex/config.toml にあります。なければ新規作成します:

TOML · ~/.codex/config.toml
model = "deepseek-v4-pro-0813"
model_provider = "kimiseek"

[model_providers.kimiseek]
name = "KimiSeek"
base_url = "https://api.kimiseek.app/v1"
env_key = "KIMISEEK_API_KEY"
wire_api = "responses"

つまずきやすいポイントは 3 つ:

  1. base_url には必ず /v1 を付ける。Codex は base_url の後ろにそのまま /responses を連結します。/v1 を書き忘れると https://api.kimiseek.app/responses にリクエストが飛び、404 になります。
  2. env_key は環境変数名であり、key そのものではない。ここに書くのは変数名 KIMISEEK_API_KEY で、実際の値は環境変数に入れます。
  3. model は catalog に実在する id を使う。間違えると model not found になります。廃止済みのモデルでも同じエラーになります。

Step 2 · 環境変数を設定して起動

Shell
export KIMISEEK_API_KEY="ks-your-key"

codex

一時的にモデルを変えたいなら、config.toml の model を直接書き換えるか、codex --model <id> で上書きします。

Step 3 · key が有効か確認する

Shell
curl https://api.kimiseek.app/v1/models \
  -H "Authorization: Bearer ${KIMISEEK_API_KEY:?Set KIMISEEK_API_KEY before running this command}"

応答にモデル一覧が含まれていれば、key とネットワークの両方に問題はありません。このステップの意味は「認証の問題」と「プロトコルの問題」を切り分けることです。そうしないと、404 が出たときに key が悪いのかパスが悪いのか判断できません。

Step 4 · 30 秒で responses を検証する

Shell · OpenAI Responses
curl https://api.kimiseek.app/v1/responses \
  -H "Authorization: Bearer ${KIMISEEK_API_KEY:?Set KIMISEEK_API_KEY before running this command}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-pro-0813",
    "input": "Explain what a base URL is in one sentence.",
    "max_output_tokens": 256,
    "stream": false
  }'
  • HTTP 200 と output 配列を含む JSON → Responses のルートは利用可能。次に実際のタスクとツール呼び出しを確認します。
  • HTTP 404 → base_url の /v1 を確認し、応答本文でルートとモデルのどちらが見つからないのかを調べます。ステータスだけでは判断できません。
  • HTTP 401 → Step 3 に戻り、認証情報を確認します。

Chat Completions しか提供されない場合

wire_api = "responses" のまま、/v1/responses を提供するゲートウェイか、互換性のある変換層を使います。削除済みの "chat" に変更しないでください。

よくあるエラー

エラー原因対処
unexpected status 401 Unauthorized: Missing bearerenv_key が指す環境変数が未設定、または変数名の typoKIMISEEK_API_KEY が現在の shell で見えるか確認する
unexpected status 404 Not Foundbase_url に /v1 がない、またはゲートウェイに /v1/responses がない/v1 とエラー本文を確認。Responses がない場合は対応ゲートウェイか変換層を使用
stream disconnected before completionストリーミング応答が途中で切れた:ローカルプロキシ、社内ゲートウェイ、タイムアウトHTTP プロキシ設定を確認し、別のネットワークで再試行する
model not foundmodel が alias 以外の誤った名前、または廃止済み idcatalog の完全な id を使う(例:deepseek-v4-pro-0813)

プロトコル層のエラーは他にもあります。エラー対照表 を参照してください。

コスト

Codex の利用特性は、入力が出力よりはるかに大きいことです。実行のたびに context を送り直すためです。DeepSeek V4 Pro の価格は peak と off-peak の 2 段階で、人民元建て・100 万 tokens あたりです:

時間帯入力キャッシュ入力出力
off-peak¥4.5¥0.45¥13.5
peak¥9¥0.9¥27

peak と off-peak の差はちょうど 2 倍です。バッチ的なリファクタリングを off-peak に回せば半分に抑えられます。具体的なモデルとリアルタイムの価格は 料金ページ を参照してください。あそこはモデルカタログの設定を直接読んでいます。

対応バージョンと検証

Codex CLI 0.154.0 で設定を確認しました(2026-10-26)。プロトコルの対応状況は公式設定リファレンスを参照してください。

よくある質問

中継サービスを使う場合、Codex-Bridge のようなブリッジツールは必要ですか?

不要です。ブリッジツールの存在意義は、Responses リクエストをローカルで Chat Completions に変換して送り出すことで、「chat completions しか実装していない」ゲートウェイに対処することです。KimiSeek は /v1/responses を自分で実装しているので、ブリッジ層はむしろホップが 1 つ増え、故障点が 1 つ増えるだけになります。

base_url に必ず /v1 を付けなければならないのはなぜですか?

Codex が base_url をそのまま連結してルートを作るからです:base_url + "/responses"。https://api.kimiseek.app と書くと https://api.kimiseek.app/responses に飛びますが、それは API ではなくサイトのページです。

現在の Codex で wire_api = "chat" を使えますか?

使えません。現在のバージョンは起動時にこの値を拒否します。responses を使い、Chat Completions のみの上流には対応ゲートウェイか変換層を用意してください。

同じ key を Claude Code と Codex の両方に設定できますか?

できます。key はアカウント単位で、2 つのクライアントは同じ key を異なるプロトコル経路で呼び出しているだけです。設定方法は Claude Code チュートリアル を参照してください。