🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
CC Switch 里的供应商条目可以有很多,真正决定 Claude Code 跑哪个模型的是「默认模型」那一栏。这次我把 TaoToken 加成默认供应商,把默认模型换成 GLM 5.3 Flash,再回头证明旧地址确实不再被请求。
CC Switch 这类工具的价值在于把「手改配置文件」变成「点一下按钮」。它管两头:Claude Code 读的 ~/.claude/settings.json,和 Codex 读的 ~/.codex/config.toml。很多人遇到的问题不是工具坏了,而是在界面上把新供应商点亮之后,Claude Code 还在打旧地址——环境变量、项目级的局部 settings、上一次没落盘的旧值,任何一个插队都会让界面上的「已激活」变成一句空话。所以这篇不打算只写怎么填,我要写填完怎么证。后面每一节都能单独拿去用:字段表可以照抄,差异表可以对着自己的文件核,验证请求可以直接复制到终端。
1. CC Switch 改的是哪几个文件:默认供应商的落点
Claude Code 启动时的配置读取分三层。第一层是 shell 里的环境变量,进程一起来就拿到手;第二层是用户目录下的 ~/.claude/settings.json,里面的 env 块会被读进来;第三层是项目目录里的 .claude/settings.local.json,局部覆盖全局。CC Switch 写的是中间那层,也就是用户级 settings.json。这个顺序直接决定了一个高频现象:你在 CC Switch 里切到了新供应商,列表高亮也对,但终端里如果之前 export 过 ANTHROPIC_BASE_URL,进程启动时拿到的还是那个旧值,文件里写的内容被静默盖住了,没有任何报错。判断方法很土但有效——开一个全新的终端窗口,先 echo $ANTHROPIC_BASE_URL,有输出就说明这一层优先级高于文件,得先把它清掉再谈切换。
Codex 那侧是完全另一套。~/.codex/config.toml 里用的是 model_provider、model,以及 [model_providers.xxx] 这样的段落结构,字段名和 Anthropic 那套没有任何重叠。把 ANTHROPIC_BASE_URL 塞进 Codex 的配置文件不会立刻报错,但它也不会生效,只会在你排查的时候多绕一圈,让你怀疑是不是网关有问题。CC Switch 把两套配置分屏管理,切 Claude Code 的时候不会动 Codex 的文件,这是它的优点;它的缺点是只负责写,不负责验证。「写进去了」和「真的生效了」是两件事,必须分开确认,中间隔着一次进程重启和一条真实请求。
还有一层容易被忽略:已经开着的 claude 进程不会重新读配置。你在 CC Switch 里点完切换,当前终端里的会话仍然用着启动那一刻拿到的值,直到你退出重进。这个细节听起来很基础,但在实际排查里它占了相当一部分「明明改了却没变」的案例。我的习惯是切完之后直接 Ctrl+D 退出,然后开一个全新窗口,把「当前生效的配置是什么」当成一次全新的实验来做,绝不复用上一个会话的状态,这样每一次观察都干净。
这次的目标状态需要说清楚:Claude Code 的默认供应商指向统一网关,请求地址是 https://taotoken.net/api,鉴权用一把从控制台创建的 Key,默认模型是 GLM 5.3 Flash 在模型广场里的那条模型 ID。达到这个状态之后,启动 Claude Code 不需要任何额外参数,直接敲 claude 就应该按这套配置走。我会用两个可观测信号来判断到底成没成:一是 settings.json 落盘之后文件里的真实内容,它证明配置写对了;二是一条真实请求返回的 HTTP 状态码和响应体里的 model 字段,它证明请求确实被送到了新地址、也确实由目标模型处理。
2. CC Switch 字段填写表:新增统一网关供应商与 GLM 5.3 Flash 默认模型
2.1 先拿 Key,再确认模型 ID
Key 的来源是控制台。打开 TaoToken 完成注册,进控制台的 API Keys 页面创建一个,创建完立刻复制走,因为页面刷新之后通常不会再完整显示。复制出来的这串东西先放到本地临时文件里,不要直接粘进任何聊天窗口或者 issue 里。CC Switch 写的是用户目录下的配置,这个位置相对安全,但如果你顺手也改了项目目录的 .claude/settings.local.json,记得检查一下那个目录的 .gitignore,别让 Key 跟着代码一起提交上去。
模型 ID 这一步别凭印象填。打开模型广场,找到 GLM 5.3 Flash 这一条,把它的模型标识原样复制下来。广场里的写法是唯一权威来源,别人博客里抄来的字符串、或者你记忆里的简写,都可能是错的。插件的配置项里出现一个不存在的模型 ID,通常不会在保存时报错,而是等到真正发请求的时候才以错误码的形式还给你,那时候你已经在怀疑是不是 Key 有问题了。先把这两个值准备好,再打开 CC Switch 的表单,整段流程会顺很多。
2.2 表单字段填写表
CC Switch 的「新增供应商」界面,不同版本里的字段标题会有一点差别,但核心就是四到五项。下面这张表按我这次填的内容写,可以对着抄:
| 表单字段 | 填什么 | 说明 |
|---|---|---|
| 供应商名称 | taotoken-glm-flash | 自己看得懂就行,会显示在左侧切换列表里 |
| 类型 / 协议 | Anthropic 兼容(Claude Code 用) | Codex 侧是独立的一套,别在同一个条目里混填 |
| Base URL / 请求地址 | https://taotoken.net/api | 末尾不要带 /v1,也不要带任何查询参数 |
| API Key / 令牌 | YOUR_API_KEY | 控制台创建的那把,填进去后界面一般只显示尾号 |
| 默认模型 / 模型 ID | GLM 5.3 Flash 在模型广场里的标识,以模型广场为准 | 不要手打缩写,直接复制粘贴 |
表格里最需要解释的是 Base URL 这一行。Claude Code 在发起对话请求时,会自己在 Base URL 后面拼接协议路径,所以你填的地址只需要到 /api 为止。多写一个 /v1,最终请求就会变成 /api/v1/v1/messages 这种形式,服务端找不到对应路由,返回 404,而你看到的界面一切正常。同理,这一行里不要塞任何查询字符串,配置项就是配置项,不是浏览器地址栏。
「类型 / 协议」这一行也值得单独说。Claude Code 走的是 Anthropic 风格的消息协议,Codex 走的是另一套,两者在 CC Switch 里应该是两个互相独立的供应商条目,各自有自己的 Base URL 和 Key。把它们写在同一个条目里,或者在 Codex 的条目里填 Anthropic 的字段名,结果都是配置看着有内容、跑起来没反应。这次的场景只涉及 Claude Code,所以 Codex 那边保持原样,一个字都不改。
2.3 保存后落盘的内容长什么样
点保存之后,CC Switch 会把表单内容写进 ~/.claude/settings.json 的 env 块。落盘之后大概是这样:
{
"env": {
"ANTHROPIC_BASE_URL": "https://taotoken.net/api",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "YOUR_MODEL_ID"
}
}
这里的 YOUR_MODEL_ID 就是你在模型广场里复制的那条 GLM 5.3 Flash 标识,以模型广场为准,我不会在文章里替你写死一个字符串。ANTHROPIC_AUTH_TOKEN 对应表单里的 API Key 字段,多数客户端会把它以 Authorization 头的方式发出去。
落盘之后建议立刻手动打开这个文件看一眼,而不是只在 CC Switch 界面里确认。原因很实际:如果你之前手改过这个文件、或者在别的地方写过同名键,合并的结果可能和你以为的不一样。看一眼真实的 JSON,比看界面上的回显可靠得多。看完顺手确认一下文件里没有再出现旧供应商的域名,这一步只要几秒,但能省掉后面很多来回。
3. 切换前后配置差异:settings.json 与 config.toml 逐字段对照
切换之前,~/.claude/settings.json 里多半是这样一套内容,域名和模型都指向你原来用的那家:
{
"env": {
"ANTHROPIC_BASE_URL": "https://旧供应商域名/v1",
"ANTHROPIC_AUTH_TOKEN": "OLD_KEY",
"ANTHROPIC_MODEL": "OLD_MODEL_ID"
}
}
切换之后,同样是这个文件,三个值都被换掉了:
{
"env": {
"ANTHROPIC_BASE_URL": "https://taotoken.net/api",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "YOUR_MODEL_ID"
}
}
光看两段 JSON 可能觉得「不就是换了三个字符串」,但真正需要逐项核对的是下面这张表。它把「变了什么」和「怎么确认」绑在一起,照着走一遍就不会漏:
| 观察点 | 切换前 | 切换后 | 怎么确认 |
|---|---|---|---|
| ANTHROPIC_BASE_URL | 旧域名,可能带 /v1 | https://taotoken.net/api | 直接打开 settings.json 看 |
| ANTHROPIC_AUTH_TOKEN | 旧 Key | 新 Key,界面只显示尾号 | 比对尾号,不要整串截图 |
| ANTHROPIC_MODEL | 旧模型 ID | GLM 5.3 Flash 的广场标识 | 和模型广场逐字符对照 |
| CC Switch 列表选中项 | 旧供应商条目 | taotoken-glm-flash | 看界面高亮 |
| 终端环境变量 | 可能残留 export | 应当为空 | echo $ANTHROPIC_BASE_URL |
| ~/.codex/config.toml | 原样 | 原样 | 本次任务不涉及,确认没被误改 |
第一个容易忽略的差异是路径尾巴。旧供应商的文档经常让你填带 /v1 的地址,新地址不带,这两套习惯混在一起最容易出 404。切换之后不要把旧的写法当模板,按新地址原样填。
第二个容易忽略的是字段名的选择。Anthropic 体系里既存在 ANTHROPIC_AUTH_TOKEN,也存在 ANTHROPIC_API_KEY 这种写法,两者发出去的请求头不一样,不同客户端版本的偏好也不同。CC Switch 表单里的「API Key」最终会映射到其中一个,你只要保证表单里填的是正确的那把 Key,映射到哪个键由工具决定。排查的时候如果一直 401,先别改 Key,先确认文件里最终写的是哪个键名,再对照客户端文档看请求头是哪一种。
第三个是周边变量。有些配置里还会顺手写一些小模型、快速模型相关的变量,键名随版本变化。这类变量不会影响主对话,但会影响后台的小任务。切换供应商之后,如果发现主对话已经走了新地址、某些辅助请求还在打旧域名,八成就是这里没同步。本次任务里我把这些边角变量一起清掉,只保留上面那三个键,逻辑最简单,排查也最快。
4. 一条最小请求验证:返回码与 model 字段是否等于 GLM 5.3 Flash
配置对不对,最终要靠一条真实请求说话。下面这条命令不依赖任何客户端,直接打消息接口,把状态码单独打出来:
curl -sS -w '\nHTTP_STATUS=%{http_code}\n' \
https://taotoken.net/api/v1/messages \
-H 'content-type: application/json' \
-H 'anthropic-version: 2023-06-01' \
-H 'authorization: Bearer YOUR_API_KEY' \
-d '{
"model": "YOUR_MODEL_ID",
"max_tokens": 32,
"messages": [{"role": "user", "content": "只回复两个字:已连通"}]
}'
注意请求地址是 https://taotoken.net/api 后面接协议路径,配置项里那个 Base URL 本身不要带 /v1,这一点在 curl 里体现得最清楚。如果你的客户端习惯用 x-api-key 头发送,把 authorization 那一行换成 -H 'x-api-key: YOUR_API_KEY' 即可,两者对应的是同一把 Key。
这条请求跑完,我在自己机器上看到的结果是 HTTP_STATUS=200,响应体里带一个 model 字段,回显的是本次实际服务的模型标识。你如果填的是模型广场里 GLM 5.3 Flash 那条 ID,这个字段应当和你填的完全一致;如果它回显的是别的东西,说明请求被路由到了别处,或者你请求体里的模型 ID 根本不是你以为的那一个。这是自测的一次运行,只说明这一条请求当时的返回情况,不构成任何榜单结论。本文不含排行分数。
再从客户端侧确认一次。切完供应商、重开终端之后:
claude -p "只回复两个字:已连通" --output-format json
返回的 JSON 里同样有 model 字段,把它和 curl 那条请求的结果、以及模型广场里的 ID 三者对齐。三个地方都一致,才叫「默认模型切过去了」。只让 CC Switch 界面显示已激活,不叫切换成功。
最后是我用来确认「不再走旧配置」的三证据法。第一,settings.json 里旧域名彻底消失,这是静态证据。第二,直接打 https://taotoken.net/api 的请求返回 200 且模型名正确,这是新通道可用的证据。第三,把终端里所有 ANTHROPIC_ 开头的环境变量清空,重开窗口再跑一次同样的命令,结果完全一致,这说明生效的是文件里的配置而不是残留的环境变量。三条都过,才算真正切完。
5. 切换没生效的排查:401、404 与旧环境变量残留
5.1 401:Key 的来源和发送方式对不上
401 出现时,第一件事不是重新生成 Key,而是确认你到底把哪把 Key 填进了表单。控制台里可能有多把 Key,名字相似,用久了很容易拿错。第二件事是看请求头:同一个网关可能同时接受 Authorization 和 x-api-key 两种写法,但客户端只发其中一种,你手工用另一种去测,就会得到「同一个 Key 一个 200 一个 401」的迷惑结果。第三件事是检查复制的字符串里有没有混进空格、换行或者不可见字符,从网页上双击选中再复制时最容易带上这些。按这个顺序走一遍,绝大多数 401 都能定位到具体原因。
5.2 404:Base URL 被写成了带 /v1 的形式
404 基本都是路径拼接问题。CC Switch 里填的地址是给客户端当基地址用的,客户端会在它后面接协议路径,所以配置里带 /v1 就会变成 /v1/v1/...。判断方法很直接:打开 settings.json 看那一行的结尾,是不是干净的 /api。另外注意不要在配置项里塞查询字符串,那不属于基地址的一部分。还有一种更隐蔽的情况,你把地址末尾多打了一个斜杠,某些客户端会因此拼出双斜杠,部分服务端会直接判定为不存在的路由。
5.3 模型名回落:改了模型但没落盘
界面里把默认模型改成了 GLM 5.3 Flash 的广场 ID,但请求返回的 model 字段却是另一个值,这通常是没保存或者没重新激活。CC Switch 的编辑和激活是两个动作,改完表单要点保存,保存完要在列表里选中这个供应商,最后还要让 Claude Code 重新启动一次进程。这三步里漏掉任何一步,文件里留下的都是旧值。确认方式还是打开 settings.json,看 ANTHROPIC_MODEL 到底是哪一个,文件不会骗人。
5.4 旧环境变量还在悄悄生效
在 shell 配置文件里 export 过 ANTHROPIC_BASE_URL 的人,切换供应商之后几乎一定会遇到一次「配置明明改了、请求还是打到旧地方」。环境变量的优先级高于用户级配置文件,进程启动时会优先采用它,且不会有任何提示。处理方式是把 shell 配置里那几行注释掉或者删掉,重新开一个终端,再 echo 一遍确认输出为空。也可以用 env | grep ANTHROPIC 一次看全,凡是列出来的都要处理。这一步做完,配置文件才真正说了算。
5.5 改错了文件:把 Anthropic 的变量塞进 Codex
最后一种是自己制造的混乱:为了让 Codex 也走同一个网关,把 ANTHROPIC_BASE_URL 之类的键直接写进 ~/.codex/config.toml。这套字段在 Codex 里没有对应关系,写进去既不会生效也不会报错,只会让两个工具的配置互相污染。正确做法是在 CC Switch 里给 Codex 单独建一个供应商条目,用它自己的字段名,各管各的。本次任务只动 Claude Code 那一侧,Codex 的配置文件从头到尾保持原样,这也是我能在排查时快速排除一半可能性的原因。
6. 同一把 Key 复现对照表与对账入口
如果想把这套切换过程变成一次可复现的对照,做法是固定变量:同一把 Key、同一个提问、同一台机器,在切换前后各跑一次第 4 节里那条 curl,把返回码和 model 字段记下来,写成两行。切换前那一行多半是非 200 的错误码,或者虽然 200 但 model 字段是旧模型;切换后那一行应该是 200 加上 GLM 5.3 Flash 的广场 ID。同时把两次运行时的 settings.json 内容也各存一份,这样「配置差异」和「请求结果差异」是一一对应的,别人拿你的记录能完整重放。这里要再说一次,这是一次运行的结果,不代表任何公开榜单,也不适合拿去和其他人比快慢。
跑完之后有两个地方值得顺手确认。一个是打开模型对话页面,核对广场里 GLM 5.3 Flash 那一条的标识和你配置里填的是不是同一个字符串,模型对话 里可以直接试一条请求,看返回的模型名和你在 Claude Code 里看到的是否一致。如果日常开发里要长期跑这套配置,可以看看 Coding Plan,把额度和调用量集中在一个地方管理,比每次切完再手动对账省事。
Key 的管理入口在 控制台,多建几把按用途分开,切换供应商时不容易拿错,出了问题也能单独吊销某一支。Claude Code 那三件套配置(请求地址、令牌、默认模型)的官方写法,对照 Claude Code 接入文档 里的示例核一遍,再回头看你 CC Switch 里落盘的内容,两边应当完全一致。最后如果你想把这次切换涉及的入口都过一遍,从 TaoToken 进去,把这次验证请求的调用记录在控制台里对上一次账,确认它确实落在你新建的那把 Key 上,整个闭环就算走完了。
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度




被折叠的 条评论
为什么被折叠?



