← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

Codex 404 之谜:Responses API 协议断层与本地 Proxy 桥接方案

AI/Agent 阅读原文(微信)↗

Codex 升级到下一代协议,国内大模型集体 404 Not Found——不是能力问题,是接口代差——LeisureLinux

如果你使用 Codex CLI(v0.122+)搭配 DeepSeek 或阿里百炼等国内大模型,可能会遇到一个令人困惑的错误:

unexpected status 404 Not Found: Unknown error, url: https://api.deepseek.com/v1/responses

这不是模型的能力问题,也不是 API Key 的问题——这是 Codex 项目架构演进中的一个重大断层变动(Breaking Change)。本文复盘整个排查过程与解决方案。

本文看点

01

为什么 Codex 强制废弃 Chat Completions?

02

为什么国内大模型无法直连?

本地 Proxy 桥接转换方案

01

BREAKING CHANGE

为什么 Codex 强制废弃 Chat Completions?

OpenAI 在升级 Codex CLI 时,彻底将底层交互规范由传统 Chat API 迁移到了全新的 Responses API(/v1/responses) ,并硬编码锁死了 wire_api = \"responses\" 。核心技术原因包括:

原因 01 旧协议无法承载 Agentic 交互

旧的 chat/completions 诞生于 GPT-3.5 时代,本质上是「一问一答」的模型。而现代 Agent 级编程工具需要频繁进行 Tool Calling (本地执行命令、修改文件、读写 Git)、多轮 Reasoning/Thinking 思考过程交织、以及长连接 SSE/WebSocket 双向控制。这些能力在简陋的 Chat 协议上做扩展,越堆越臃肿。

原因 02 状态管理下沉到协议层

在 Responses API 下,上下文管理、Thinking 过程的暂存、Tool 回调的 ID 匹配全都在协议层标准化了。OpenAI 官方团队在 GitHub 上明确表示:为了维持兼容旧的 Chat 协议,导致代码库膨胀且极易引入 Regression(功能退化),因此 决定彻底砍掉对 wire_api = \"chat\" 的支持 ,强制仅支持 Responses 协议。

02

PROTOCOL GAP

为什么国内大模型无法直连?

不是 DeepSeek 等模型的能力问题 ,而是 「协议规范接口(Protocol Endpoint)」的代差 :

「不是连不上,是鸡同鸭讲——Codex 说 Responses 语,DeepSeek 只会 Chat 语。」

DeepSeek、百炼等平台目前提供的仍然是 OpenAI 兼容规范的 Chat Completions 接口 (包含 messages 、 /v1/chat/completions 的标准 JSON 格式)。而 Codex CLI 当前发出的却是结构完全不同的 Responses API 请求 (包含 input 、 instructions 、 reasoning_effort 等字段,路由为 /v1/responses )。当 Codex CLI 把 Responses 协议的 Payload 发给 DeepSeek 时,服务端的 Gateway 识别不到对应的接口,直接抛出 404 Not Found 。

03

SOLUTION

社区的解决方案:本地 Proxy 桥接转换

因为 Codex 在客户端代码层面做死了硬编码, 唯一的解法就是通过本地中间件(Proxy)完成双向协议转换 :

FLOW

[ Codex CLI ] ─── /v1/responses ───→ [ 本地 Proxy ]

↓ 协议转换桥接

[ 国内平台 (DeepSeek / 百炼) ] ←── /v1/chat/completions

TOOL 1 CC Switch

提供本地路由服务,专为 Codex 这种强绑定 Responses API 的 CLI 工具设计。自动把 Codex 发出的 /v1/responses 请求实时拦截,重写映射回 DeepSeek 的 /chat/completions 格式。

TOOL 2 codeproxy-ai/cli

基于 Node.js 的轻量级通用本地代理。支持请求体转化、SSE 流式输出转译、Thinking/Reasoning 思考过程回传以及 Tool Calling 的拦截映射。安装方式:

npm install -g \@codeproxy/cli

codeproxy \\

  --base-url https://api.deepseek.com/v1 \\

  --model deepseek-v4-flash \\

  --apikey \\\"\$DEEPSEEK_API_KEY\\\" \\

  --upstream-format openai-chat

       proxy 默认监听        127.0.0.1:8787        。然后在 Codex         \~/.codex/config.toml         中,将        base_url         改为指向本地 proxy:

         CONFIG

         [model_providers.deepseek]

         name = \"DeepSeek\"

         base_url = \"http://127.0.0.1:8787/v1\"

         env_key = \"DEEPSEEK_API_KEY\"

                             TOOL 3          openai/codex-responses-api-proxy

         官方/社区针对 Node/NPM 分发的轻量级转译工具,安装后本地跑一个服务,Codex           base_url           直接指向          http://127.0.0.1:3000/v1           即可正常工作。

「这属于技术栈升级带来的标准不兼容——Codex 升级到了下一代协议(Responses API),而大多数第三方 API 平台目前依然暴露的是上一代标准协议(Chat Completions API)。挂一层轻量级的本地 Proxy 是目前体验最稳、无需修改客户端代码的标准解法。」

END

如果你觉得今天这篇有收获,欢迎 点赞、在看、转发 三连,我们下篇见。

[OpenClaw 实操OpenClaw DreamingAI 智能体的梦境记忆系统](https://mp.weixin.qq.com/s?__biz=MzA5NzgyNzA0MA==&mid=2650318903&idx=1&sn=d2769dd5a5b29cf05ccd9032f57845ef&scene=21#wechat_redirect){linktype="2" localeditorid="1vkfzcefnglxpn0agw" target="_blank" textvalue="【OpenClaw 实操】OpenClaw Dreaming:AI 智能体的梦境记忆系统"}[【OpenClaw 实操】本地嵌入模型踩坑记:从 FTS 到向量嵌入的五条路](https://mp.weixin.qq.com/s?__biz=MzA5NzgyNzA0MA==&mid=2650318894&idx=1&sn=453816ea657e4234b022509f5d4cb398&scene=21#wechat_redirect){linktype="2" localeditorid="k1ixwlxapvnfqsny0w" target="_blank" textvalue="【OpenClaw 实操】本地嵌入模型踩坑记:从 FTS 到向量嵌入的五条路"}\

从OpenClaw到Codex:52个AI Agent技能的搬家实战

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)