
Codex 直连 Claude 网关的 404 解法CC Switch 本地路由完整指南【免费下载链接】cc-switchA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build Hermes Agent. Only official website: ccswitch.io项目地址: https://gitcode.com/GitHub_Trending/cc/cc-switch如果你手上只有一把 Claude 中转网关的钥匙想让 Codex 用上它把网关地址直接填进去只会换来一串 404。这篇指南带你用 CC Switch 本地路由功能把这条路走通Codex 照旧发 Responses 请求本地路由负责把请求体翻译成 Anthropic Messages 协议发给网关再把 JSON/SSE 响应含推理内容、工具调用、图片翻译回来。全程只动几个字段十几分钟配完。404 现场为什么网关地址不能直接塞给 Codex先还原一下翻车现场。你打开~/.codex/config.toml把 Claude 中转网关的地址填进base_url重启 Codex提问——网关回给你一个 404。原因不复杂这两套协议说的根本不是同一种语言。Codex CLI 只认 OpenAI Responses 协议它请求的路径是/responses请求体和流式事件都按这套结构组装而 Claude 家族中转网关、企业内网 Claude 网关暴露的是 Anthropic Messages 协议端点是/v1/messages请求体、SSE 事件、响应结构全都对不上。路径对不上网关自然找不到你。这就是Claude 中转网关 404这类问题的典型来源也是 Codex /responses 404 解决 的症结所在——不是地址写错了是协议压根没翻译。CC Switch 3.17.0 起引入了 Anthropic Messages 上游解法是架一个本地翻译层本地路由服务默认127.0.0.1:15721接住 Codex 的 Responses 请求改成 Anthropic 请求转发给真实网关再把响应逐段转回 Responses 结构。Codex 对此完全无感。从源码看翻译核心在 src-tauri/src/proxy/providers/transform_codex_anthropic.rs。文件头注释交代得很清楚它是 transform_responses.rs 的镜像方向——后者把 Anthropic 请求翻成 Responses这个模块反过来做 Responses → Anthropic 的请求转换和 Anthropic → Responses 的响应转换。分发入口在 forwarder.rs 的codex_responses_to_anthropic分支。动手前自查你的环境走不走这条路三个条件缺一个就得先补✅ CC Switch 已装好且版本 ≥ 3.17.0Anthropic Messages 上游就是这一版引入的✅ Codex CLI 至少完整跑过一次~/.codex/目录结构已经存在✅ 你有一把走 Anthropic Messages 协议/v1/messages端点的密钥来自 Claude 家族中转网关或企业内网网关端点地址和鉴权方式以网关文档为准。另外留意一个坑有的供应商把 Claude API 限定为仅限 Claude Code 客户端使用这类密钥经由 Codex 调用大概率被拒。拿不准就先问供应商别等配完才发现是密钥权限问题。典型适用场景公司出于合规禁用了 Claude Code 客户端但网关本身还在、密钥还在——模型能用缺的只是一个合规的客户端Codex 正好能顶这个位置。供应商怎么建只填五个字段打开 CC Switch切到顶层 Codex 页签点右上角加号新增供应商保持默认的Custom Configuration不动然后填Provider Name随便起比如Claude GatewayAPI Key填网关密钥。它只存在 CC Switch 里转发时由本地路由注入上游请求头Codex 侧的 live 配置里只有一个占位符API Request URL只填网关的服务根地址例如https://claude-gateway.example.com。带不带尾部/v1都行路由会自动去敲/v1/messages你自己拼完整 messages 路径反而容易错。若网关文档给的就是完整 messages URL打开旁边的Full URL开关原样粘贴Default Model一个网关认得出来的模型 id如claude-sonnet-5以网关文档为准上游格式在高级选项里见下文。地址栏下方那句黄色提示compatible with OpenAI Response format是给直连 Responses 的场景写的通用文案选了 Anthropic 格式后忽略它即可。上游协议怎么切三个配套选项展开Advanced Options把Upstream Format从默认的Responses (native)切成Anthropic Messages (routing required)。切完会出现三个联动字段逐个说Auth field认证字段决定密钥挂在哪个请求头上发往上游两个头只发一个。ANTHROPIC_AUTH_TOKEN (Authorization)发Authorization: Bearer key。默认值多数 Claude 中转网关用这个ANTHROPIC_API_KEY (x-api-key)发x-api-key: key。部分遵循 Anthropic 原生头约定的网关要求它。 选错的典型症状就是 401 / 403别急着怀疑密钥先换个头试试。Emulate Claude Code client模拟 Claude Code 客户端默认关。只有当网关明说仅限 Claude Code 使用时才打开。开启后它会仿造 User-Agent、anthropic-beta、x-app这几个头并在系统提示第一行注入 Claude Code 身份标识——对应实现是 forwarder.rs 里codex_impersonate_claude_code为真时调用prepend_claude_code_system_prompt改写请求体。普通网关别开开了反而可能暴露意图。Max output tokensAnthropic 协议的max_tokens是必填项。如果 Codex 请求没带上限路由会回退到一个保守默认值——就是 forwarder.rs 里这个常量const DEFAULT_CODEX_ANTHROPIC_MAX_TOKENS: u64 8192;8192 是当前所有 Claude 模型和几乎所有网关都收的值但对付长回答或深度推理可能不够症状是回答戛然而止、stop_reasonmax_tokens。这时在表单里把它提到模型的真实上限——注意别填超超限上游直接 400 且不可重试。有个优先级细节供应商表单里配置的Max output tokens会赢。forwarder.rs 里只要供应商 meta 的max_output_tokens 0就先把它写进请求体的max_output_tokens压过请求自带值和上面那个默认值这样 thinking 预算的钳制也能按真实上限算余量。同区域的Model Mapping模型映射是可选的每行填一个网关认得的模型 id如claude-opus-4-8、claude-haiku-4-5-20251001CC Switch 会据此生成模型目录Codex 的/model菜单就能列出这些名字。留空也行Codex 就只用默认模型干活。保存之后供应商卡片上会多一个Needs Routing需要路由的标记。看到它就知道这个供应商必须配合本地路由才能工作。本地路由怎么开接管后配置里发生了什么进设置页切到Routing页展开Local Routing区块拨两个开关路由总开关启动本地服务首次开启会弹一个确认对话框。默认地址是127.0.0.1:15721端口在代理面板里可改路由启用下的Codex打开。若你只想让 Codex 走路由Claude 和 Gemini 保持关闭即可多个应用的路由也能同时启用。接管这一步在 Codex 侧的实际动作值得看一眼它在 codex_config.rs 里update_codex_toml_field借助toml_edit做语法保持式的改写base_url和wire_api会被写进当前model_provider对应的[model_providers.current]段而不是顶层字段——测试用例base_url_writes_into_correct_model_provider_section验证的正是这件事。写进去的值base_url http://127.0.0.1:15721/v1wire_api responses被强制保留。也就是说 Codex 全程以为自己还在跟一个标准 Responses 端点说话。真实密钥则留在 CC Switch 的供应商配置里由路由按你选的 Auth field 注入auth.json中只有占位符。启用并重启一步步验证跑通回到 Codex 供应商列表点 Claude 网关的Enable。若路由没在跑CC Switch 会拦住你提示该供应商依赖路由服务、请先启动——回上一步打开即可重启当前 Codex 终端会话。config.toml和模型目录都是在 Codex 进程启动时读取的跑着的进程不保证热加载这一步别省进 Codex 逐条验证配过模型映射的话敲/model看 Claude 模型是否进了菜单发一个小问题然后回设置 → Routing 页看 Current Provider从 Waiting for first request... 变成你的 Claude 供应商Total Requests 开始涨就说明链路通了用量面板里这些请求的模型名如实显示为claude-*可按供应商筛选核对 token 消耗。自动的与不能用的能力边界一览prompt 缓存自动生效。转换完成后 forwarder.rs 会调用cache_injector::inject按 Anthropic 惯例给系统提示、工具定义、对话历史挂上标准 5 分钟缓存断点连system字符串转数组、断点预算这些脏活都替你做了。长对话不会每轮全价重发零配置。推理与工具无损往返。extended thinking 内容经桥接后原样回来多轮工具调用、图片输入、PDF 输入都能完整转换。实现上有个巧思Anthropic 带签名的 thinking / redacted-thinking 块会被 Base64 编码藏进 Responses 的reasoning.encrypted_content字段前缀是ccswitch-anthropic-thinking-v1:见 transform_codex_anthropic.rs。这样下一轮工具请求时Codex 能把签名的思考块原样回放给上游。[1m]长上下文后缀自动处理。模型 id 以[1m]结尾如claude-sonnet-5[1m]时路由会剥掉这个后缀并自动加上 1M 上下文的 beta 头context-1m-2025-08-07前提是网关支持该能力。因为上游模型名回写时可能把[1m]带回来最终请求体上还会再剥一次两头都堵住了。web search 被刻意禁用。Anthropic 上游模式下Codex 内置的web_search工具翻译不过去与其让模型看见一个必然失败的工具不如直接不给。需要联网搜索的任务切回 Responses 或 Chat 格式的供应商。截断如实上报。上游在输出上限处停下、或流被中断时Codex 看到的是 incomplete不是伪装出来的成功——方便你定位到输出上限并调大它。effort 会映射成 thinking 预算。Codex 的reasoning.effort按effort_to_thinking_budget转成 Anthropic thinking 的 token 预算minimal/low → 2048、medium → 8192、high → 16384、xhigh/max/ultra → 24576未识别的值返回None即不开 extended thinking避免误吞 temperature/top_p。回归测试test_request_default_max_tokens_leaves_output_headroom还验证了预算钳制默认 8192 上限配 high 档位时预算被钳到 4096至少给可见回答留 4096 的余量。401/403 与 404 排障速查看到报错直接查表现象常见原因处理办法上游回 401 / 403认证头选错或密钥本身失效、欠费在 Bearer 与x-api-key之间切换重试多数网关用默认 Bearer顺手确认密钥余额Codex 报 404、找不到/responses路由接管没开或手动把网关地址写进了 Codex查~/.codex/config.toml当前供应商的base_url应是http://127.0.0.1:15721/v1路由已开上游仍 404API Request URL 填成了带路径的地址比如/chat/completions只填服务根地址路径不常规时开Full URL开关直接贴完整 messages 端点回答经常断在半截默认 8192 上限在起作用供应商表单的Max output tokens调大别超模型真实上限保存后重试/model菜单是空的映射没加条目或保存后没重启 Codex补上模型映射并重启 Codex默认模型若不在映射里不会进菜单直接请求仍可用Web search 不可用设计如此非故障见上文能力边界需要搜索就换 Responses/Chat 格式供应商提示使用被限制为 Claude Code供应商侧强制客户端限制试开Emulate Claude Code client仍被拒说明限制在供应商侧去确认你的密钥能否用于 Claude Code 之外合规与延伸阅读用公司禁客户端但保留网关这类场景跑这条链路之前先跟组织确认一下政策被禁的究竟是某个具体客户端还是某种使用方式各地口径不同。走第三方中转网关时也请留意它的计费、合规与数据留存条款。想深挖的话这几处是正主核心转换实现src-tauri/src/proxy/providers/transform_codex_anthropic.rs、src-tauri/src/proxy/forwarder.rscodex_responses_to_anthropic分支Codex 配置写入src-tauri/src/codex_config.rs官方文档用户手册 · Proxy Service、用户手册 · App Routing版本背景v3.17.0 发布说明。这个功能来自社区贡献PR #5071感谢 yeeyzy。【免费下载链接】cc-switchA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build Hermes Agent. Only official website: ccswitch.io项目地址: https://gitcode.com/GitHub_Trending/cc/cc-switch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考