我用智谱的 Claude 兼容端点跑 Claude Code 大半年了(glm-5.1 / glm-5.2,便宜、国内直连、够用)。但最近有件事快把我逼疯:Claude Code 动不动就满屏 "API error",重试、重启、换网络,全都不管用。最折磨人的是它是"阵发型"——你正写到兴头上,突然就报错;过一会儿自己又好了。
网上搜一圈,答案清一色是这几样:
- 「网络问题,挂梯子 / 换 DNS」
- 「token 失效了,重新登录」
- 「额度用完了,充钱」
我把这三样全试了一遍。没有一个是对的。
这篇文章记录我怎么在一堆误导信息里,靠 grep 一条命令揪出真凶。如果你也在用第三方 Claude 兼容端点(智谱 / OpenRouter / 任何中转),大概率你会踩到同一个坑。
一、先把三个"嫌疑人"全排掉
排查这种问题最忌讳瞎猜。我先按"最小复现"的思路,把网传的三个原因逐一验证:
1. 网络?不是。
直接 curl 一下智谱端点,HTTP 200,响应飞快。网络层干干净净。
2. Token 失效?不是。 单独发一个最简单的请求过去,正常返回。凭证有效。
3. 额度用完?也不是。 查了一下 Coding Plan 余量,PRO 套餐额度还很充足。
这就尴尬了——网络正常、凭证有效、额度充足,但 Claude Code 就是不停报 API error。这说明问题根本不在这些"显眼"的地方。
二、一条 grep,真相大白
Claude Code 的报错信息只显示一个笼统的 "API error",把真正的错误码吞了。但完整的错误响应其实都躺在本地会话日志里。
我跑了一条命令:
grep -rh '1302' ~/.claude/projects/-Users-mac-claudeWorkspace/ | tail
结果让人一秒破案——历史里 11 条报错,100% 都是 1302,错误信息原文:
rate_limit_error/ code 1302:「您的账户已达到速率限制」
真凶是速率限制(Rate Limit)。 不是每分钟请求数(RPM)超了,就是每分钟 token 数(TPM)超了。
更关键的是时间分布:这 11 条报错全部集中在 6 月 23 号 10:48–11:23 这一段,其中 11:19 那一分钟内就触发了 6 次。明显是我当时在跑某个高并发的活儿,把限额瞬间撞爆了。
三、为什么用智谱会比官方更容易撞限?
这是这篇文章最想讲的一个认知差:
第三方 Claude 兼容端点的速率限制,普遍比 Anthropic 官方紧得多。 智谱端点的 RPM/TPM 上限给得比较保守,PRO 套餐默认还在 standard tier,特别容易撞顶。而 Anthropic 官方额度,限额宽松得多,基本不会触发。
所以同样一份 Claude Code 工作流,切到智谱端点后,架构上对"请求频率"的容忍度就降了一个量级。问题不是智谱"不好",而是它的限额水位和官方不在一个刻度上。
那问题来了:我只是正常写代码,怎么会把 RPM 撞爆?
四、揪出 4 个"请求放大器"
回头审视我的本机配置,发现我把 Claude Code 调得"太激进"了——有好几个功能,本质都是并发或轮次的放大器,放在官方端点没事,放在智谱端点就成了 1302 的帮凶:
放大器 1(最大元凶):CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
这个实验特性会让 Claude Code 并发 spawn 多个 subagent。并发一上来,RPM 直接翻倍甚至更多。这是我 1302 的头号贡献者。
放大器 2:一堆 GSD hooks
我装了 GSD(GSD Core)工作流,它在 PreToolUse / PostToolUse / Stop 钩子上挂了 10+ 个脚本。每次工具调用前后都会触发额外处理,无形中增加了工具轮次,模型请求跟着变多。
放大器 3:dynamic-model-selector + 自动切模型
我装了个动态模型选择器,它会在不同任务间自动切模型(比如切到 glm-4.5-air)。每次切换都会多发探测请求,又一层放大。
放大器 4:工具调用本身密集
Claude Code 是 agent loop,每次工具结果回来都要触发一次模型请求。一通密集操作下,RPM 很容易在某一分钟冲破限额。
这四个加在一起,把我推过了智谱的速率红线。
五、解决方案:立竿见影三步
知道是限速,处理就简单了:
# 1. 关掉最大元凶(在 settings.json 里删掉或置 0)
# CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=0
# 2. 降并发:少用 Task / Agent / /loop 这类会 fan-out 的功能
# 3. 撞限了别连击!等 30–60 秒再试,否则会被限得更狠
根治只有一条路:找智谱提额 / 升 tier。在那之前,关掉 EXPERIMENTAL_AGENT_TEAMS 是性价比最高的一招——对我而言,关掉之后 1302 基本消失了。
六、顺手做个优化:状态栏监控余量
既然限速是常态,我就顺手把"智谱 Coding Plan 剩余额度"接到了 Claude Code 状态栏里,一眼就能看到 PRO 周额度、5 小时限额还剩多少,提前收手。
大意是写个 wrapper 包在 GSD 状态栏外层:缓存过期(>2 分钟)时后台刷新用量,再把"PRO 周余 XX% | 5h 余 XX%"追加到状态栏末尾。好处是不阻塞渲染,也不动 GSD 自己的状态栏脚本(免得 /gsd-update 覆盖)。
有个小坑值得提:第三方有人说智谱的 monitor/usage/quota/limit 接口"不支持 API Key",这是误传——用 ANTHROPIC_AUTH_TOKEN 走 Bearer 实测是能拿到数据的。
七、方法论沉淀
这篇其实不只是讲一个 bug。我想留给读者一个可复用的排查套路:遇到 Claude Code 频繁 API error,别再凭感觉猜网络和额度了。先跑这条命令:
grep -rh '1302' ~/.claude/projects/<你的项目目录>/ | tail
如果命中 1302,那就是限速;把请求放大器挨个关掉,尤其是 EXPERIMENTAL_AGENT_TEAMS。一条命令,顶你瞎折腾一下午。
最后一句安全提醒:
settings.json里的ANTHROPIC_AUTH_TOKEN是明文存的。写文、截图、提 issue 时千万记得打码,别把 token 顺手泄了。