1. 为什么要在 Codex 里接 DeepSeek 做代码补全Codex 是一个给 Codex 桌面版做增强的启动器它把原本锁在官方账号体系里的模型调用能力改造成可以走自定义 API 通道。换句话说你不再被绑定在某一家模型上而是可以把自己手上有额度的模型接进来让编辑器里的补全、对话、插件入口都跑在你指定的后端上。DeepSeek 的代码补全能力在中文注释、常见业务代码、脚本类任务上表现稳定价格也比很多闭源模型友好。把 DeepSeek 接到 Codex 里适合这几类人一是本地写代码时想要更顺手的行内补全二是已经在用 DeepSeek API 但不想在多个工具间来回切换三是想用统一 Key 管理多个模型通道的开发者。这篇聚焦的是配置落地不是泛泛介绍。核心动作只有一个在 Codex 的供应商管理里把 DeepSeek 的 API 信息填对然后用一个最小请求验证补全链路是否真的通了。下面给出的config.toml骨架和验证步骤你可以直接照着改。2. 前置准备Codex 与统一 Key 通道在动手改配置之前先把环境理顺。你需要三样东西Codex 桌面版、Codex 启动器、以及一个可用的 API Key 通道。Codex 桌面版从官方渠道安装后保持后台运行即可不需要登录账号。Codex 从它的仓库下载对应系统的安装包装完桌面会出现 Codex 和 Codex Manager 两个图标。这里有个容易踩的坑必须通过 Codex 图标启动 Codex增强功能才会生效直接点原版 Codex 图标是加载不到自定义供应商的。关于 Key 通道我建议用统一入口来管理而不是把 DeepSeek 的原始 Key 硬编码在多个地方。TaoToken 提供的就是这种统一 Key/API 通道官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。它的作用是让你用一个 Key 就能对接多个模型供应商后面换模型、加通道都不用改编辑器配置。注意Codex 的供应商配置里Base URL 和 Key 是两个独立字段。Base URL 决定请求发到哪个网关Key 决定网关认不认你。两者要配套不能一个填 DeepSeek 官方、一个填统一通道的 Key。如果你还没拿到 Key可以先到控制台创建https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 然后在 API Keys 页面生成https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。生成后先复制保存页面刷新后就看不到完整 Key 了。3. config.toml 配置骨架可复制的最小结构Codex 的供应商配置最终会落到一个 TOML 结构里。不同版本的字段名可能略有差异但核心字段是固定的。下面这份骨架你可以直接复制把 Key 和模型名替换成自己的。# Codex 供应商配置骨架 # 路径通常在 Codex Manager 的配置目录下或通过设置界面生成 [[providers]] name deepseek display_name DeepSeek 代码补全 mode api # 纯 API 模式不走账号体系 protocol chat_completions # DeepSeek 当前走 Chat Completions base_url https://taotoken.net/api api_key sk-你的统一通道Key model deepseek-v4-pro test_model deepseek-v4-pro enable_plugin true # 解锁插件入口 timeout 60 max_tokens 4096 temperature 0.2 # 代码补全建议低温度几个字段需要重点解释。mode必须是api这是纯 API 模式不走官方账号。protocol选chat_completions因为 DeepSeek 目前不支持 Responses API选错会导致请求格式不匹配。base_url填统一通道地址https://taotoken.net/api末尾不要多加/v1很多 404 都是这个多余后缀引起的。temperature设低一点代码补全要的是稳定复现不是发散创作。如果你更习惯在图形界面里填Codex 的设置 → 供应商管理 → 新增供应商对应关系是这样的界面字段填写值说明名称deepseek便于识别即可接入模式纯 API不走账号测试模型deepseek-v4-pro用于连通性测试混入 API Key勾选启用自定义 KeyURL / Base URLhttps://taotoken.net/api统一通道入口Keysk-你的Key控制台生成上游协议Chat Completions关键项填完保存然后通过 Codex 图标重启 Codex。重启这一步不能省配置是启动时加载的。4. 最小验证确认补全请求正常返回配置写完不代表通了必须做一次最小验证。我习惯分两步先验证 API 通道本身再验证编辑器里的补全。第一步用 curl 直接打通道确认 Key 和模型名没问题curl -X POST https://taotoken.net/api/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d { model: deepseek-v4-pro, messages: [ {role: user, content: 用 Python 写一个读取 CSV 并返回行数的函数} ], temperature: 0.2, max_tokens: 256 }如果返回里有choices[0].message.content且内容是正常代码说明通道、Key、模型三者都对。如果返回 401是 Key 问题返回 404多半是 URL 多了/v1或路径写错返回 502是网关到上游的链路问题不是你的配置问题。第二步回到 Codex 里验证补全。重启后模型选择列表里应该出现deepseek / deepseek-v4-pro。顶部菜单栏出现 Codex 选项原本在 API 模式下灰掉的插件入口应该解锁了。这时候打开一个.py或.ts文件在函数体里敲一行注释比如# 计算两个日期之间的天数等一两秒看是否弹出补全建议。实测下来补全首次触发会慢一点因为要建立连接和加载模型上下文。后续同一会话内的补全会快很多。如果一直不弹先看 Codex 的日志面板有没有请求记录有记录说明请求发出去了没弹是编辑器侧的问题没记录说明配置没加载回去检查mode和protocol。5. 本篇常见错排查配置过程中最容易卡在几个固定位置我按出现频率排一下。找不到模型选项。九成是protocol没选chat_completions。DeepSeek 不支持 Responses API选错后 Codex 拿不到模型列表。另外确认base_url末尾没有多余的/v1统一通道的路径就是https://taotoken.net/api后面直接接/chat/completions。502 或 404 网络错误。这类错误先分清是谁返回的。404 通常是路径问题检查 URL 拼接。502 是网关到上游的临时问题可以隔几秒重试或者换一个模型名测试确认是不是单个模型的问题。如果所有模型都 502那大概率是通道侧的事不是本地配置。Codex 卡在 Logo 界面。这种情况一般是启动时加载配置失败或者某个供应商字段格式不对导致解析中断。把config.toml里非必要的供应商先注释掉只留 deepseek 一个重启看是否恢复。TOML 对引号和缩进敏感api_key值必须用双引号包住。补全返回但内容不对。如果返回的是乱码或无关内容检查model字段是不是写成了别的模型名。统一通道下模型名要和你实际开通的一致写错会路由到默认模型或直接报错。另外temperature别设太高代码补全场景 0.1 到 0.3 之间比较合适。改了配置不生效。Codex 的配置是启动时读取的改完必须完全退出 Codex 再用 Codex 图标启动。只关窗口不退出进程配置不会重新加载。6. 后续接入与长期使用建议配置跑通之后日常使用还有几个可以优化的点。如果你只是偶尔补全当前这套就够用。如果你打算长期在编辑器里高频调用建议把 Key 和模型管理集中到统一通道侧这样换模型、加额度、看用量都在一个地方不用每次改config.toml。需要查看或轮换 Key去 API Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入细节和字段说明在文档里https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你还想在网页里直接对比不同模型的补全效果可以用模型对话入口https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。对于长期做编码和 Agent 任务的场景Coding Plan 会更合适它把编码类请求的配额和通道做了针对性配置https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你用的是 Claude Code 这类工具Anthropic 通道的接入方式单独有一份说明https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后提醒一句config.toml里不要提交到公开仓库Key 泄露后第一时间去控制台吊销重发。配置骨架本身可以版本化但api_key那行建议用环境变量占位启动时再注入。
