codex接入deepseek失败的根本原因是协议不兼容:codex强制要求/responses接口及特定json结构(含id、created等字段),而deepseek仅提供/chat/completions接口,二者字段名、嵌套层级和流式格式均不匹配,必须通过本地代理(如moon bridge或cc switch)进行协议转换,否则必报502或格式错误。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex接入DeepSeek时反复报错,不是模型不行、也不是API Key写错了,而是请求发出去后根本没被正确解析——Codex坚持要Responses格式的响应体,DeepSeek只认Chat Completions结构,两者字段名、嵌套层级、流式chunk包装方式全都不对,中间缺一层协议翻译。
核心矛盾:Codex要/responses,DeepSeek只给/chat/completions
新版Codex(v0.128起)强制要求自定义provider使用wire_api = "responses",它会向http://127.0.0.1:15721/v1/responses发POST请求,期望返回包含choices→message→content字段的JSON;而DeepSeek官方API只暴露https://api.deepseek.com/v1/chat/completions,返回结构是choices→message→content,但顶层还多一层object字段,且缺少Codex解析器硬依赖的id、created、model等字段。直接填base_url过去,Codex收不到合法响应,立刻抛出502 Bad Gateway或invalid response format错误。
这一步无法绕过。Codex配置里写死只认responses,改config.toml里的wire_api字段会触发invalid configuration: unknown variant 'chat_completions'报错。
常见报错现象与对应根源
方法一:报“502 Bad Gateway: Unknown error”
这是CC Switch本地代理未启用协议转换时的典型表现。Codex → CC Switch → DeepSeek,请求路径是/v1/responses,但CC Switch没把该路径映射到/chat/completions,导致DeepSeek收到陌生端点直接拒接。
方法二:会话窗口卡在“Reconnecting”,最终提示“DeepSeek模型不存在/超时”
大概率是模型路径含中文或空格,或config.json中device设为cuda但显卡驱动未就绪。Codex++加载本地DeepSeek模型时,路径C:\用户\张三\models\deepseek-v4会被解析失败,【必须用纯英文无空格绝对路径】,例如C:/dev/models/deepseek-v4。
方法三:能连上但Tools功能失效,改文件变成一堆echo/cp/mv命令
DeepSeek V4 Pro启用thinking mode后,返回内容含reasoning_content字段,而CC Switch旧版或codex-bridge未透传该字段,Codex解析时丢失工具调用上下文,被迫退化为shell指令模拟修改。
验证协议层是否通的关键操作
第一步:用curl手动触发一次Codex标准请求
在PowerShell中执行:
curl -X POST "http://127.0.0.1:15721/v1/responses" -H "Content-Type: application/json" -d '{"model":"deepseek-v4-pro","messages":[{"role":"user","content":"test"}]}'
第二步:观察返回体结构
如果返回是{"error":"not found"}或空响应,说明CC Switch没监听该路径;如果返回{"choices":[{"message":{"content":"xxx"}}]}但缺id字段,说明协议转换未生效;只有返回含id、object、created、model、choices完整字段的JSON,才代表桥接成功。
第三步:检查CC Switch设置 → 路由 → 本地路由是否已开启
这是2026年6月起CC Switch v3.16.0新增的开关,默认关闭。不打开它,/v1/responses请求永远不会被重写为/chat/completions。










