DeeDee PulseDeeDee Pulse
首页答案页Codex 接入中转站

Codex 怎么接入中转站?config.toml 的 model_providers 配置、验证和常见报错

发布 2026-10-28资料核对 2026-10-28(北京时间)纯文本版

一句话:Codex 中转站就是提供 OpenAI Responses 接口的中转站。在用户目录的 ~/.codex/config.toml 里加一个自定义 provider,写上站方的 base_url、存放 Key 的环境变量名,再把 wire_api 设为 "responses",就能让 Codex 走中转。Codex 现在只支持 Responses 协议,只提供 /v1/chat/completions 的站接不上。下面的写法按 openai/codex 当前源码核对(2026-10-28),示例地址统一用 relay.example.com。

去实测:用自己的 Key 检测去比价:看各站倍率

接入前确认三件事

第一,站方支持 Responses 接口,也就是 /v1/responses,并且支持流式返回。Codex 源码里 wire_api 只剩 responses 一个取值,旧的 chat 已经移除。

第二,问清楚站方给的模型名。Codex 默认用的模型站方不一定有,配置里要写成站方支持的名字,Pulse 的 GPT 统一实测标准用的是 gpt-6.1-sol。

第三,Key 放进环境变量,不写进配置文件。config.toml 里只写环境变量的名字(env_key),这样配置可以放心备份和分享。

第一步:设置 Key 的环境变量

变量名可以自己定,下面用 RELAY_API_KEY。macOS、Linux 写进 ~/.zshrc 或 ~/.bashrc:

export RELAY_API_KEY=sk-你的中转站Key

Windows 用 PowerShell 设置为用户环境变量,然后重开终端:

[Environment]::SetEnvironmentVariable("RELAY_API_KEY", "sk-你的中转站Key", "User")

Codex 读取的是启动它的那个终端里的环境变量,设置完要在新终端里启动。

第二步:用 curl 先测一次 Responses 接口

确认站方的 Responses 接口能用、Key 有效,再去改 Codex 配置:

curl -sS -w '\n%{http_code}\n' https://relay.example.com/v1/responses \
  -H "Authorization: Bearer $RELAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-6.1-sol", "input": "ping", "max_output_tokens": 16}'

返回 200 和一段带 output 的 JSON 就说明可用。返回 404 多半是站方没有 Responses 接口或路径不对;返回 401 是 Key 不对;返回模型不存在,就换成站方支持的模型名。

第三步:在 ~/.codex/config.toml 里加 provider

配置文件在用户目录:macOS、Linux 是 ~/.codex/config.toml,Windows 是 %USERPROFILE%\.codex\config.toml,没有就新建。写入下面的内容:

model = "gpt-6.1-sol"
model_provider = "relay"
model_reasoning_effort = "high"

[model_providers.relay]
name = "Relay"
base_url = "https://relay.example.com/v1"
env_key = "RELAY_API_KEY"
wire_api = "responses"

base_url 要写到 /v1 为止,Codex 会在后面拼上 /responses,这和官方默认地址 https://api.openai.com/v1 的写法一致。provider 的名字(这里是 relay)自己定,但不能用 openai、ollama、lmstudio 这些内置名字。model_reasoning_effort 是思考档,可选 minimal、low、medium、high、xhigh 等,站方分组不支持高档位时会报错,按站方说明调低。

自定义 provider 默认不要求 OpenAI 登录:requires_openai_auth 不写就是 false,Codex 会跳过登录界面,直接从 env_key 指定的环境变量里读 Key。

第四步:启动并确认走的是中转

在新终端里运行 codex,发一句话。能正常回复,再到站方后台的使用记录里看到这次请求,就确认走的是中转。也可以临时把 base_url 改错,Codex 报连接错误,说明配置确实生效了。

需要在多个中转站之间切换时,可以在 config.toml 里定义多个 [model_providers.xxx],再用 [profiles.xxx] 写各自的 model_provider 和 model,启动时用 codex --profile xxx(或 -p xxx)选择。

为什么写在项目里的配置不生效

Codex 也会读取项目目录里的 .codex/config.toml,但出于安全考虑,项目级配置不能决定把凭据发到哪里。源码里明确列出了项目级配置会被忽略的键,其中包括 model_provider、model_providers、openai_base_url 和 profiles,启动时会给出提示。中转站的配置必须写在用户目录的 ~/.codex/config.toml。

这条规则也是一层保护:别人的仓库里即使放了一个指向陌生地址的配置,也不能悄悄把你的 Key 发出去。

另一种写法:openai_base_url

config.toml 还有一个顶层键 openai_base_url,用来改内置 openai provider 的地址。它沿用内置 provider 的 OpenAI 登录流程,首次启动会出现登录界面。接中转站时,用上面的自定义 provider 更直接,Key 的来源也更清楚。

常见报错怎么处理

现象原因处理
报错 wire_api = "chat" is no longer supported旧教程写的是 chat,当前版本已移除改成 wire_api = "responses";站方没有 Responses 接口就换站
启动提示项目配置里的键被忽略provider 写在了项目的 .codex/config.toml移到用户目录 ~/.codex/config.toml
提示缺少环境变量或 401环境变量没设,或 Codex 不是在新终端里启动的确认 echo $RELAY_API_KEY 有值,重开终端再启动
404 Not Foundbase_url 少了或多了 /v1,或站方没有 /v1/responses用 curl 按完整地址测一次
模型不存在model 写的名字站方没有改成站方支持的模型名
思考档参数被拒分组不支持该档位调低 model_reasoning_effort
流式输出中途断开站方或上游不稳定可调 stream_max_retries、stream_idle_timeout_ms;频繁出现就换分组

报错原文与字段名来自 openai/codex 源码(2026-10-28),提示文字可能随版本略有不同。

接好之后先自测

Codex 用的 GPT 推理模型有一个常见问题:推理被截断。看返回 usage 里的 reasoning_tokens,同一道难题反复只有 516、1034 这类固定值,就是截断特征,判读方法见《怎么判断掺水、降智、假模型》。也可以用 Pulse 的在线检测按统一标准跑一遍。

另外,Codex 每次请求会自带约 4k token 的默认指令,这部分会按输入计费。Pulse 的实测会识别它,只扣完整性分,不算掺水;如果多出来的输入远超这个量,才需要怀疑站方额外注入了提示词。

安全上,Codex 会读取代码、执行命令,这些内容都会经过中转站。不要在 Codex 能访问的目录里放私钥和生产配置,给中转单独设额度。

我们的数据

Codex 对应 Pulse 的 GPT 分组。下面是 GPT 分组的整体情况:分组数、倍率分布、统一标准实测结论和截断特征命中次数,随每轮采集自动更新。具体站点在站点排名里按 GPT 筛选。

数据截至 2026-10-31 23:16(北京时间),随 Pulse 每轮采集自动更新。

Codex 走 OpenAI Responses 协议,对应 Pulse 的 GPT 分组。下面是 GPT 分组的整体情况,随采集自动更新。

项目数值
GPT 分组数(有站方可用率 / 全部)2,227 / 5,263
分组倍率 P10 / 中位数 / P900.08 / 0.3 / 1
统一实测标准gpt-6.1-sol · 思考档 xhigh
当前分组实测结论通过 309、待复核 48、未通过 66、降智 33、疑似假模型 1、不符合标准 14、其他 1
分组名可识别的渠道Pro 号池 413、Plus 号池 204、Azure 163、官方 API 115、Team/企业 108、Free 号池 7
近 30 天 GPT 自动实测(次)682:通过 320、待复核 49、未通过 179、不符合标准 124、其他 10
reasoning_tokens 命中截断特征(次)63
每次请求固定多出约 4k 输入(Codex 默认指令,次)195

倍率为站方显示的分组倍率,不含充值汇率;结论按分组计,一个站可能有多个分组。

近 7 天可用率≥99%95%–99%80%–95%<80%
GPT 分组占比21.4%31.8%25.0%21.9%

样本 768 个有 7 天读数的 GPT 分组;7 天与 30 天都达标的 256 个。

常见问题

Codex 中转站是什么?

就是提供 OpenAI Responses 接口(/v1/responses)的 AI 中转站。在 config.toml 里把 provider 的 base_url 指向它,Codex 的请求就会走中转。

wire_api 写 chat 还是 responses?

只能写 responses。当前版本的 Codex 已经移除了 chat,写 chat 会直接报错。

为什么配置写在项目里不生效?

项目级 .codex/config.toml 不能设置 model_provider、model_providers、openai_base_url 等决定请求去向的键,必须写在用户目录 ~/.codex/config.toml。

Key 能直接写进 config.toml 吗?

不建议。用 env_key 指定环境变量名,Key 放在环境变量里,配置文件就不含密钥。

国内怎么用 Codex?

可以接提供 Responses 接口的中转站;中转站替你持有上游账号,断供与条款风险由站方承担、会影响你的余额,先小额试用并检测。

资料来源
相关答案Claude Code 怎么接入中转站?ANTHROPIC_BASE_URL 配置、验证和常见报错AI 中转站是什么?和官方 API、镜像站、拼车、公益站有什么区别怎么判断中转站掺水、降智、假模型?先看这些证据中转站后台的 Kiro、CC Max、官方、AWS、号池都是什么?成本、风险和实测差别中转站倍率怎么算、实付多少钱?把充值汇率一起算进去