← 返回博客

Codex CLI 国内怎么用:一个 Key 接 DeepSeek、GLM、通义,附 11 个国产模型实测

2026-10-21 · 8 分钟阅读
Codex CLIDeepSeekGLM通义千问国产大模型

结论先说:Codex CLI 本身不用换,国内真正要换的是它默认连接的 OpenAI 接口。 把 base_url 指到支持 /v1/responses 的网关,写一个独立配置文件,再用一个 Router API Key,Codex 就能直接调用 DeepSeek、GLM、通义、MiniMax 等国产模型。我们用 Codex CLI 0.159.2 实测了 11 个国产模型,10 个能完成「读代码 → 改 bug → 写测试 → 跑测试」的完整流程,两次任务合计花费从 ¥0.017 到 ¥0.248 不等;腾讯混元会在多步任务里提前收尾,Kimi K3 这次没测成。下面是可直接抄的配置、实测表和选型建议。

为什么国内用 Codex CLI 要先把接口换掉

Codex CLI 是 OpenAI 出的命令行编码助手,能读你的仓库、改文件、执行命令、跑测试。它默认走 OpenAI 的账号和接口,在国内会遇到两个问题:网络不稳定,以及模型调用按美元计费、需要海外支付方式。

Codex CLI 调模型用的是 Responses API(路径 /v1/responses),不是很多人熟悉的 /v1/chat/completions。所以不是随便找个「OpenAI 兼容」中转站就能接:对方必须实现 Responses 这一套请求和流式事件。不墨 Router 的国内站已经支持该接口,模型列表和价格也公开可查,因此可以直接把 Codex 接过来,用人民币按量付费。

三步接上:安装、写配置、填 Key

第 1 步:安装 Codex CLI

npm install -g @openai/codex
codex --version

能打印出版本号就说明装好了。本文的实测环境是 0.159.2。

第 2 步:写一个独立配置文件

先到不墨 Router 的 API Key 页面创建一个 Key。然后执行:

mkdir -p ~/.codex && cat > ~/.codex/bumo.config.toml <<'EOF'
model_provider = "bumo"
model = "deepseek/deepseek-flash"

[model_providers.bumo]
name = "Bumo"
base_url = "https://router.bumo.cc/v1"
env_key = "BUMO_API_KEY"
wire_api = "responses"
EOF

这份配置单独放在 bumo.config.toml,不会覆盖你原来的 ~/.codex/config.toml。启动时用 --profile bumo,Codex 会把这份配置叠加到原配置上,原来的 OpenAI 配置仍然保留。

几个字段别写错:

  • base_url 必须带 /v1;
  • wire_api 必须是 responses,写成 chat 会走错接口;
  • env_key 写的是环境变量名,和下一步 export 的名字保持一致;
  • model 填 Router 的完整模型 ID,带供应商前缀,例如 deepseek/deepseek-flash。

第 3 步:填 Key 并启动

export BUMO_API_KEY="sk-你的Key"
codex --profile bumo

如果只想跑一次非交互任务,可以直接:

codex exec --profile bumo "先读一遍这个仓库,告诉我入口文件在哪"

想让配置长期生效,把 export 那一行写进 ~/.zshrc 或 ~/.bashrc。Key 不要提交进 git。

换模型只改一行

Codex 的模型由配置文件里的 model 决定。想换模型,只改这一行,然后重新启动:

model = "glm/glm-5.3"

常用模型 ID 如下,完整清单以 Router 模型列表 为准:

供应商模型 ID
DeepSeekdeepseek/deepseek-flash、deepseek/deepseek-v4-pro
智谱glm/glm-5.3、glm/glm-5.3-flash
通义qwen/qwen3.8-max、qwen/qwen3.7-max、qwen/qwen3.8-flash
MiniMaxminimax/MiniMax-M3
阶跃stepfun/step-5-preview
小米xiaomi/mimo-v2.6-pro、xiaomi/mimo-v2.6-flash
Kimikimi/kimi-k2.5、kimi/kimi-k3
腾讯混元tencent/hy4-preview

模型 ID 写错时,接口会直接报「未知模型」,不会悄悄换成别的模型。所以换模型后先用一句简单的话试一次,确认能返回再进仓库干活。

实测:11 个国产模型,10 个能完整干活

测试方法不是问答题,而是让 Codex 真的做一次编码任务。每个模型跑两个任务:

  1. 只读任务:仓库里有一个 calc.py,让 Codex 读完文件后回答 add(2, 3) 的结果。
  2. 改代码任务:subtract() 里有一个 bug,让 Codex 修好、补一个 unittest,并自己运行测试。跑完后由脚本独立核对:subtract(5, 3) == 2、测试文件存在、python3 -m unittest 通过。

第二个任务才是关键:它同时考察模型会不会读文件、发工具调用、改代码、执行命令,以及多步任务会不会中途放弃。

模型 ID两个任务两次任务合计花费(按 Router 计费口径)
deepseek/deepseek-flash✅ 全过¥0.017
deepseek/deepseek-v4-pro✅ 全过¥0.071
glm/glm-5.3✅ 全过¥0.157
glm/glm-5.3-flash✅ 全过¥0.029
qwen/qwen3.8-max✅ 全过¥0.216
qwen/qwen3.7-max✅ 全过¥0.248
minimax/MiniMax-M3✅ 全过¥0.130
stepfun/step-5-preview✅ 全过¥0.184
xiaomi/mimo-v2.6-pro✅ 全过¥0.017
kimi/kimi-k2.5✅ 全过¥0.057
tencent/hy4-preview❌ 第二个任务失败¥0.127

10 个模型两项任务全过。 这里的「全过」不是回答得像,而是改完的代码真的能跑、测试真的通过。花费是两个任务加起来的实际用量,不是包月价格,也不是单次对话的固定价;任务越复杂、上下文越长,费用会越高。

两个例外,如实说明

腾讯混元 tencent/hy4-preview 在第二个任务里说完「找到问题了,现在开始修」,就以正常结束(finish_reason: stop)收尾,没有发出修改文件的工具调用。把同一轮请求换成普通的 Chat 格式重放三次,结果一样,所以问题在模型自身:它在多步 Agent 场景里容易提前结束,不是接口转换的错。日常问答可以用,让它独立完成跨步骤的改代码任务要谨慎。

Kimi K3 kimi/kimi-k3 这次没有测成:本地环境缺少 Moonshot 官方通道的 Key,/v1/chat/completions 和 /v1/responses 都直接报缺少环境变量。同家的 kimi/kimi-k2.5 走百炼通道两项都过。K3 已经出现在 Router 模型列表里,配好 Key 后可以自己补一次冒烟测试,本文不替它下结论。

怎么选:按任务和预算分三档

日常改 bug、写脚本、单文件排错:先用 deepseek/deepseek-flash。两次任务 ¥0.017,是这次实测里最便宜的档位之一,两项任务都过,速度也快。小米 xiaomi/mimo-v2.6-pro 同为 ¥0.017,也可以作为备选。

跨文件改动、需要读整个仓库、长日志定位:用 deepseek/deepseek-v4-pro 或 glm/glm-5.3。上下文都是 100 万 token,前者两次任务 ¥0.071,后者 ¥0.157。通义 qwen/qwen3.8-max 也全过,两次 ¥0.216,适合你已经在用通义生态的情况。

大批量、预算敏感:glm/glm-5.3-flash(两次 ¥0.029)和 kimi/kimi-k2.5(¥0.057)都值得试。便宜档和旗舰档的差别通常不在「能不能改对」,而在复杂任务里要不要多来几轮、会不会漏掉调用点。

价格是官方同价、按量计费,单位是元 / 百万 tokens:

模型 ID输入输出上下文
deepseek/deepseek-flash281M
deepseek/deepseek-v4-pro9271M
glm/glm-5.38281M
glm/glm-5.3-flash0.82.81M
qwen/qwen3.8-max12361M
qwen/qwen3.7-max1236256K
minimax/MiniMax-M34.216.81M
stepfun/step-5-preview7201M
xiaomi/mimo-v2.6-pro361M
kimi/kimi-k2.5421256K
kimi/kimi-k3201001M

DeepSeek 两个模型还有峰谷价:北京时间工作日 9:00–12:00、14:00–18:00 是高峰,其余时段按五折计费(周末和法定节假日全天按空闲价)。MiniMax-M3 按上下文长度分档,超过 512K 后单价翻倍。实际扣费以页面和账单为准。

四个容易踩的坑

  1. 用了 /v1/chat/completions 的配置。Codex CLI 走的是 Responses 接口,wire_api 必须是 responses,否则请求格式对不上。
  2. base_url 少写 /v1。正确写法是 https://router.bumo.cc/v1,不是只写域名。
  3. 模型名没带供应商前缀。要写 deepseek/deepseek-flash,不能只写 deepseek-flash。
  4. 把 Key 写进配置文件。配置里只写环境变量名,Key 放在环境变量里,避免误提交。

现在就试

装好 Codex CLI 后,先拿最便宜的 deepseek/deepseek-flash 跑一个你手头真实的小任务:读一个文件、改一处逻辑、跑一次测试。跑通之后再按任务难度往上换模型,比先充一大笔钱更稳妥。

一个 Key、一份配置,Codex 在国内也能直接干活。