Standard Compute

Codex 怎么接中转站?从 Responses 验证到 CLI 配置

更新于 2026-10-31 · standardcompute.cyou

简答:Codex CLI 接入中转站的最短路径是:确认服务商支持 Responses API,准备准确的 Base URL 和模型 ID,用一个不含真实代码的最小请求验证 2xx,再写入用户级 config.toml。当前官方配置参考确认自定义 provider 使用 `model_providers.<id>`,`wire_api` 的支持值为 `responses`;但具体网关是否支持该协议、模型名和路径,仍必须以服务商当前接入文档或实际响应为准。

定义:Codex 中转接入,是让 Codex CLI 通过自定义 provider 使用第三方 API 网关的 Base URL、API Key 和模型,而不是通过 ChatGPT 账户登录路径调用。

先用 30 秒判断能不能接:三项核验卡

本文只讲 Codex CLI,不覆盖桌面端、VS Code 扩展或 app-server。页面按 2026年10月31日 访问到的官方配置参考整理;Codex CLI 和服务商网关都会更新,实际配置前应再次查看当前文档和本机版本。

接入前必须确认的项目
项目应确认什么没有证据时怎么处理
协议服务商是否直接支持 Responses API,以及最终路径是否为 /responses不要把 Chat Completions 示例当成 Responses 兼容证明
Base URL服务商提供的 API 根地址是否已经包含版本路径,例如 /v1按文档填写,不要反复猜测是否删除或追加 /v1
模型 ID服务商允许的精确模型字符串使用控制台或接入文档中的值,不自行猜测别名
认证API Key 是否有效、是否需要 Bearer 认证、是否有权限或预算限制先用同一把 Key 发最小请求

官方 Codex 配置参考确认:用户级配置位于 ~/.codex/config.toml;model_provider 指向 model_providers 中的 provider ID;自定义 provider 可以配置 base_url、env_key、name 和 wire_api。其中 wire_api 的官方支持值是 responses,省略时默认也是该值。可查看Codex 配置参考。

最短判定:Base URL、API Key、模型 ID 三者准确,向最终的 Responses 地址发送请求并返回 2xx,才值得继续配置 Codex;仅仅能访问服务商首页、能调用 Chat Completions,或返回一段 JSON,都不足以证明 Codex 可用。

第一步:用最小 Responses 请求验证地址、Key 和模型

先不要修改 Codex 配置。把下面的占位符替换为服务商提供的值:BASE_URL 应是 API 根地址,MODEL_ID 应是服务商明确公布的模型 ID,CODEX_API_KEY 是本地环境变量名。若服务商给出的 Base URL 已经是 https://example.com/v1,最终请求通常应拼成 https://example.com/v1/responses;是否如此必须以服务商路径说明为准。

macOS 或 Linux 可以用一次性读取方式,避免把 Key 直接写进命令行:

read -s CODEX_API_KEY printf '\n' export CODEX_API_KEY BASE_URL='https://api.example.com/v1' MODEL_ID='替换为服务商确认的模型ID' curl -i "$BASE_URL/responses" \ -H "Authorization: Bearer $CODEX_API_KEY" \ -H "Content-Type: application/json" \ --data "{\"model\":\"$MODEL_ID\",\"input\":\"Reply with exactly CODEX-OK\"}"

这里的示例只验证认证、地址、模型和 Responses 请求,不验证文件读取、工具调用、MCP、审批或长连接能力。成功判定包括三点:HTTP 状态为 2xx;响应不是 HTML 错误页;响应中能找到有效的输出或服务商明确的 Responses 响应结构。若服务商提供请求记录,可以把它作为辅助证据,但不能把“后台有日志”作为所有服务商都具备的通用条件。

OpenAI 的 Responses API 参考说明了 Responses 请求、响应状态和流式事件的结构;这能帮助你区分真正的 API 响应与网关返回的普通错误文本,可查看Responses API 概览和Responses API 参考。

第二步:按官方字段写入 Codex CLI 配置

确认最小请求通过后,再把 provider 写入用户级配置。官方文档明确说明,项目目录下的 .codex/config.toml 不能覆盖 model_provider 和 model_providers 等 provider 设置,因此中转配置应优先放在用户级 ~/.codex/config.toml。

下面是通用模板,不包含任何特定服务商的真实地址或模型名:

model = "MODEL_ID" model_provider = "relay" [model_providers.relay] name = "兼容 API 网关" base_url = "https://api.example.com/v1" env_key = "CODEX_API_KEY" wire_api = "responses" requires_openai_auth = false

字段含义如下:

保存后,在同一个终端临时设置 Key,再运行最小测试:

export CODEX_API_KEY codex exec "只回答 CODEX-OK,不读取文件,不执行命令"

如果你需要多个 provider,官方配置参考确认 profile 文件位于 $CODEX_HOME/profile-name.config.toml,并可使用 codex --profile profile-name 选择。这里的 profile 是官方支持的独立配置文件机制;不要把 provider 配置写入项目级文件后,再期待它覆盖用户级 provider 设置。可查看官方文档中的config.toml 与 profile 说明。

Windows 的路径、环境变量继承和安装方式可能因 CLI 安装渠道而不同。本文不把某个固定 Windows 目录当成所有版本的保证;更稳妥的做法是先确认当前 CODEX_HOME,再在对应目录放置 config.toml,并用同一启动环境执行测试。

第三步:把 API Key 安全地交给 Codex

最安全的顺序是:优先使用操作系统密钥管理器或团队的 Secret Manager;临时测试时只在当前进程环境中注入;不要把真实 Key 写入 config.toml、Git 仓库、截图、复制链接、工单或 CI 输出。

macOS/Linux 的临时测试可以使用:

read -s CODEX_API_KEY printf '\n' export CODEX_API_KEY codex exec "只回答 CODEX-OK"

这种方式仍可能让 Key 留在当前 shell 进程直到窗口关闭,因此测试结束后可以执行:

unset CODEX_API_KEY

如果使用 PowerShell,建议从系统凭据管理工具或企业密钥管理方案读取;临时调试时至少避免把 Key 写进脚本文件和命令历史,并在测试后关闭终端。不要为了方便把 experimental_bearer_token 直接写入配置:官方参考明确把直接 bearer token 标为不推荐,优先使用 env_key。

还要注意代码隐私边界:请求经过第三方网关时,API Key、提示词、代码片段、错误日志以及可能的工具输入都可能受该服务商处理。接入前应逐项查看其可核验的隐私和服务条款,确认数据留存期限、是否用于训练、是否跨区域处理、删除机制、日志访问范围以及企业合规选项。若找不到公开说明,就标记为“未核实”,不要根据宣传语推断。

Codex CLI 接通后如何确认请求没有走错

建议按“配置层—请求层—业务层”三层检查,不要只看终端是否出现回复。

  1. 配置层:确认 model_provider = "relay" 与 [model_providers.relay] 完全一致;env_key 与当前环境变量名称完全一致;模型 ID 没有多余空格或拼写差异。
  2. 请求层:用同一环境变量执行 curl,检查最终 URL、HTTP 状态码和响应类型。若 curl 失败,先不要继续改 Codex。
  3. 业务层:运行不读取文件、不调用工具的短提示。若服务商提供请求日志,再对照时间、请求 ID 或脱敏记录辅助确认。

如果 curl 成功但 Codex 失败,优先排查 Codex 实际读取的配置根目录、profile 是否选错、环境变量是否被启动方式继承,以及当前进程是否在修改配置后完全重启。如果 curl 和 Codex 都失败,则回到 Base URL、模型 ID、Key 和 Responses 支持四项核验。

官方帮助中心也区分了 ChatGPT 登录和 Codex CLI 的使用路径:使用 ChatGPT 账户登录时,遵循 ChatGPT 计划和工作区规则;使用自有 API Key 接入兼容网关时,计费、限速、预算和停用规则应以该 API 服务方为准,不能默认等同于 ChatGPT 订阅额度。相关背景可查看在 ChatGPT 套餐中使用 Codex。

常见错误的证据化排查

Codex 接入兼容网关的故障分流表
报错或现象先收集的证据下一步
Missing environment variable打印变量是否为空,但不要打印变量值核对 env_key,完全重启 Codex,并确认启动进程继承了变量
401 Unauthorized同一 Key 的 curl 状态码、Key 是否被撤销重新生成或更换 Key,检查 Bearer 认证方式
403 Forbidden账户、权限、区域和服务商策略查看服务商控制台或帮助文档,不要仅修改 TOML
404/405最终 URL 是否为服务商要求的 Responses 路径按文档重新确认 Base URL 是否含 /v1,不要盲目删改
Model not found模型 ID 的官方原文、控制台模型列表或返回体改用已核实的精确 ID;查不到就标记为未核实
Responses 不支持服务商是否只提供 Chat Completions 文档或返回 404/405向服务商确认是否实现 Responses;不能靠设置 wire_api 强行转换协议
429、预算或额度耗尽响应头、错误体、账户用量和并发设置按服务商规则降低并发、等待窗口恢复或补充额度
超时、SSE 中断短请求与长请求的差异、网关超时和流式响应行为先关闭工具与复杂输入,再确认服务商是否支持 Codex 所需的流式传输

状态码只能帮助缩小范围,不能单独证明故障归因。例如 404 可能来自错误路径,也可能来自服务商未开放该接口;429 可能是速率限制,也可能与账户预算有关。保留脱敏后的状态码、最终路径、响应摘要和时间,通常比反复修改配置更容易定位问题。

切回官方登录前要记住的边界

第三方 API Key 和 ChatGPT 登录是两套认证路径。需要切回官方登录时,先退出当前 Codex 进程,停用或切换自定义 provider,再按照当前 Codex CLI 的登录提示完成官方登录;不要把第三方 Key 当作 ChatGPT 登录凭据。切换前后,建议分别运行一个不涉及项目文件的短测试,避免把两套认证状态混在同一次排错中。

本文是独立的第三方接入指南,不代表任何服务商的官方配置页面。服务商的实际 Base URL、模型 ID、Responses 支持、区域、数据处理、预算、限速和日志能力均应以其当前公开文档、控制台响应或账户条款为准;无法核验的内容不要写入配置。

如果你已经完成协议、Base URL、模型和 Key 的核验,可查看犀速 AI 官网的 API 接入说明,并沿用本文的“先最小请求、再写 Codex 配置、最后做错误分流”流程。

常见问题

Codex 接中转站一定要写 wire_api = "responses" 吗?

按当前官方 Codex 配置参考,`wire_api` 的支持值是 `responses`,省略时默认也是 `responses`。但这只说明 Codex 的 provider 配置方式,不代表任意网关都支持 Responses;仍需用服务商文档或最小请求确认。

Base URL 应该填到 /v1,还是填到 /v1/responses?

通常 `base_url` 填 API 根地址,再由客户端访问 Responses 路径;但最终规则取决于服务商的路由设计。先查看服务商接入说明,再用 curl 检查实际最终 URL,不要仅凭 404 猜测。

为什么 curl 成功,Codex 仍然提示缺少 API Key?

常见原因是 Codex 与 curl 不在同一个进程环境中,或 `env_key` 写的变量名与实际变量不一致。先在同一终端确认变量非空,再完全退出并重启 Codex;如果使用 profile,也要确认选择的是预期配置。

可以把真实 API Key 直接写进 config.toml 吗?

技术上可能存在直接 bearer token 字段,但官方配置参考将直接 bearer token 标为不推荐。更稳妥的是使用 `env_key`、操作系统密钥管理器或 Secret Manager,并避免把 Key 放入仓库、截图、日志和命令历史。

中转网关只展示 Chat Completions 示例,Codex 能不能直接用?

不能直接推断。Codex 当前自定义 provider 使用 Responses 协议;如果网关没有明确说明 Responses 支持,或对 `/responses` 返回 404/405,应先向服务商确认,而不是只修改模型名或 `wire_api`。

使用第三方 API Key 会不会消耗 ChatGPT 订阅额度?

不能默认这样认为。ChatGPT 登录和自有 API Key 是不同认证路径;第三方 API 的计费、预算、限速和停用规则应以对应服务商的当前说明为准,查不到的部分应标记为未核实。

相关阅读

参考资料

  1. Codex 配置参考:config.toml、model provider、profile 与 wire_api
  2. OpenAI Responses API 概览
  3. OpenAI Responses API 参考
  4. 在 ChatGPT 套餐中使用 Codex