跳转到内容

代理时,出现计费模型没有代理,然后报错405 - Claude Code

Quick fix

将 ANTHROPIC_DEFAULT_SONNET_MODEL 等环境变量的值直接修改为目标模型名称,因为 cc-switch 代理仅读取该字段进行映射。

报错原文
代理时,出现计费模型没有代理,然后报错405

在使用 cc-switch 配置本地代理(如 DeepSeek)时,用户发现在 UI 中设置的实际请求模型未生效,`~/.claude/settings.json` 中依然保留了原始的 Claude 模型名称。这是因为 cc-switch 代理在转发请求时,仅读取 `ANTHROPIC_DEFAULT_*_MODEL` 环境变量进行模型映射,而不会读取 `ANTHROPIC_DEFAULT_*_MODEL_NAME`。如果 `_MODEL` 字段仍为 `claude-sonnet-4-6` 等默认值,代理会向 DeepSeek 端点请求不存在的 Claude 模型,从而导致 405 报错或映射失败。

  1. 打开 `~/.claude/settings.json` 文件,将 `ANTHROPIC_DEFAULT_SONNET_MODEL` 等 `_MODEL` 环境变量的值直接修改为目标模型名称(如 `deepseek-v4-pro`),不要依赖 `_NAME` 字段。

    // ~/.claude/settings.json
    {
    "env": {
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro"
    }
    }
ToolClaude Code
Version3.15.0
PlatformsLinux
为什么在 cc-switch 界面上设置了实际模型,但 `settings.json` 里显示的还是原来的 Claude 模型?
cc-switch 界面可能将目标模型写入了 `ANTHROPIC_DEFAULT_*_MODEL_NAME` 字段,但代理实际只读取 `ANTHROPIC_DEFAULT_*_MODEL` 字段。你需要手动修改 `settings.json` 中的 `_MODEL` 字段。
在 cc-switch 终端打开可以准确映射,为什么外部不行?
在 cc-switch 终端内运行时,环境变量可能被正确覆盖或注入。但在外部终端使用时,Claude Code 读取的是 `~/.claude/settings.json` 中的持久化配置,因此必须确保该文件中的 `_MODEL` 字段已正确修改为目标模型。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。