#通过 ccswitch 将 DeepSeek 等大模型配置到 Codex 中使用
本文记录一种把 DeepSeek、第三方中转 API 或其他 OpenAI-compatible 大模型接入 Codex 的方式:使用
ccswitch管理模型与接口信息,再让 Codex 通过~/.codex/config.toml指向对应的模型服务。
前言
Codex 默认面向 OpenAI 模型使用,但它的配置文件支持自定义 model_provider。只要目标服务提供兼容的接口,或者通过中转服务转换成 Codex 能识别的协议,就可以把 DeepSeek、Qwen、Kimi、GLM 等模型接入到 Codex 里。
ccswitch 的作用可以理解为“模型配置切换器”:它负责维护模型列表、接口地址和当前模型选择。配置完成后,Codex 读取本地配置,就能在命令行或桌面端里使用对应模型。
本文以 DeepSeek 为例,演示完整配置流程。
适用场景
如果你有下面这些需求,本文比较适合你:
- 想在 Codex 中使用 DeepSeek、Qwen、Kimi、GLM 等非默认模型;
- 已经有第三方中转站、聚合 API 或自建 OpenAI-compatible 服务;
- 希望在多个模型之间快速切换;
- 想把 Codex 当成本地编程助手,但模型服务走自己的 API。
准备工作
开始前需要准备:
- 已安装 Codex CLI 或 Codex 桌面端;
- 已安装并能运行
ccswitch; - 已有可用的 API Key;
- 确认你的服务端支持 Codex 当前使用的接口协议。
可以先检查 Codex 是否可用:
codex --version
codex --help
Codex 的用户级配置文件通常在:
Windows: C:\Users\<你的用户名>\.codex\config.toml
macOS/Linux: ~/.codex/config.toml
如果你使用的是 Codex 桌面端,本质上也会读取同一套 Codex 配置。
整体原理
配置链路可以简单理解为:
Codex
-> 读取 ~/.codex/config.toml
-> 根据 model_provider 找到接口配置
-> 请求 ccswitch 或中转服务提供的 base_url
-> 实际调用 DeepSeek 等大模型
关键点有两个:
model:告诉 Codex 当前使用哪个模型名称;model_provider:告诉 Codex 去哪个 provider 配置里找接口地址。
一个典型配置长这样:
model = "deepseek-chat"
model_provider = "deepseek"
[model_providers.deepseek]
name = "deepseek"
base_url = "https://你的接口地址"
wire_api = "responses"
requires_openai_auth = true
其中:
model是模型名,必须与你的服务端支持的模型名一致;model_provider要和下面的[model_providers.xxx]对应;base_url是 API 网关或中转服务地址;wire_api表示 Codex 使用的接口协议,常见值是responses;requires_openai_auth表示是否使用 OpenAI 风格的鉴权头。
第一步:用 ccswitch 准备模型配置
不同版本的 ccswitch 命令可能略有差异,建议先查看帮助:
ccswitch --help
如果它支持模型列表,可以查看当前可用模型:
ccswitch list
如果它支持切换模型,可以切换到 DeepSeek:
ccswitch use deepseek
如果你的 ccswitch 使用的是交互式菜单,直接运行:
ccswitch
然后在界面里选择 DeepSeek 或对应的中转模型即可。
切换完成后,重点确认三件事:
- 当前模型名是什么;
- 当前接口地址是什么;
- Codex 配置文件是否已经被更新。
有些环境里,ccswitch 会生成类似下面的模型目录文件:
~/.codex/cc-switch-model-catalog.json
这个文件通常用于记录可选模型、显示名称、上下文长度、工具能力等信息。普通用户不一定需要手动修改它,但可以用来排查模型是否被识别。
第二步:配置 Codex 的 config.toml
打开 Codex 配置文件:
~/.codex/config.toml
Windows 下可以用记事本、VS Code 或其他编辑器打开:
notepad $env:USERPROFILE\.codex\config.toml
添加或修改为类似下面的配置:
model = "deepseek-chat"
model_provider = "deepseek"
[model_providers.deepseek]
name = "deepseek"
base_url = "https://api.deepseek.com"
wire_api = "responses"
requires_openai_auth = true
如果你不是直连 DeepSeek 官方接口,而是使用中转站,例如:
https://example.com/api/codex
则可以写成:
model = "deepseek-chat"
model_provider = "mirror"
[model_providers.mirror]
name = "mirror"
base_url = "https://example.com/api/codex"
wire_api = "responses"
requires_openai_auth = true
这里的 mirror 只是 provider 名称,可以换成 deepseek、ccswitch、my-api 等,只要前后对应即可。
第三步:配置 API Key
大多数 OpenAI-compatible 服务都需要 API Key。常见方式是设置环境变量:
export OPENAI_API_KEY="你的 API Key"
Windows PowerShell:
$env:OPENAI_API_KEY="你的 API Key"
如果希望长期生效,可以写入用户环境变量:
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "你的 API Key", "User")
设置完成后,重新打开终端或重启 Codex 桌面端。
注意:不要把真实 API Key 写进文章、截图、Git 仓库或公开配置文件。
第四步:验证 Codex 是否走了 DeepSeek
可以先用 Codex CLI 做一次简单测试:
codex "用一句话介绍你当前是什么模型"
也可以临时指定模型:
codex -m deepseek-chat "写一个 Python 快速排序"
如果你想临时覆盖配置项,也可以使用 -c:
codex -c model='"deepseek-chat"' -c model_provider='"deepseek"' "解释一下这个项目的目录结构"
如果能正常返回结果,说明 Codex 已经可以通过配置的 provider 调用模型。
一个完整示例
下面是一个较完整的 config.toml 示例:
model = "deepseek-chat"
model_provider = "ccswitch"
[model_providers.ccswitch]
name = "ccswitch"
base_url = "https://你的中转服务地址/api/codex"
wire_api = "responses"
requires_openai_auth = true
[projects.'C:\Users\你的用户名\Documents\your-project']
trust_level = "trusted"
如果你使用的是其他模型,只需要改 model 即可,例如:
model = "deepseek-reasoner"
model_provider = "ccswitch"
或者:
model = "qwen-plus"
model_provider = "ccswitch"
前提是你的 base_url 后端确实支持这些模型名。
常见问题
1. 提示模型不存在
优先检查 model 字段。
很多中转服务里的模型名并不一定等于官方模型名,例如官方叫 deepseek-chat,中转服务可能叫 deepseek-v3、deepseek/deepseek-chat 或其他别名。
解决方式:
ccswitch list
查看服务端实际支持的模型名,然后把 config.toml 里的 model 改成对应名称。
2. 提示 401 或鉴权失败
一般是 API Key 没有配置成功。
检查环境变量:
echo $OPENAI_API_KEY
Windows PowerShell:
echo $env:OPENAI_API_KEY
如果为空,重新设置 API Key 并重启终端。
3. 提示接口不存在或 404
优先检查 base_url。
不同服务对 Codex 的路径要求可能不同,有些只需要域名,有些需要带 /v1,有些中转服务会单独提供 /api/codex。
例如:
base_url = "https://api.deepseek.com"
或:
base_url = "https://example.com/v1"
或:
base_url = "https://example.com/api/codex"
具体写法以你的服务商文档和 ccswitch 输出为准。
4. Codex 桌面端没有生效
可以尝试:
- 保存
~/.codex/config.toml; - 关闭 Codex 桌面端;
- 重新打开 Codex;
- 新建一个会话测试。
如果仍然没有生效,先用 CLI 验证:
codex "hello"
CLI 能用而桌面端不能用时,通常是桌面端没有重载配置或环境变量。
5. DeepSeek 推理模型输出慢
如果使用 deepseek-reasoner 这类推理模型,响应时间可能明显长于普通聊天模型。这是正常现象。
建议:
- 日常改代码使用
deepseek-chat或速度更快的模型; - 复杂架构分析、长链路推理再切到
deepseek-reasoner; - 通过
ccswitch在不同模型之间切换。
使用建议
我的建议是把模型分成三类使用:
| 场景 | 推荐模型类型 |
|---|---|
| 日常问答、简单代码生成 | 快速聊天模型 |
| 复杂 bug 分析、架构推理 | 推理模型 |
| 大文件阅读、长上下文项目分析 | 长上下文模型 |
如果你的 ccswitch 支持多模型目录,可以把常用模型都配置进去,再根据任务切换。
例如:
ccswitch use deepseek-chat
codex "帮我重构这个函数"
ccswitch use deepseek-reasoner
codex "分析这个并发 bug 的根因"
这样可以兼顾速度、成本和推理质量。
总结
通过 ccswitch 配合 Codex 的 config.toml,可以比较方便地把 DeepSeek 等大模型接入 Codex:
- 用
ccswitch管理或切换模型; - 在
~/.codex/config.toml中配置model和model_provider; - 在 provider 中填写
base_url、wire_api和鉴权方式; - 配好 API Key 后重启终端或 Codex 桌面端;
- 用
codex "测试问题"验证是否调用成功。
核心配置其实就这一段:
model = "deepseek-chat"
model_provider = "ccswitch"
[model_providers.ccswitch]
name = "ccswitch"
base_url = "https://你的接口地址"
wire_api = "responses"
requires_openai_auth = true
只要模型名、接口地址和 API Key 三者匹配,Codex 就可以通过这套配置使用 DeepSeek 或其他兼容大模型。
更多推荐



所有评论(0)