跳到主要内容

CC Switch 配合 Codex 接入 DeepSeek 中转 API

写在前面

如果你已经看完前面的「什么是 API」,大概知道了 Cherry Studio 这种聚合客户端,那这篇算是「进阶版」——这次主角不是网页,也不是 GUI,而是 Codex 这个命令行编程 Agent

用 Codex 最爽的一点是它真的能自己改代码、跑命令、提交 commit,像雇了一个不用睡觉的实习生。但问题来了:Codex 官方只认 OpenAI 的 API,国内用起来要么贵、要么卡。而 DeepSeek 和一堆中转站便宜大碗,怎么让它们接上 Codex?答案就是今天的主角:CC Switch

这套配置我自己在 Windows 上跑通了,下面每一步都是实操过的,照着来就行。

一、为什么要用 CC Switch:两个协议根本聊不到一块

先说结论:不能把中转站的地址直接填进 Codex

原因很简单,Codex 用的是 OpenAI 新一代 Responses API(/v1/responses),而 DeepSeek、Kimi、MiniMax 以及绝大多数中转站,对外只提供老牌的 Chat Completions API(/chat/completions)。

这两套接口在请求字段、流式输出(SSE)事件、工具调用数据结构上全都不一样。直接硬连的结果就是经典三连:

  • ❌ 请求 /responses 返回 404
  • ❌ 参数解析失败,请求直接被拒
  • ❌ 就算能回,流式输出也会断成一段一段

CC Switch 就是来解决这个问题的:它在本机起一个代理(127.0.0.1:15721),Codex 的 Responses 请求先进代理,被翻译成 Chat Completions 发给 DeepSeek/中转站,返回再翻译回 Responses 给 Codex。全程无感,而且你的中转站密钥只存在 CC Switch 本地,不会写进 Codex 配置里,不容易泄露。

Codex CLI ──Responses──▶ CC Switch 本地代理(127.0.0.1:15721) ──Chat Completions──▶ DeepSeek / 中转站

二、准备工作(5 分钟)

需要准备的东西说明
CC Switch版本要 ≥ 3.16.0,GitHub 搜 farion1231/cc-switch 下 Release,Windows 装 exe 即可
Codex CLI装好并至少启动过一次(让 ~/.codex/config.toml 生成出来,不然 CC Switch 没地方写配置)
中转站 API Key中转站后台创建 key(或 DeepSeek 官方 key,platform.deepseek.com)
端口 15721确认本机没被其他程序占用

💡 为什么强调要启动过一次 Codex?因为 CC Switch 的「接管」是去改 ~/.codex/config.toml,这个文件不存在的话它会无从下手。

三、开始配置(重点:自定义中转站)

📷 本文截图来自 CC Switch 官方文档的脱敏示例数据,不涉及真实密钥。

3.1 打开 CC Switch,切到 Codex 标签页

启动 CC Switch,顶部标签切到 Codex,点击右上角 + 新建渠道。

Codex 供应商列表:带「需要路由」徽章的渠道就是要走本地路由

新建渠道的表单大致长这样:右侧是预设列表,左侧填 Key 和 BaseURL,高级选项里藏着 API 格式的开关:

新建 Codex 供应商的表单(高级选项里有「需要本地路由映射」)

3.2 方式 A:官方 DeepSeek 预设(最简单)

如果你用的是 DeepSeek 官方 API,直接在预设列表里选 DeepSeek,CC Switch 会把接口地址、可用模型、思维链参数全部帮你填好,你只需要:

  1. 粘贴你的 DeepSeek API Key
  2. 保存

💡 小更新:CC Switch 3.19.1 之后,官方 DeepSeek 预设改成了原生直连,保存后卡片上不会有「需要路由」徽章,那部分配置可以跳过本地路由。但中转站和自定义渠道依然是 Chat 格式,必须走下面的方式 B + 路由,这篇教程的主线不变。

3.3 方式 B:自定义中转站(今天的主角)

中转站和官方不太一样,每家给的基础地址、模型名都可能不同,所以走「自定义」:

  1. 新建渠道时选 自定义
  2. API 格式选「OpenAI Chat(需路由)」 —— 这一步决定了 CC Switch 要不要做协议转换,选错了必挂
  3. BaseURL 只填域名根,比如 https://your-relay.com —— 千万别在后面手动加 /chat/completions,CC Switch 会自己拼
  4. 粘贴中转站给你的 API Key
  5. 填一个你常用的模型名(中转站后台能看到它支持哪些,比如 deepseek-chatdeepseek-reasoner,有些站还会自定义型号名)
  6. 保存

3.4 开启本地路由(核心中的核心)

进 CC Switch 的设置 → 本地路由,把两个开关都打开:

  • 路由总开关
  • Codex 应用开关

本地路由页:总开关 + Codex 开关都打开,服务地址 127.0.0.1:15721

打开后 CC Switch 会自动把 ~/.codex/config.toml 改写成指向本地代理,大致长这样:

[model_providers.custom]
name = "deepseek"
base_url = "http://127.0.0.1:15721/v1"
wire_api = "responses"
requires_openai_auth = true

看到 127.0.0.1:15721/v1 就说明接管成功了。你的真实密钥不会出现在这里,放心。

3.5 启用供应商 + 重启 Codex

  1. 回到 Codex 渠道列表,点启用 DeepSeek 这条(依赖本地路由的渠道,路由没开时会提示先开)
  2. 完全退出当前所有 Codex 终端窗口,重新打开
  3. 在 Codex 里输入 /model,看到 DeepSeek / 中转站的模型列表就成功了

⚠️ Codex 启动时会把配置一次性读进内存,不监听文件变化,所以换完供应商一定要重启终端,别只开新标签页。

四、验证一下真的在用 DeepSeek 吗

Codex 里随便问一句,让它回个「你好」,然后:

  • 打开 CC Switch 的统计/日志面板,能看到这次请求的真实厂商、Token 消耗、耗时
  • 看到调用目标是 DeepSeek / 中转站,就说明协议转换链路全通了

有个小坑:对话里偶尔会显示 OpenAI GPT 之类的标识,那只是内置系统提示文本,不是真在用 GPT。以统计面板的实际消耗为准。

五、避坑指南

  • /responses 404 → 八成是本地路由没开,去设置里确认两个开关,重启 CC Switch 和 Codex
  • 自定义 BaseURL 加了 /chat/completions → 删掉,只留域名根
  • /model 看不到模型 → 模型目录是 CC Switch 生成的,重启 Codex 进程才会重新加载
  • 密钥填错/渠道停用 → 请求会一直失败,去中转站后台检查额度
  • 某些模型报错提示「会在 xx 时间后才可用」 → 别硬刚,说明这个型号当前渠道还没放开,换一个渠道支持的型号(比如 deepseek-v4-flash 这类)就行
  • 密钥只在 CC Switch 本地存 → Codex 配置里只有本地代理地址,泄露风险小很多

小结

CC Switch 的本地路由本质上就是在中间加了一个免费翻译官,让听不懂 Responses 的 DeepSeek/中转站也能给 Codex 打工。整套配置熟悉之后十分钟搞定,之后你想在 Claude Code、Gemini 之间来回切,也是同一个套路。

下一篇预告:把 Codex 配合 Skill(技能)用起来,让它在项目里自动按你的规范写代码、跑测试,真正变成「会干活的实习生」。