首页 / 文章 / Codex CLI 配置第三方 API 中转

Codex CLI 配置第三方 API 中转

Codex CLI 换成中转后端:在 config.toml 里写自定义 model_provider、base_url 与 env_key,用 profile 切换模型,附 gpt-6-sol 的费用估算和 401、404 的排查顺序。

两个地方要改

Codex CLI 的配置在 ~/.codex/config.toml,Windows 下是 %USERPROFILE%\.codex\config.toml,没有这个文件就新建一个。要让请求走二五云API,需要指定两件事:默认用哪个 provider,以及 provider 的地址、协议和认证从哪里来。前者是顶层的两个键,后者是一个独立的表。Codex 每执行一步都会把工作目录、命令输出和对话历史打包发给模型,模型回一段结构化的动作,客户端再执行。中转站只负责把这段 HTTP 请求转到上游,协议对得上,功能就不会因为换了地址而缺失。

toml
model = "gpt-6-sol"
model_provider = "yun25"

[model_providers.yun25]
name = "二五云API"
base_url = "https://ai.idcidiot.com/v1"
env_key = "YUN25_API_KEY"
wire_api = "chat"

name 只是显示名,随便写。env_key 写的是环境变量名,不是 Key 本身,Codex 启动时从这个变量读值。写成 env_key = "sk-..." 的话,Codex 会去找一个名字叫 sk-... 的环境变量,结果永远是 401。base_url 要带 /v1,因为 wire_api = "chat" 时 Codex 会在后面拼 /chat/completions,站点对外提供的正是这个路径。如果把 wire_api 换成 responses,请求会打到 /v1/responses,站点没有这个入口时直接 404。

Key 放环境变量

bash
export YUN25_API_KEY="sk-你的密钥"
codex

Windows PowerShell 里写法是 $env:YUN25_API_KEY="sk-你的密钥",只对当前窗口有效,重开就没了。想固定下来就写进 ~/.zshrc、~/.bashrc 或系统环境变量。Key 直接写进 config.toml 也能跑,但那个文件经常被同步到 dotfiles 仓库,没必要冒这个险。

用 profile 切模型

同一份 provider 配置可以挂多个模型,各有各的用途:

toml
[profiles.cheap]
model = "glm-5.3-flash"
model_provider = "yun25"

[profiles.long]
model = "claude-opus-5"
model_provider = "yun25"

codex --profile cheap 用便宜的,codex --profile long 换 1,000,000 上下文的那个。provider 段只有一份,base_url 和 Key 共用,要换分组得换 Key,不是在配置里改某个字段。profile 只覆盖模型和 provider,不动工作目录、审批策略这些设置,可以在同一个仓库里来回切。改完配置跑一次 codex --help,能正常输出说明文件至少解析通过。日常改小文件用便宜模型,读大仓库、跨文件重构再切长上下文,账单会好看不少。

先跑一次非交互

bash
codex exec --profile cheap "用一句话说明这个仓库的入口文件在哪"

能正常返回,就说明地址、Key、模型三件事都对。codex exec 不进交互界面,适合放进脚本里做冒烟测试,输出也能直接重定向到文件。第一次接通时建议用它而不是交互模式,报错信息更完整,少了 TUI 的干扰。

排错顺序

  • 401:env_key 指的变量在当前 shell 没 export,或者变量里存的是变量名本身。echo $YUN25_API_KEY | head -c 6 应该看到 sk-。
  • 404 .../v1/chat/completions:base_url 少了 /v1,或者写成 /v1/v1。
  • 400 unsupported parameter:模型不接受请求里的某个字段,换模型试,或把 wire_api 改回 chat。
  • 403:Key 有效但分组没开通这个模型,模型页的可用分组一栏能对上。
  • 报 unexpected content type:base_url 指向了一个返回 HTML 的地址,检查域名有没有拼错。
  • 长任务上下文丢失:Codex 会压缩历史,换上下文更大的模型,claude-opus-5 是 1,000,000 token。
  • 流式响应中途断开:先排除本机代理缓冲 SSE 的可能,再看超时设置。
  • 改了配置不生效:Codex 只读 CODEX_HOME 或默认目录下的文件,确认你编辑的不是项目里那份同名的示例。
  • 启动时报配置解析错误:TOML 对引号和表头敏感,[model_providers.yun25] 必须单独占一行,不能和别的键挤在一起。

成本

gpt-6-sol 的 model_ratio 是 37.5,优惠 GPT Team 分组 0.1 倍,输入价 = 37.5 × 2 × 0.1 = $7.5/百万 token,输出按 completion_ratio 2 折算为 $15/百万 token;上下文 1,050,000 token,最大输出 128,000。一天跑 80 次 codex exec、每次 2 万输入 3 千输出,就是 1.6M 输入加 0.24M 输出,约 $12 + $3.6 = $15.6。倍率表在 价格页,单模型页在 /model/gpt-6-sol/。codex exec 的输入里包含仓库文件和命令输出,实际 token 往往比预估高,先用小任务跑一天,再对着站点控制台的用量日志校准。

把 [model_providers.yun25] 那段贴进 ~/.codex/config.toml,导出 Key,codex exec 能返回就说明接好了。

用 二五云API 跑通这些模型

OpenAI 兼容接口,一个 Key 调用 GPT、Claude、Gemini、DeepSeek、Kimi 等模型,按量计费。

免费注册查看模型价格

相关文章