Codex config.toml 設定第三方 API:2026 年起只支援 Responses

Wokey Team · 2026-09-24

簡短回答: 要讓 Codex 串接第三方 API,請在 ~/.codex/config.toml 中定義一個自訂 provider,把 base_url 設為閘道位址,並把金鑰放進 env_key 指定的環境變數。傳輸協定必須是 Responses。Codex 在 2026 年 2 月移除了 Chat Completions 支援,現在 wire_api = "chat" 會在啟動時出錯,所以大部分還在教 wire_api = "chat" 的教學都已經不能用了。

下面的設定適用於目前的 Codex CLI 版本。本文中的每一段錯誤文字,都引自 Codex 原始碼或 Wokey API 的實際回應。

完整設定(可直接複製)

# ~/.codex/config.toml
model = "gpt-6-sol"
model_provider = "wokey"

[model_providers.wokey]
name = "Wokey"
base_url = "https://api.wokey.ai"
env_key = "WOKEY_API_KEY"
wire_api = "responses"
export WOKEY_API_KEY="your Wokey API key"
codex

各欄位的作用:

欄位 用途 常見錯誤
model_provider 頂層鍵,指定要使用哪個 [model_providers.<id>] 表格 漏掉的話,Codex 會停留在內建的 openai provider,並要求你登入 ChatGPT
base_url 閘道位址;Codex 會在後面接上 /responses 不要自己加 /responses,否則請求會送到 /responses/responses
env_key 存放金鑰的環境變數名稱;Codex 會以 Authorization: Bearer 送出 這裡填的是變數名稱,不是金鑰本身
wire_api 傳輸協定;"responses" 是唯一合法值,也是預設值 "chat" 會在啟動時出錯

在 Wokey 上,base_url 可以是 https://api.wokey.ai 或 https://api.wokey.ai/v1;閘道同時提供 /responses 和 /v1/responses。其他閘道請依照它們的文件:很多只註冊了 /v1 路徑。

變數名稱可以自己取。OPENAI_API_KEY 也能用,但如果你同時使用官方 OpenAI API,另外取一個 WOKEY_API_KEY 可以避免兩把金鑰互相覆蓋。

為什麼舊教學會失效

時間線:

從那之後,Codex 的 WireApi 只剩一個值:Responses。設定中還留著 wire_api = "chat" 的話,Codex 會在啟動時以下列錯誤失敗:

`wire_api = "chat"` is no longer supported.
How to fix: set `wire_api = "responses"` in your provider config.
More info: https://github.com/openai/codex/discussions/7782

改成 wire_api = "responses" 或直接刪掉這一行即可。這也表示只支援 Chat Completions 的閘道已經無法服務 Codex:選擇閘道前,請先確認它有 /v1/responses 端點。

其他已過時或會被忽略的設定

provider 表格中的 api_key。 Codex 會拒絕 provider 設定中的未知欄位,所以 api_key = "sk-..." 這一行會讓設定解析失敗。請透過 env_key 指定的變數傳入金鑰。如果真的必須把 token 寫進檔案,欄位是 experimental_bearer_token,但不建議這麼做。

[profiles.xxx] 和頂層的 profile = "xxx"。 從 Codex 0.134.0 開始,--profile xxx 改為疊加讀取 ~/.codex/xxx.config.toml。config.toml 中的 [profiles.xxx] 表格不再被讀取,頂層的 profile = 也不再支援。若要在官方帳號和閘道之間切換,把 Wokey provider 寫在 ~/.codex/wokey.config.toml,再用 codex --profile wokey 啟動。

專案 .codex/config.toml 中的 provider。 專案層級的設定會忽略 model_provider 和 model_providers。provider 只能定義在家目錄的 ~/.codex/ 底下。

provider id 用 openai、ollama 或 lmstudio。 這些 id 保留給內建 provider,不能用來定義自訂 provider。請改用其他名稱,例如 wokey。

該用哪個模型

Codex 只會送出 Responses 請求,所以優先選擇原生提供 /v1/responses 的模型。在 Wokey 上,目前包括 GPT 系列(gpt-6-sol、gpt-6-luna、gpt-6-astra、gpt-5.6-sol)、Grok 系列(grok-4.7、grok-4.6)以及 deepseek-v4.1-flash。以各模型頁面上的「支援的端點」清單為準,陣容會隨時間變動。

沒有原生 Responses 的模型,例如只列出 Chat Completions 的模型,在 Wokey 上仍然可以從 Codex 使用。閘道會把請求轉換成上游的協定,再把結果轉回 Responses。不過轉換會有損失:

  • 轉換成 Chat Completions 時,會丟掉部分 Codex 專用工具,例如 freeform 的 apply_patch、local_shell 和內建的 web_search。
  • 工具呼叫要等整個回覆完成後才會出現。

主要用來寫程式的模型,請選擇原生支援 Responses 的。

排錯

Missing environment variable: `WOKEY_API_KEY`. Codex 找不到 env_key 指定的變數。檢查拼字,並確認你是在啟動 codex 的同一個終端機中 export 的。如果是加進 ~/.zshrc 或 ~/.bashrc,請開一個新的終端機。

HTTP 401 且 code 為 invalid_api_key 金鑰缺少或錯誤時 Wokey 會回傳這個,message 會說明是哪一種:沒有送出金鑰、金鑰不存在,或金鑰已刪除、已暫停或已過期。請確認金鑰有完整複製、沒有在主控台被刪除或暫停,且變數中沒有多餘的引號或空格。

HTTP 404 且訊息為 Route POST:/responses/responses not found base_url 以 /responses 結尾。Codex 會自己接上路徑,所以 base_url 應該只寫到網域(或 /v1)。

Codex 要求你登入 ChatGPT 沒有頂層的 model_provider = "wokey",或 provider 寫在會被忽略的專案 .codex/config.toml 中。Codex 已經退回使用內建的 openai provider。

wire_api = "chat" is no longer supported 見上文:改成 "responses" 或刪掉這一行。

HTTP 402 你的帳號餘額用完了。

要排除 Codex 的因素,先用 curl 測試金鑰和端點:

curl https://api.wokey.ai/v1/responses \
  -H "Authorization: Bearer $WOKEY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-6-sol","input":"ping"}'

如果 curl 正常而 Codex 不行,問題出在 config.toml。如果 curl 也失敗,問題就在金鑰或網路。

常見問題

Codex 的 wire_api 還能設成 chat 嗎?

不能。Codex 在 2026-02-03 合併的 PR #10157 移除了 Chat Completions 支援。現在 wire_api 只接受 responses,設成 chat 會在啟動時出錯。改成 wire_api = "responses" 或直接刪掉這一行即可,它本來就是預設值。

Codex 的 base_url 要不要加 /v1?

Codex 會在 base_url 後面接上 /responses。串接 Wokey 時,https://api.wokey.ai 和 https://api.wokey.ai/v1 都可以。不要自己加 /responses,否則會得到 404 Route POST:/responses/responses not found。

API 金鑰可以直接寫進 config.toml 嗎?

在 provider 表格裡寫 api_key 欄位會讓設定解析失敗,因為 Codex 會拒絕未知的 provider 欄位。請改用 env_key 指定環境變數名稱,再 export 這個變數。

Codex 能用 Claude 或其他非 GPT 模型嗎?

在 Wokey 上可以,閘道會把 Responses 請求轉換成上游協定。但轉換會丟掉部分 Codex 專用工具,寫程式建議選擇原生支援 /v1/responses 的模型,例如 gpt-6-sol、grok-4.7 或 deepseek-v4.1-flash。

[profiles] 設定為什麼不生效了?

從 Codex 0.134.0 開始,--profile name 改為疊加讀取 ~/.codex/name.config.toml,config.toml 裡的 [profiles.name] 表格不再被讀取。把對應設定移到獨立的檔案即可。