Codex CLI 接入第三方 API:config.toml 自定义 model provider 完整配置

披露:LLM API Guide 由 SeedRouter 团队维护,本文以 SeedRouter 为示例。配置方法同样适用于其他支持 OpenAI Responses 协议的网关。

适用场景

  • 想让 Codex CLI 使用更便宜或更稳定的模型线路,而不是只用官方账号额度。
  • 团队统一采购 API,用一个 Base URL 和 API Key 管理用量和账单。
  • 想在官方登录和第三方网关之间随时切换,而不是改来改去。

第一步:准备三项信息

项目说明SeedRouter 示例
Base URL网关的 OpenAI 兼容地址https://seedrouter.net/v1
API Key在网关控制台创建的密钥sk-...(只在 seedrouter.net 控制台创建)
模型名称网关模型目录里的模型 ID例如 gpt-6.1-sol,以控制台模型列表为准

注意核对网关域名。名称相近的网站很多,Base URL 填错域名,相当于把请求发给了另一家服务。SeedRouter 的官方域名只有 seedrouter.net,详见官方渠道说明。

第二步:编辑 ~/.codex/config.toml

配置文件位置:

  • macOS / Linux:~/.codex/config.toml
  • Windows:C:\Users\<用户名>\.codex\config.toml

文件不存在时直接新建。写入以下内容:

model = "gpt-6.1-sol"
model_provider = "seedrouter"

[model_providers.seedrouter]
name = "SeedRouter"
base_url = "https://seedrouter.net/v1"
env_key = "SEEDROUTER_API_KEY"
wire_api = "responses"
requires_openai_auth = false

每个字段的作用:

字段作用
model_provider选中下方名为 seedrouter 的 provider
model默认使用的模型 ID
base_url网关地址,Codex 会在后面拼接 /responses
env_key从哪个环境变量读取 API Key,Key 本身不写进配置文件
wire_api通信协议,responses 表示 OpenAI Responses API
requires_openai_auth设为 false,表示这个 provider 不使用 ChatGPT 登录

第三步:设置 API Key 环境变量

macOS / Linux(zsh 或 bash):

echo 'export SEEDROUTER_API_KEY="sk-你的密钥"' >> ~/.zshrc
source ~/.zshrc

用 bash 的话把 ~/.zshrc 换成 ~/.bashrc。

Windows PowerShell:

setx SEEDROUTER_API_KEY "sk-你的密钥"

setx 只对新开的终端生效,执行后请关闭并重新打开 PowerShell。

第四步:验证连接

先用 curl 确认 Key 和地址可用,返回模型列表即说明认证通过:

curl https://seedrouter.net/v1/models \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

然后启动 Codex:

codex

随便问一个问题,能正常回答就完成了。在 SeedRouter 控制台的用量日志里也能看到这次请求。

在官方登录和第三方网关之间切换

推荐用 profile,把两套配置都留在同一个文件里:

[profiles.seedrouter]
model = "gpt-6.1-sol"
model_provider = "seedrouter"

需要时用 codex --profile seedrouter 启动走网关,不带参数则使用文件顶层的默认设置。如果更习惯图形界面,也可以用 CC Switch 管理多个供应商,SeedRouter 有一份CC Switch 配置 Codex 的完整指南。

常见报错

现象常见原因处理
401 / 403Key 复制多了空格、环境变量没加载、Key 来自另一家网站重新复制 Key,重开终端,用 echo $SEEDROUTER_API_KEY(PowerShell:$env:SEEDROUTER_API_KEY)检查
404base_url 少了 /v1 或拼写错误对照网关文档核对完整地址
提示模型不存在模型 ID 不在你账号的模型目录里到控制台模型列表复制准确的模型 ID
配置改了没变化Codex 已在运行,或终端未重开退出 Codex,重新打开终端
请求跑到了别的地址系统里设置了 OPENAI_BASE_URL、OPENAI_API_KEY 等变量用 env | grep OPENAI(PowerShell:Get-ChildItem Env:OPENAI*)检查并清理冲突变量

更多报错见Codex / Claude Code 接入第三方 API 常见报错排查。

小结

Codex 接第三方网关只需要三件事:在 config.toml 里定义 provider,用环境变量提供 Key,用 wire_api = "responses" 走 Responses 协议。如果你还没有网关账号,可以在 SeedRouter 官网注册,新账号有 2 次热门模型免费试用,首页列有当前各模型与官方价格的对比。

常见问题

接入第三方 API 后还能用 ChatGPT 账号登录 Codex 吗?

可以。官方登录和自定义 provider 是两套配置,切回官方 provider 或使用不同的 profile 即可,互不覆盖。

base_url 要不要带 /v1?

要看网关文档。SeedRouter 的 Codex 地址是 https://seedrouter.net/v1,Codex 会在后面拼接 /responses。

wire_api 填 chat 还是 responses?

网关支持 Responses 协议时填 responses。SeedRouter 支持 Responses;只支持 Chat Completions 的网关需要 CC Switch 本地路由之类的转换层。

改了 config.toml 为什么没生效?

Codex 在启动时读取配置和环境变量。修改后请退出 Codex、重新打开终端再启动。