1. 为什么要在 Codex 里接 deepseekV4

Codex 是 OpenAI 推出的本地编码代理工具,能在你的项目目录里读写文件、跑命令、改代码,交互方式接近一个常驻终端的结对程序员。它默认走 OpenAI 的模型,但很多人手里已经有 deepseekV4 的调用额度,或者想用更低的成本跑长上下文任务,于是就有了「Codex 搭配 deepseekV4」这个组合需求。

问题在于,Codex 本身并不直接支持任意第三方模型端点,它读的是 config.toml 里的 provider 配置。而 deepseekV4 的 API 协议是 Chat Completions 风格,和 Codex 期望的接口形态有差异。如果直接把 api.deepseek.com 填进去,常见结果是:Codex 启动后模型列表为空,或者发消息时报 404 / 401,甚至界面卡在「connecting」不动。

我试过几种接法,最后稳定跑通的方案是:用 TaoToken 作为统一 Key 入口,把 deepseekV4 挂到 Codex 的 config.toml 里。这样做的好处是 Key 只填一处,模型名、Base URL、协议适配都由 TaoToken 侧统一处理,Codex 这边只需要一份配置骨架。下面从环境准备开始,把整条链路拆开讲。

2. TaoToken 前置准备:拿 Key 和确认模型名

在动 Codex 之前,先把 TaoToken 这边的信息准备好。你需要两样东西:一个可用的 API Key,以及 deepseekV4 在平台上的准确模型标识。

打开 TaoToken 控制台,进入 API Keys 页面创建一个新 Key。建议单独为 Codex 建一个,方便后续按项目排查用量。创建后复制那串 sk- 开头的字符串,先存到本地临时文件里,后面填 config.toml 要用。

模型名这块要注意:deepseekV4 在平台上有不同规格,常见的有 deepseek-v4-flash 和 deepseek-v4-pro 两个档位。flash 响应快、适合日常改代码;pro 推理更稳、适合复杂重构。你可以在模型对话页面先手动发一条消息,确认目标模型能正常返回,再去配 Codex。这一步别省,因为 Codex 报错时你很难判断是配置问题还是模型本身不可用。

TaoToken 的接入文档里有完整的模型列表和协议说明,配置前扫一眼能少踩很多坑。地址是 https://taotoken.net/api ,文档入口在控制台侧边栏。

3. 可复制的 config.toml 配置骨架

Codex 的配置文件默认在用户目录下的 .codex/config.toml。Windows 是 C:\Users\你的用户名\.codex\config.toml,macOS / Linux 是 ~/.codex/config.toml。如果目录不存在就手动建一个。

下面这份骨架可以直接复制,把 sk-你的TaoTokenKey 替换成上一步拿到的 Key 即可:

# ~/.codex/config.toml

[model_providers.taotoken]
name = "TaoToken"
base_url = "https://taotoken.net/api"
env_key = "TAOTOKEN_API_KEY"
wire_api = "chat"

[profiles.deepseek]
model_provider = "taotoken"
model = "deepseek-v4-flash"
model_reasoning_effort = "medium"

[profiles.deepseek-pro]
model_provider = "taotoken"
model = "deepseek-v4-pro"
model_reasoning_effort = "high"

几个关键字段说明一下。base_url 指向 TaoToken 的 API 根地址,注意结尾不要带 /v1,Codex 会自己拼路径。env_key 表示 Key 从环境变量读取,而不是硬编码在文件里,这样更安全。wire_api = "chat" 告诉 Codex 用 Chat Completions 协议通信,这是 deepseekV4 能跑通的前提。

profiles 段定义了两套预设,日常用 deepseek,遇到复杂任务切 deepseek-pro。model_reasoning_effort 控制推理投入程度,medium 够用,high 会慢一些但结果更细。

配好文件后,设置环境变量。macOS / Linux 在 ~/.zshrc 或 ~/.bashrc 里加一行:

export TAOTOKEN_API_KEY="sk-你的TaoTokenKey"

Windows 用 PowerShell:

setx TAOTOKEN_API_KEY "sk-你的TaoTokenKey"

改完环境变量要重开终端,否则 Codex 读不到。

4. 验证请求:确认 deepseekV4 正常响应

配置写完不代表能跑,得先验证链路。最直接的方式是用 curl 打一次 TaoToken 的接口,确认 Key 和模型名都对:

curl https://taotoken.net/api/chat/completions \
  -H "Authorization: Bearer $TAOTOKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [{"role": "user", "content": "回复 ok 两个字母"}]
  }'

如果返回 JSON 里 choices[0].message.content 是 ok,说明 Key 和模型都没问题。如果返回 401,检查 Key 是否复制完整;返回 404,检查模型名拼写;返回 400,多半是请求体格式问题。

curl 通了之后,再启动 Codex 验证。在项目目录下执行:

codex --profile deepseek

进入交互界面后,输入一句简单指令,比如「列出当前目录的文件」。如果 Codex 能正常调用模型并返回结果,说明整条链路打通。此时界面右下角或状态栏会显示当前使用的模型名,确认是 deepseek-v4-flash 而不是默认的 OpenAI 模型。

想切到 pro 档,退出后用 codex --profile deepseek-pro 重新进即可。也可以在会话里用 /model 命令切换,前提是 profile 已经定义好。

5. 本篇常见错排查

配置过程中最容易卡住的几个点,我按出现频率排一下。

模型列表为空:Codex 启动后看不到任何模型,通常是 base_url 写错。检查是否误加了 /v1 后缀,或者把 https 写成了 http。TaoToken 的根地址就是 https://taotoken.net/api,不要自己拼路径。

401 Unauthorized:环境变量没生效。用 echo $TAOTOKEN_API_KEY 确认终端能读到值。Windows 下 setx 设置后必须重开终端,当前会话不会自动刷新。另外检查 Key 前后有没有多余空格。

404 Not Found:模型名不对。deepseekV4 的标识是 deepseek-v4-flash 和 deepseek-v4-pro,不要写成 deepseek-v4 或 deepseekV4。大小写和连字符都要一致。

请求超时或卡住:网络到 TaoToken 的连通性问题。先用 curl 测一次,如果 curl 也超时,说明不是 Codex 的锅。可以换网络环境再试,或者检查本地是否有防火墙拦截。

Codex 报协议不匹配:wire_api 字段没设成 chat。Codex 默认可能走 Responses 协议,而 deepseekV4 是 Chat Completions 风格,必须显式指定。

改了配置不生效:Codex 有缓存,改完 config.toml 后要完全退出再重启。Windows 下注意右下角托盘图标也要右键退出,只关窗口不算。

如果排查完还是不通,可以去 TaoToken 的接入文档对照最新参数,或者用模型对话页面单独测目标模型是否可用,先把变量缩小到「是 Codex 的问题还是模型的问题」。

6. 长期编码场景的 Key 管理建议

如果你打算把 Codex + deepseekV4 当成日常编码工具,Key 的管理方式值得提前规划。单次试验用临时 Key 无所谓,但长期跑的话,建议在 TaoToken 控制台建独立的 Key,按项目或按用途区分。这样某天某个 Key 出问题,你能快速定位是哪个环节,而不用把所有配置推倒重来。

另外,Codex 的 profile 机制很适合多模型切换。你可以把 flash 设为默认,pro 设为复杂任务专用,甚至再加一个其他模型做对比测试。config.toml 里多写几段 profile 就行,切换成本很低。

对于需要长时间运行的编码任务,比如批量重构或持续集成场景,可以考虑用 Coding Plan 来管理调用配额和并发。地址是 https://taotoken.net/api 下的 coding-plan 入口,适合把 Codex 挂到更稳定的调用链路上。

配置这件事,跑通一次之后就是复制粘贴。真正花时间的是排查那些「看起来像配置问题其实是网络问题」的坑。把 curl 验证这一步养成习惯,能省掉大量在 Codex 界面里瞎试的时间。

更多推荐