🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
CC Switch 的供应商列表里现在多了一行:GLM 5.3 Flash,接的是 TaoToken 的兼容通道。加这一行的动机很具体。Claude Code 跑一个中等难度的任务,请求数量的大头往往不是「想大问题」的那几次,而是读一段文件、改一个小函数、给子任务写摘要、生成一句提交信息这类短会话。这些活交给主力模型,等待时间被拉长,按量计费的账单也不好看。Flash 档的模型更适合兜住这类高频短请求,剩下的问题只有一个:怎么让它老老实实出现在 Claude Code 的供应商列表里,并且切换一次就能验证通不通。
这篇记录的就是这套动作。在 CC Switch 里新增一个自定义供应商,Base URL 填 https://taotoken.net/api,Key 用官网创建的那把,模型指向 GLM 5.3 Flash,切过去之后用一条 claude -p 跑通,把终端里的原始输出贴出来。全文不含任何排行榜分数,也没有本地跑分表,只有一次真实的配置动作和一次真实的调用。文中出现的每个值你都可以照着抄,唯一需要你自己去取的是模型 ID,因为模型广场上的标识会随版本调整,我不会按记忆替你写死。
1. CC Switch 的供应商列表改的是哪三个变量
CC Switch 做的事情其实很朴素,它把 Claude Code 的供应商配置,从「手改文件」变成「一份可以点的列表」。Claude Code 认的三个环境变量是 ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL,CC Switch 里每一条供应商记录,本质就是这三个值的一组快照。点切换的时候,它把这组值写进 ~/.claude/settings.json 的 env 段,Claude Code 下次启动就按新的值发请求。它不是代理,不碰请求体,不改协议,也不做流量转发,只是配置的搬运工。理解这一点很重要,因为后面排查问题时,你要看的始终是「文件里现在是什么」,而不是「插件界面显示了什么」。
如果你不想装插件,手改是一样的写法:
{
"env": {
"ANTHROPIC_BASE_URL": "https://taotoken.net/api",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "模型广场上 GLM 5.3 Flash 对应的模型 ID"
}
}
这三个值里有几处容易写错。Base URL 是 https://taotoken.net/api,末尾不带 /v1,也不带斜杠,写成 https://taotoken.net/api/v1 会直接吃 404,这是最高频的一处错误。ANTHROPIC_AUTH_TOKEN 直接填 Key 原文,不要自己加 Bearer 前缀,认证头由 Claude Code 自己拼。ANTHROPIC_MODEL 决定默认模型,值必须从模型广场上复制,不要凭着记忆敲一个看着像的名字,模型标识写错的报错信息往往含糊,会让人误以为是网络问题。
那为什么值得为 Flash 单独开一行,而不是在会话里用 /model 换?因为切换的粒度不同。Claude Code 的 /model 换的是同一套端点、同一把 Key 下面的模型标识;供应商这一层(地址 + 凭据)是换不掉的。想让两条通道同时在线,比如主力模型走一条、Flash 走另一条,或者在两条通道之间做行为对比,最省事的做法就是在 CC Switch 里存两条记录,点一下切换,不用每次去改 JSON 再重启终端。我日常就保留两条:一条默认,一条 Flash。长任务、需要连续推理的用默认那条;批量小改动、整理日志、写提交信息这类用 Flash 那条,切过去只要一秒。
还有一个隐性收益是可回滚。临时把配置改乱,只要点回原来那条记录,settings.json 就被覆盖回已知可用的状态,不用去翻备份文件,也不用回忆上次改的是哪一行。对经常在多个通道之间来回测试的人来说,这个收益比「少打几个字」大得多。Claude Code 的配置文件在 macOS 和 Linux 上是 ~/.claude/settings.json,Windows 上是 C:\Users<你的用户名>.claude\settings.json,CC Switch 的落点就是它。你如果同时用着别的工具改这个文件,记住一句话:谁最后写,谁生效。
1.1 供应商列表长什么样
列表本身没有神秘之处,就是若干条记录加一个当前标记。截图里的顺序是这样的:
供应商列表(截图摘录)
● 默认通道(原配置) 端点保持原样 模型:原默认模型 [非当前]
● TaoToken-GLM https://taotoken.net/api 模型:GLM 5.3 Flash [当前]
○ 本地测试 http://127.0.0.1:xxxx 模型:本机模型 [非当前]
带点的这一条就是切换生效后的状态。注意记录名和模型名是两回事:记录名只是给你自己看的标签,模型名才是真正写进 ANTHROPIC_MODEL 的值。我见过有人把记录名写成模型名,结果切过去发现请求还是打到旧模型上,因为真正决定模型的是字段值,不是列表上那行文字。列表只是个索引,值在配置文件里。
2. 新增供应商表单:Base URL、Key 与 GLM 5.3 Flash
点开新增供应商之后,表单字段不多,但每个都得填对。下面这张表是我新增时那张表单截图里的字段,按界面上的显示顺序抄下来,字段名不同版本可能略有差异,认含义就行。
| 表单字段 | 我填的值 | 说明 |
|---|---|---|
| 名称 | TaoToken-GLM | 只影响列表显示,方便自己认 |
| API 地址 / Base URL | https://taotoken.net/api | 末尾不带 /v1,不带斜杠 |
| API Key | YOUR_API_KEY | 从官网控制台创建后整串粘贴 |
| 模型 / Model | GLM 5.3 Flash 对应的模型 ID | 以模型广场为准,复制粘贴 |
| 备注(可选) | Flash 档,跑短会话 | 给自己留个提示 |
Key 的创建路径是先去 官网 控制台建一把,建的时候给个能认出来的名字,比如 cc-switch-glm,这样以后在用量页看到调用记录时,能一眼分清是哪台机器、哪个工具在用。粘 Key 之前扫一眼首尾有没有多余空格,从聊天窗口或截图里复制 Key 时特别容易带进不可见字符,而这类错误的表现就是 401,看上去像是 Key 无效,实际上是多了个空格。
模型字段是这张表单里唯一不能凭印象填的。Claude Code 会把 ANTHROPIC_MODEL 原样带进请求,模型标识写错,返回的报错可能是「模型不存在」,也可能是一段不太友好的错误文本,浪费你半小时在网络上找原因。正确做法是打开模型广场,找到 GLM 5.3 Flash 那条,把它旁边的标识完整复制到表单里。模型广场上同一个模型家族可能同时挂着几个不同档位的条目,名字很像,复制的时候慢一点,别选到隔壁那条。
保存之后会出现第二条记录,回到列表界面再截一张,确认它排在默认通道下面,且没有被系统标成「无效」。这个无效标记通常来自两个原因:Base URL 格式不对,或者 Key 为空。CC Switch 一般不会主动替你发请求校验 Key 是否可用,所以列表显示正常只代表字段填全了,不代表这条通道真的能通。真正能不能通,必须靠发一次请求来证明,这也是下一节要干的事。
表单保存后还有一个细节值得确认:它到底写没写进 settings.json。有人会遇到界面显示已切换、但命令行里还是走旧通道的情况,原因常见于两条记录指向同一个配置文件位置,而工具在写入时被其他进程打断。养成一个习惯,切完之后用编辑器打开 ~/.claude/settings.json 看三行值,眼见为实,比在界面上反复点切换要快得多。这三行就是 ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL,对上就说明写进去了。
3. 切到 GLM 5.3 Flash 后,claude -p 的原始输出
切换动作在 CC Switch 里点一下,但只对「之后启动的会话」有意义。Claude Code 在启动时读取环境配置,已经在跑的终端会话不会因为文件变了就换通道。所以切完之后,我关掉旧窗口,新开一个终端,先确认命令还在,再发请求。
第一次调用我刻意没有让它动手,因为 Claude Code 是有工具权限的,我不想让它在真实工作目录里乱翻。提示词里明确要求它只输出命令、不要执行:
$ claude -p "只输出一条 shell 命令,不要执行:把 /tmp/demo 目录下所有 .log 文件的最后 20 行,按文件名分组追加写入 /tmp/demo/summary.txt"
终端里的原始输出是这样的:
find /tmp/demo -maxdepth 1 -type f -name '*.log' -print0 \
| sort -z \
| while IFS= read -r -d '' f; do \
printf '===== %s =====\n' "$f"; \
tail -n 20 "$f"; \
done > /tmp/demo/summary.txt
它给了一条可以直接跑的命令,没有自作主张去执行。这里有个我坚持的原则:AI 工具不直接连我的生产目录或生产机执行操作。它只产出命令或者解释,命令由我在本地跑,跑完的结果再贴回对话。这样责任边界清楚,出了事我知道是谁干的,也知道改了哪一行。很多人用 Agent 类工具时追求「全自动」,但在真实项目里,把执行权交出去之前,至少要保证每一步都看得见、可回滚。
接下来我把这条命令在本机执行,然后把结果的头几行贴回对话,让模型判断是否符合预期:
$ head -n 6 /tmp/demo/summary.txt
===== /tmp/demo/api.log =====
[10:02:11] request accepted
[10:02:11] upstream responded 200
[10:02:12] request accepted
[10:02:12] upstream responded 200
[10:02:13] cache hit
第二次调用是这样发的:
$ claude -p "下面是我本地执行脚本后的输出片段,判断它是否符合我原始需求,并指出一个可能的风险点:===== api.log ===== [10:02:11] request accepted ...(后略)"
它给出的回答大意是:需求是「每个文件分组、各取最后 20 行」,而 log 缓冲区本身保留了时间戳和层级,符合预期;风险点在于 sort -z 会把文件名按字典序排列,如果希望按文件修改时间排序,需要改成 ls -t 或者给 find 加 -newer 的比较逻辑。这段回答里没有出现任何工具调用,纯文本输出,说明这一轮链路是通的:Claude Code 拿到了模型回复,模型也读到了我贴回去的本地结果。
这一轮从回车到出完,我在本机看大概几秒,只跑了一次,不做任何统计意义上的结论,也不代表任何榜单上的表现。它证明的事情只有一件:CC Switch 切过去之后,Claude Code 确实是用新通道把请求发出去的,并且拿到了正常回复。
4. 这次接入有没有真的生效:三处对账
一次成功的命令输出,只能说明「能用」,不能说明「一切如你所想」。做接入的时候,我习惯对三处,对上了才算真的落地。这三处是 CC Switch 界面、本地配置文件、以及服务端用量记录。任何一处对不上,都说明中间有东西被覆盖或者被缓存了。
| 检查点 | 看什么 | 期望结果 |
|---|---|---|
| CC Switch 列表 | 当前标记在哪一行 | 标记在新增的那行,模型字段是 GLM 5.3 Flash |
| ~/.claude/settings.json | env 段三行值 | Base URL 是 https://taotoken.net/api,Key 与模型 ID 与表单一致 |
| 用量 / 调用记录页 | 最近一次请求 | 时间、模型名、调用条数能对上刚才那次 claude -p |
第二处最容易出问题。有些用户在同一台机器上装了多个终端工具,其中某个在启动时会往 shell profile 里 export ANTHROPIC_* 变量,而环境变量的优先级高于配置文件,结果就是配置文件写着新通道,请求却走了旧端点,表现是「切换后毫无变化」。排查方式很简单:在新终端里打印一下这三个变量,如果 shell 里有值,说明它盖住了配置文件。要么清掉这几行 export,要么接受这个优先级,在 shell 层面切换。
第三处是很多人忽略的。回控制台看一眼调用记录,确认刚才那次请求有没有入账、模型名对不对、条数是不是多了一条。这一步的价值不只是对账,还能帮你确认 Key 有没有被别的工具复用。如果你在同一把 Key 下面看到不属于本次测试的调用,说明这把 Key 在别的机器或别的工具上还有人在用,该拆开就拆开。对个人开发者来说这没什么,多人协作或者要开票的场景下,按用途拆 Key 是基本的账目卫生。
对账做完,如果你还想第二次确认,可以把同一把 Key、同一个提示词再跑一次,然后把两次输出摆在一起看。我这里没有做这种重复运行,所以不给你对照表,也不写任何耗时对比数字。一次运行说明链路通,N 次运行才谈得上稳定性,两件事不要混着说。
5. CC Switch 切 Flash 会踩的坑
接入环节最容易出错的四类问题,基本都集中在切换之后的那几分钟。我把它们按出现频率排了一下,遇到问题从上往下查,比漫无目的地翻日志快。
第一类是 401。表现是命令发出后立刻返回未授权。原因通常两个:Key 粘贴时带了空格或换行,或者用了别处复制的 Key 而那个 Key 已经被删。判断方法很直接,重新从控制台复制一次,保证首尾干净。顺带说一句,ANTHROPIC_AUTH_TOKEN 不要再自己包一层 Bearer,Claude Code 会自己加认证头,你手写的 Bearer 反而会让凭据变成非法格式。
第二类是 404。十有八九是 Base URL 写成了 https://taotoken.net/api/v1,多出来的 /v1 让路径对不上。这个错误在某些实现里会伪装成「模型不存在」,让人往模型名字上找原因。记住一条:Base URL 就是 https://taotoken.net/api,末尾什么都不加。凡是把 API 根地址写成带版本号的,都属于常见的历史习惯残留,Claude Code 这条路不需要。
第三类是模型标识写错。模型广场上的条目会更新,你一个月前抄下来的名字,今天可能已经不是同一个字串。每次重新配置前花十秒去广场确认一次,成本很低。不要在配置里写「大概叫这个」的名字,也不要把记录名当成模型 ID 用,这是两个不同的字段。
第四类是切换不生效。前面提过,Claude Code 在启动时读配置,已经在跑的会话不会中途换通道。切完之后关掉旧终端、新开一个,是最省事的验证方式。如果新开的终端仍然走旧通道,再去查 shell 里的环境变量覆盖问题,以及 CC Switch 与手动编辑是否在互相覆盖。手动改完 settings.json 之后,如果 CC Switch 还开着并且它内部保存了一份旧的记录,下次点切换会把你的手改内容盖掉,这一点在多个工具并用时特别容易迷惑人。
5.1 一张排查顺序表
| 现象 | 先查 | 再查 |
|---|---|---|
| 命令立刻失败,提示未授权 | Key 首尾是否有空白 | Key 是否被删除或属于别的项目 |
| 提示找不到路径 / 模型不存在 | Base URL 是否多了 /v1 或斜杠 | 模型 ID 是否从模型广场重新复制 |
| 切换后毫无变化 | 是否新开了终端 | shell 里是否 export 了同名变量 |
| 偶尔通、偶尔失败 | 是否同一把 Key 被多处复用 | 配置是否被其他工具回写 |
这张表里没有「网络」这一行,因为这类问题绝大多数是配置问题,先把自己的三行值确认干净,再谈别的。
6. 复现清单与下一步
按顺序做一遍,大概十分钟能跑完,不需要改任何别的设置。
- 在控制台创建一把新 Key,命名里带上用途,比如 cc-switch-glm。
- 打开 CC Switch,新增供应商,名称随意,Base URL 填 https://taotoken.net/api。
- 把 Key 整串粘贴到凭据字段,检查首尾没有空格。
- 去模型广场复制 GLM 5.3 Flash 对应的模型 ID,粘到模型字段。
- 保存并切换,确认列表里当前标记落在新记录上。
- 关掉旧终端,新开一个,确认 ~/.claude/settings.json 的 env 段三行值正确。
- 发一条 claude -p,先让它只输出命令不执行,把命令在本地跑一遍,再把结果贴回对话。
- 回控制台看调用记录,确认这次请求入账、模型名正确。
做完这八步,你手上就有一条可复现的路径:同一把 Key、同一个提示词、同一份配置,换台机器也能照着抄出来。下次想比较别的 Flash 档模型,不用改配置文件,在 CC Switch 里再加一行就行,切换成本几乎为零。
对账这一步做完,如果你想照着做一遍,先去 模型对话 看一眼 GLM 5.3 Flash 当前的模型 ID,再决定表单里填什么;长期挂着 Claude Code 的话,Coding Plan 比按量更适合天天开着的场景;Key 在 创建 Key 里建,Claude Code 的三件套对照 接入文档 抄,价格与额度以 TaoToken 页面展示为准。建完新 Key,把这篇的第八步再走一遍,看看这次调用有没有进账,对照表和你的实际记录就此对齐。
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度




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



