供应商切换后配置不生效 / Codex 请求失败 (cc-switch)
Quick fix
在 cc-switch 里切换 DeepSeek 等供应商后配置不生效:升级 cc-switch,并以 cc-switch 的启用/保存为唯一写入口,不要手改 live 配置文件。
Symptom
Section titled “Symptom”根据操作配置不生效,之前还是有用的,今天重启电脑后就这样了这个聚簇里报告的其实是同一类「配置已切换但没生效」的表象,背后有多种机制,各 issue 指向的原因并不完全一致:
1) 最典型的是配置文件写入范围问题(#2966、#656):切换供应商/模型时,目标应用的配置文件(hermes agent 的 config.yaml、Claude 的 JSON 配置)没有被完整重写,导致默认模型、provider、base_url 仍是旧值。这类问题在 v3.15.0/v3.16.0 附近被修复——维护者在 #2966 中确认切换时会同步更新 `model.default`、`model.provider`、`model.base_url`(base_url 从新 provider 的 `base_url` / `baseUrl` 读取)。
2) 另一类是运行时链路问题而不是写文件失败(#3591、#6936):通过「功能增强/接管」本地代理(127.0.0.1:15721)转发时请求失败或 429,日志显示 `上游连接失败: error sending request`,同一进程里 Claude 转发成功而 Codex 失败;其中 #6936 在 macOS 上 3.17~3.20.1 全部复现,且有用户未改任何配置、重启后自行恢复,怀疑与证书有关——这一条没有定论,属于未确认的变体。
3) 还有目标端模型本身的问题(#3255、#3864):上游模型名不存在(如 `claude-haiku-4-5-20251001` 下架)、或测试模型字段修改后未保存成功,表现为「改了不生效」。
注意:#3591 的 429 与 #6936 的连接失败更像中转商限流/网络栈问题,与 #2966/#656 的写配置 bug 不同;如果按下面的步骤仍复现,需要区分你遇到的是哪一类。
先升级 cc-switch 到最新版(v3.20.0+ / v4.0):v3.15.0/v3.16.0 已修复切换供应商时同步更新 model.default/provider/base_url 的问题,v4.0 又重做了本地路由和请求转发,只写关键字段,覆盖面更广。
切换供应商时,在 cc-switch 界面里对目标供应商点一次「启用」或「保存」(不要只改模型 ID 后退出),让 cc-switch 重新生成目标应用的 live 配置;不要手动去改 hermes agent 的 config.yaml 或 Claude 的 JSON 配置文件,否则下一次启用/保存会被整文件覆盖回去。
以 hermes agent 的 config.yaml 为例:切换后应由 cc-switch 同步写入以下三项,不要只改 model.default model:default: DeepSeek-V4-Flashprovider: moarkbase_url: https://api.moark.com/v1如果升级后 Codex 仍全部请求失败而 Claude Code 正常(#6936 场景):关闭/切换系统代理、PAC、v2ray 后重试;查看 ~/.cc-switch/logs/cc-switch.log 中对应时间段的 `[Forwarder]` 日志确认是否为「上游连接失败」;在 macOS 13 等无法升级系统的环境,该问题暂无已确认的修复,有用户报告重启数日后自行恢复(疑似证书问题)。
如果报错是某个模型「不存在或已下架」(#3255):在供应商表单里把模型名改成上游真实存在的模型(例如 deepseek-chat),保存后再测;注意测试模型字段需要保存成功才会生效。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 7 个真实 issue
- #656【供应商设置Deepseek不生效】
- #2966hermes配置文件无法切换默认模型
- #3255DeepSeek 测试模型 claude-haiku-4-5-20251001 不存在或已下架
- #3591使用中转api登陆codex可以正常使用,但是通过codex增强切换后会报429 too many requests
- #3864codex接入DeepSeek apikey失败
- #6465[Bug] openai_responses 启用/保存会把 catalog 的 reasoning levels 重置为 none/high
- #6936MacOS 13 上 cc-switch 全部 provider 检查与应用内更新不可用,codex 请求 API 失败
- 我在 cc-switch 里切换了 DeepSeek,但 hermes agent / Claude 里还是旧配置?
- 这正是 #2966/#656 的问题:旧版本只改了部分字段。升级到 v3.16.0+ 后,切换时会同步写入 model.default、model.provider、model.base_url。改完后在 cc-switch 里点一次「启用/保存」让配置重新生成。
- 用中转 API 直接登 Codex 正常,经过 cc-switch 切换后报 429 too many requests?
- #3591 记录过这个现象,有用户把供应商切到 deepseek 就好了。维护者判断 429 更可能来自中转商对请求特征的限流,v4.0 已重写本地路由;若最新版仍复现,需要提供中转商名称和 ~/.cc-switch/logs/cc-switch.log 对应时间段的日志才能定位。
- macOS 上 Codex 走 cc-switch 代理全部失败、Claude Code 却正常,检查更新也失败?
- 见 #6936:3.17~3.20.1 均复现,与系统代理/PAC/v2ray 开关无关。有用户在未升级系统的情况下重启数日后自行恢复,推测与证书有关;该场景暂无已确认的修复,升级 macOS 曾被报告有效(类似 #3968)。
- 报错说测试模型 claude-haiku-4-5-20251001 不存在或已下架?
- 这是上游模型名失效,不是 cc-switch 没写入。在供应商配置里把模型改成实际可用的(如 deepseek-chat)并保存即可。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。