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 可以避免兩把金鑰互相覆蓋。
為什麼舊教學會失效
時間線:
- 2025-12-09:Codex 團隊在 GitHub 發布討論 #7782「Deprecating chat/completions support in Codex」。宣布將在 2026 年 2 月初移除,請使用
wire_api = "chat"或沒有設定wire_api的使用者遷移,並請各閘道確認支援 Responses。 - 2026-02-03:PR #10157「chore: nuke chat/completions API」合併,Chat Completions 的程式碼被刪除。
從那之後,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] 表格不再被讀取。把對應設定移到獨立的檔案即可。