codex配置deepseek失败的根本原因是本地配置与api协议不匹配,需先运行codex初始化~/.codex/目录,再通过cc switch桥接并正确设置base_url、wire_api及模型名,最后用curl验证api key有效性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex配置DeepSeek模型失败时,会话窗口持续显示“Reconnecting”,最终报错“DeepSeek模型不存在”或“超时”,这不是模型本身不可用,而是本地配置与DeepSeek API协议之间存在根本性不匹配。
确认前置条件是否全部满足
这一步必须完成,否则后续所有操作都会失败。Codex CLI 从未运行过,CC Switch 就无法写入或接管配置文件。
打开终端,执行 codex --version。如果提示命令未找到,请先运行 npm install -g @openai/codex 安装 CLI。
安装后,直接输入 codex 并回车——不需要任何参数,也不需要能连上服务,只要让它初始化 ~/.codex/ 目录即可。Windows 用户请检查 C:\Users\【你的用户名】\.codex\config.toml 是否已生成;macOS/Linux 用户请确认 ~/.codex/config.toml 存在且非空。
若该文件不存在,CC Switch 后续所有“接管配置”操作都将静默失败,界面无提示,但模型永远加载不出来。
用 CC Switch 配置 DeepSeek(推荐方案)
CC Switch 是目前最稳定、无需修改 Codex 源码的协议桥接工具,它把 Codex 发出的 Responses 请求,自动转成 DeepSeek 能识别的 Chat Completions 格式。
方法一:使用预设一键导入
启动 CC Switch v3.16.0 或更新版本 → 切换到「Codex」标签页 → 点击右上角「+」新建供应商 → 在弹出的预设列表中选择「DeepSeek」→ 下拉填写你从 https://platform.deepseek.com/api-keys 复制的 sk-开头的 API Key → 点击「保存」。
方法二:手动配置(仅当预设失效时启用)
新建供应商时,不选预设,手动填入:
name = "deepseek"
base_url = "https://api.deepseek.com/v1"
wire_api = "chat"
env_key = "DEEPSEEK_API_KEY"
meta.apiFormat = "openai_chat"
注意:base_url 必须带 /v1 后缀,漏掉会导致 404 错误;wire_api 必须设为 "chat",设成 "responses" 会直连失败。
保存后,勾选「启用本地路由映射」并点击「应用配置」。此时 CC Switch 会在本地启动一个代理服务,监听 127.0.0.1:15721。
强制 Codex 使用本地代理
第一步:打开 Codex CLI 配置文件
定位并用文本编辑器打开 ~/.codex/config.toml(Windows 路径为 C:\Users\【你的用户名】\.codex\config.toml)。
第二步:修改 provider 配置段
找到 [model_providers] 下对应 deepseek 的 section,确保包含以下三行:
base_url = "http://127.0.0.1:15721/v1"
wire_api = "responses"
requires_openai_auth = false
第三步:指定默认模型提供方
在文件顶部或 [defaults] 区块中,设置:
model_provider = "deepseek"
model = "deepseek-v4-pro"
注意:“model = deepseek-v4-pro”必须与 DeepSeek 官方文档当前支持的模型名完全一致,大小写、连字符、版本号都不能错;填错会触发 400 报错且不提示具体原因。
验证 DeepSeek API Key 是否真正可用
不要依赖 echo $DEEPSEEK_API_KEY 的输出结果——环境变量可能被其他进程覆盖或未被 Codex 进程继承。
在终端中执行以下 curl 命令,直接测试接口连通性:
curl -X POST https://api.deepseek.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v4-pro","messages":[{"role":"user","content":"你好"}]}'
将 sk-xxx 替换为你的真实 key。如果返回 JSON 响应含 content 字段,说明 key 有效、网络通畅、模型名正确;如果返回 401,说明 key 无效或已过期;如果返回 400 且提示 model 不支持,则立即核对模型名拼写。










