
1. 为什么多模型切换总在改 settings.json 上翻车如果你同时用 Claude Code 和 OpenCode 写代码大概率遇到过这种场景上午用智谱 GLM 跑长上下文重构下午想换 DeepSeek 做推理密集的算法题结果每次都要手动打开~/.claude/settings.json把ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL三个字段挨个改一遍改完还得重启终端。改错一个字符claude启动就报 401排查半天发现是 Key 复制时多了个空格。CC Switch 这个工具解决的正是这个痛点。它本质是一个 GUI 配置管理器把多套「提供商配置」——也就是 Base URL Token 模型名——保存成独立条目点一下就把选中的那套写进~/.claude/settings.json的环境变量区。你不用再记哪个 Key 对应哪个端点也不用担心手抖改坏 JSON 格式。但这里有个现实问题智谱官方提供了 Anthropic 兼容端点可以直接对接 Claude CodeDeepSeek 官方只有 OpenAI 兼容端点Claude Code 原生不认。所以很多人卡在「DeepSeek 怎么接进来」这一步。我试过用本地 router 转换也试过直接找支持 Anthropic 协议的中转端点后者配置更干净——把 endpoint 统一改到 TaoToken 之后智谱和 DeepSeek 都能用同一套 Anthropic 格式调用CC Switch 里只需要维护一个 Base URL 模板换模型只改 Model ID 就行。这篇教程面向的是已经在用或准备用 Claude Code / OpenCode 的开发者尤其是那些需要在智谱 GLM 和 DeepSeek 之间频繁切换、又不想每次手敲环境变量的人。下面从安装到配置到验证一步步走完最后给出 CC Switch 的 settings 可复制片段和两个模型的实测返回结果。2. 前置准备Node.js、Claude Code、OpenCode 与 CC Switch 安装在动 CC Switch 之前得先把三个东西装好Node.js 运行时、Claude Code CLI、OpenCode CLI以及 CC Switch 本体。这一步看起来琐碎但版本不对后面会出各种奇怪报错。2.1 Node.js 安装与版本确认Claude Code 和 OpenCode 都依赖 Node.js建议 v20 LTS 起步。去 Node.js 官网下载 LTS 安装包Windows 选.msimacOS 选.pkg安装时勾选「Add to PATH」。装完打开 PowerShell 或终端验证node -v npm -v正常输出类似v20.11.0和10.2.4。如果node命令找不到说明 PATH 没配好重新安装并确认勾选项。国内下载 npm 包慢的话可以切一下镜像npm config set registry https://registry.npmmirror.com2.2 安装 Claude CodeClaude Code 是 Anthropic 官方 CLI通过 npm 全局安装npm install -g anthropic-ai/claude-code验证claude --version首次在项目目录运行claude会提示登录官方账号。如果你打算用智谱或 DeepSeek这里直接CtrlC退出不要登录——后面 CC Switch 会通过环境变量接管认证。登录了反而可能覆盖掉 settings.json 里的配置。2.3 安装 OpenCodeOpenCode 是开源的 AI 编程终端同样支持自定义后端。npm 安装方式跨平台最稳npm install -g opencode-aimacOS / Linux 也可以用一键脚本curl -fsSL https://opencode.ai/install | bash验证opencode --versionOpenCode 的配置不走~/.claude/settings.json而是读项目根目录的opencode.json这点后面单独说。2.4 安装 CC SwitchCC Switch 是一个桌面 GUI 工具去它的 GitHub Releases 页面下载最新版安装包Windows 选CC-Switch_x.x.x_x64-setup.exe双击安装。启动后你会看到一个提供商列表界面可以新增、编辑、一键切换。它实际做的事情很简单读写C:\Users\你的用户名\.claude\settings.json把选中提供商的ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL写进env字段。理解这一点后面排查问题就有方向了。3. CC Switch 配置智谱与 DeepSeek 的 settings 可复制片段这一节是核心。CC Switch 的 GUI 操作背后就是往settings.json写 JSON所以我把可复制的配置片段直接给出来你既可以在 CC Switch 里填表也可以手动写入文件对照。3.1 统一 endpoint 到 TaoToken 的思路智谱官方 Anthropic 端点是https://open.bigmodel.cn/api/anthropicDeepSeek 官方没有 Anthropic 端点。如果分别维护两套 Base URLCC Switch 里就得建两个提供商条目切换时还要确认 Key 没搞混。更干净的做法是把 endpoint 统一改到 TaoToken。TaoToken 提供 Anthropic 兼容的 API 入口Base URL 填https://taotoken.net/api智谱和 DeepSeek 都通过同一个入口调用区别只在 Model ID。这样 CC Switch 里只需要维护一个提供商的 Base URL换模型改ANTHROPIC_MODEL即可。先去 TaoToken 控制台创建一个 API Key地址是https://taotoken.net/console创建后复制保存。然后在 CC Switch 里新增提供商按下表填写字段值名称TaoToken 多模型Base URLhttps://taotoken.net/apiAPI Key你的 TaoToken Key模型 (Model)glm-4.6或deepseek-chatAPI 类型Anthropic3.2 可复制的 settings.json 片段如果你不想用 GUI直接编辑C:\Users\你的用户名\.claude\settings.json写入以下内容。这是智谱 GLM 的配置{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: 你的TaoToken Key, ANTHROPIC_MODEL: glm-4.6, ANTHROPIC_SMALL_FAST_MODEL: glm-4.6 } }切换到 DeepSeek 时只改ANTHROPIC_MODEL字段{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: 你的TaoToken Key, ANTHROPIC_MODEL: deepseek-chat, ANTHROPIC_SMALL_FAST_MODEL: deepseek-chat } }注意ANTHROPIC_SMALL_FAST_MODEL也要跟着改否则 Claude Code 内部调用小模型做辅助任务时可能报 model not found。这个字段容易被忽略是踩过的坑之一。3.3 CC Switch 里保存两套配置在 CC Switch 里建两个提供商条目一个叫「智谱 GLM」一个叫「DeepSeek」Base URL 和 Key 都填 TaoToken 的只有 Model 不同。这样切换时点一下对应条目CC Switch 自动把 settings.json 改好不用手动编辑。如果你更习惯命令行也可以用 TaoToken 的 API Keys 页面管理 Key地址是https://taotoken.net/api-keys。同一个 Key 可以同时调智谱和 DeepSeek不需要为每个模型单独申请。4. 验证请求分别调用智谱与 DeepSeek 的返回结果配置写完不代表能跑通得实际发请求验证。这一节给出两种验证方式用 Claude Code 交互式测试以及用 curl 直接打 API 看返回。4.1 用 Claude Code 验证智谱 GLM确保 settings.json 里ANTHROPIC_MODEL是glm-4.6然后关闭所有已打开的终端环境变量在启动时读取不重启不生效重新打开一个终端进入任意项目目录claude启动后输入测试语句请用一句话介绍你自己并说明当前使用的模型名称如果配置正确会看到类似返回我是 GLM-4.6由智谱 AI 开发的大语言模型当前通过 Anthropic 兼容接口在 Claude Code 中运行。这说明智谱 GLM 已经通过 TaoToken 的 Anthropic 端点成功接入。4.2 用 curl 直接验证 DeepSeek把 settings.json 的ANTHROPIC_MODEL改成deepseek-chat重启终端。除了用claude交互测试也可以用 curl 直接打 Anthropic Messages 接口看原始返回curl -X POST https://taotoken.net/api/v1/messages \ -H Content-Type: application/json \ -H x-api-key: 你的TaoToken Key \ -H anthropic-version: 2023-06-01 \ -d { model: deepseek-chat, max_tokens: 256, messages: [ {role: user, content: 用一句话说明你是什么模型} ] }正常返回是一个 JSONcontent数组里包含模型回复文本model字段显示deepseek-chat。如果返回 401检查x-api-key是否正确如果返回 404 或 model not found检查model字段拼写。4.3 切换回智谱验证一键切换在 CC Switch 里点「智谱 GLM」条目点应用重启终端再跑一次claude。如果返回的模型名称变成 GLM-4.6说明一键切换生效。整个过程不需要手动改任何文件CC Switch 帮你写好了 settings.json。这里有个细节切换后一定要退出当前claude进程再重进。环境变量是进程启动时读取的在已运行的会话里改 settings.json 不会热生效。5. 常见报错排查401、local proxy failed 与 model not found配置过程中最容易撞上几个固定报错这一节按现象、原因、解决三列对照方便你快速定位。5.1 401 Unauthorized现象claude启动后发请求返回 401或者 curl 返回{error:{type:authentication_error}}。原因通常是三类Key 复制时带了空格或换行Key 已过期或被删除settings.json 里ANTHROPIC_AUTH_TOKEN字段名写错比如写成ANTHROPIC_API_KEYClaude Code 不认这个。解决去 TaoToken 控制台重新创建一个 Key复制时注意不要多选字符。确认 settings.json 里字段名是ANTHROPIC_AUTH_TOKEN不是ANTHROPIC_API_KEY。改完重启终端。5.2 local proxy failed 或 connection refused现象如果你之前用过本地 router 方案比如 claude-code-router切换后可能报local proxy failed或ECONNREFUSED 127.0.0.1:3456。原因settings.json 里的 Base URL 还指向本地 router 地址但 router 进程没启动。解决把ANTHROPIC_BASE_URL改成https://taotoken.net/api不再依赖本地代理。这样少一个进程要维护也少一个故障点。5.3 reading choices 报错或返回格式异常现象请求返回了内容但 Claude Code 解析时报reading choices或类似字段缺失错误。原因endpoint 返回的是 OpenAI 格式带choices数组而 Claude Code 期望 Anthropic 格式带content数组。这通常发生在 Base URL 指向了 OpenAI 兼容端点而非 Anthropic 兼容端点。解决确认ANTHROPIC_BASE_URL是https://taotoken.net/api这个入口走 Anthropic 协议。如果你用的是其他中转确认它提供的是/v1/messages而非/v1/chat/completions。5.4 OAuth 相关报错现象claude启动时提示 OAuth 登录或 token 刷新失败。原因之前登录过官方账号本地缓存了 OAuth 凭证和 settings.json 的环境变量冲突。解决退出 Claude Code删除~/.claude下的 OAuth 缓存文件通常是credentials.json或类似名称确保 settings.json 里只有env字段的环境变量配置。重启后应该直接走环境变量认证不再弹登录。5.5 模型名拼写对照表提供商正确 Model ID常见错误写法智谱 GLMglm-4.6glm4.6、GLM-4.6DeepSeekdeepseek-chatdeepseek、deepseek-v3DeepSeek 推理deepseek-reasonerdeepseek-r1Model ID 大小写敏感建议直接从文档复制。6. 接入文档与 Coding Plan把配置固化下来配置跑通之后建议把 settings.json 片段和 CC Switch 的提供商条目保存好换机器或重装系统时直接复用。TaoToken 的接入文档在https://taotoken.net/doc里面有 Anthropic 兼容接口的完整参数说明和示例请求遇到字段不确定时可以直接对照。如果你需要长期在 Claude Code 里跑编码任务或 Agent 工作流可以看一下 Coding Plan地址是https://taotoken.net/coding-plan。它适合那种每天都要用、调用量稳定的场景比按量计费更可控。模型对话的调试入口在https://taotoken.net/models想快速试某个模型返回效果时可以用。OpenCode 那边如果也要接同一套端点在项目根目录建opencode.jsonprovider 的baseURL填https://taotoken.net/api环境变量用TAOTOKEN_API_KEY模型名和 Claude Code 保持一致。这样两个终端共用一套 Key 和端点切换模型时只改 Model ID维护成本最低。最后提醒一句CC Switch 写入 settings.json 后如果同时开着 Claude Code 和 OpenCode记得两个都重启。OpenCode 读的是opencode.json不读~/.claude/settings.json所以它的模型切换要单独改配置文件或者用环境变量覆盖。把这两套配置都固化下来多模型切换才算真正顺手。