我用魔搭是报错 401 token 失效 - Claude Code
Quick fix
在 cc-switch 的 Provider 环境变量中添加 ANTHROPIC_MODEL 即可解决 401 报错。该变量不会同步到 settings.json,此为正常设计。
Symptom
Section titled “Symptom”我用魔搭是报错 401 token 失效Claude Code 使用原生的 Anthropic Messages 协议,而像魔搭等聚合平台通常默认提供 OpenAI 兼容接口。在 cc-switch 中配置第三方模型时,必须显式指定 ANTHROPIC_MODEL 环境变量才能正确路由请求,否则会导致鉴权失败或协议不匹配。
此外,cc-switch 在代理模式下刻意不将 ANTHROPIC_MODEL 等模型变量写入 ~/.claude/settings.json。因为实际请求的模型会经过中间层动态转换,写死本地配置会干扰代理层的模型映射逻辑。
在 cc-switch 中编辑对应的 Provider 配置,在环境变量(env)中添加 ANTHROPIC_MODEL 字段并指定模型名称。
// cc-switch Provider settings_config{"env": {"ANTHROPIC_MODEL": "ZhipuAI/GLM-4.5"}}
Affected Versions
Section titled “Affected Versions”ToolClaude Code
Versionv1.x
PlatformsmacOS
Source Issues
Section titled “Source Issues”本页汇总自 2 个真实 issue
- 为什么切换 Provider 后,~/.claude/settings.json 中没有 ANTHROPIC_MODEL?
- 这是 cc-switch 的刻意设计。在代理模式下,模型映射由代理层动态控制,将模型变量写入本地 settings.json 会干扰代理层的动态替换逻辑,因此只保留连接代理所需的最小必要信息(BASE_URL 和 TOKEN)。
- Claude Code UI 显示的模型名称(如 Sonnet 4.6)与实际使用的不一致怎么办?
- 这是已知限制。由于 cc-switch 不将模型变量写入本地配置,Claude Code 界面无法感知实际使用的模型名称,但这可以保证代理逻辑和模型动态映射的正确性,不影响实际使用。
- 如果供应商只提供 OpenAI 兼容接口怎么办?
- cc-switch 目前只支持原生支持 Anthropic/Claude 协议的供应商。如果必须使用 OpenAI 兼容接口,可以尝试使用 Claude Code Router 等开源项目进行协议转换。
Auth conflict退出 Claude 官方登录、清理冲突的 ANTHROPIC_* 环境变量,并将 ~/.claude.json 的 hasCompletedOnboarding 设为 true 后重启终端。ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY打开 `~/.claude/settings.json`,删除重复的 auth 环境变量,只保留当前供应商需要的 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_API_KEY`,保存后重启 Claude Code。settings.json被全量重写导致插件失效多数相关 issue 仍未解决;升级至v3.20.1+,该版本已修复切换配置时清空enabledPlugins等字段的Bug。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。