Claude Code被扒出7个缓存Bug,死亡螺旋让账单暴涨10倍

0 阅读9分钟

最近你有没有遇到过这种情况?
Claude Code用着用着,API账单突然暴涨了好几倍。
你还以为是自己的项目太大、代码太复杂。
结果发现,不是你用多了,是它偷偷多收了。

最近Claude Code爆出了一个缓存Bug事件。
不是一个Bug,是7个Bug叠在一起。
社区里有人管它叫"死亡螺旋"。

老金我花了大半天研究这件事,把来龙去脉给你们捋清楚。

先给你讲原因,文末告你咋修复。

事情是怎么被发现的

这件事的起点,说起来挺戏剧的。

3月31日,Claude Code发了一个npm包更新。
结果打包的时候,忘了去掉 source map。
source map就是源码映射文件,能把压缩后的代码还原成原始代码。

这一漏,直接把Claude Code的完整源码暴露了。
51.2万行代码,全裸上网。

Image

按理说这是个安全事故。
但社区里有位开发者叫 Kir Shatrov,他没闲着。
直接把源码下载下来,反向分析了Claude Code的缓存机制。

详情可以看这里:github.com/anthropics/…

Image

结果发现了7个缓存相关的Bug。
不是小Bug,是每个都能让token消耗翻倍的那种。

7个Bug分别是什么

老金我逐个给你们拆解。
先说结论:这7个Bug不是独立存在的,它们会互相叠加。

Bug 1:哨兵替换导致缓存全部失效
Claude Code每次调用API时,会在系统提示里插入一个哨兵值。
这个值每次都不一样。
问题是,缓存机制是拿整个系统提示做key的。
哨兵一变,整个缓存就废了。

简单说就是:你以为上次的对话被缓存了,下次不用重复计费。
实际上因为哨兵变了,所有内容都得重新发送、重新计费。

Bug 2:计费关键词触发缓存失效
Claude Code在系统提示里会动态插入跟计费相关的关键词。
比如"usage"、"billing"这些词。
每插入一次,缓存key就变了。
又是一次全量重发。

Bug 3:resume参数直接绕过缓存
用 --resume(恢复上次会话的参数)的时候,Claude Code不走缓存。
直接把所有内容当新请求发出去。
这个参数很多人日常在用,完全不知道背后的代价。

Bug 4:Extra Usage模式把缓存寿命砍到5分钟
这个是最狠的一个。

正常情况下,Anthropic的缓存有效期是 1小时。
但一旦触发 Extra Usage(额外用量模式,用量超过订阅上限),缓存有效期直接从1小时降到 5分钟。

5分钟什么概念?
你写个代码,喝口水回来,缓存已经过期了。
一切从头计费。

Bug 5:MCP服务器导致缓存碎片化
MCP(模型上下文协议,让Claude Code连接外部工具的接口)每多一个服务器,缓存就多一层碎片。
你装了3个MCP服务器,缓存命中率可能直接掉一半。

Bug 6:插件状态变化使缓存失效
插件的状态每次变化(启用、禁用、配置更新),都会让相关缓存全部作废。
你折腾了一下插件设置,恭喜,之前的缓存白存了。

Bug 7:Auto模式的信任边界问题
Auto模式(自动执行模式,不用你一步步确认)在处理信任边界时,会频繁重建上下文。
每次重建,缓存都得重来。

死亡螺旋:7个Bug怎么叠出10倍账单

单个Bug已经够烦了。
但这7个Bug真正可怕的地方在于,它们会形成 正反馈循环。

Reddit上有位开发者画了这个循环:
缓存失效 → token暴增 → 触发Extra Usage→ 缓存寿命变5分钟 → 更多缓存过期→ token继续暴增 → 循环往复...

这就是所谓的 死亡螺旋。

正常情况下,Claude Code的缓存命中率应该在 97-99%。
也就是说,大部分重复内容都不用重新计费。

但Bug叠加后,缓存命中率直接掉到 4-17%。
相当于你每发10次请求,只有不到2次命中了缓存。
剩下8次都是全量重发。

有用户报告说,一个简单的"Hello"请求,就消耗了月配额的 13%。

不是写代码,不是说复杂需求。
就是打了个"Hello"。

实际影响到底有多大

老金我整理了几个社区里的真实反馈。

Reddit用户 u/Interesting_Map_8635 发帖说,他3月份的API账单从预期的50美元涨到了 500多美元。
翻了10倍。
他用了 --resume,装了2个MCP服务器,还开了Auto模式。
完美踩中了Bug 3、5、7。

另一位用户在GitHub Issue里贴了自己的使用数据。
缓存命中率从正常的98%降到了 12%。
token消耗从日均3万涨到了 45万。

还有个小团队,3个人用Claude Code开发。
月账单从200美元直接飙到 3800美元。
差点把项目预算干爆。

如果对你有帮助,记得关注一波~

Anthropic怎么回应的

4月1日,Anthropic官方在社区里回应了。

原话大意是:承认计费存在异常,已经把这个问题列为 最高优先级,正在全力排查。

然后陆续发布了几个修复。

目前的状态:
已修复(3个)—— 哨兵替换问题、计费关键词问题、部分缓存碎片化问题
可规避(2个)—— resume绕过缓存、MCP碎片化(减少MCP服务器数量可缓解)
仍未修复(2个)—— Extra Usage的5分钟缓存限制、Auto模式信任边界问题

也就是说,截至老金我写这篇文章的时候,还有2个Bug没修好。

怎么判断自己有没有中招

如果你也在用Claude Code的API,建议立刻查一下。

第一步:看API Usage面板
登录Anthropic的控制台,找到API Usage(使用量)页面。
看最近30天的token消耗趋势。
如果有突然的飙升,而且你确定自己的使用习惯没变,大概率中招了。

第二步:看cache_read_rate指标
这个指标在你的API日志里能找到。
正常值应该在 90%以上。
如果持续低于50%,说明缓存大面积失效。

第三步:对比账单和实际使用量
如果账单涨幅远超使用量涨幅,差异部分很可能就是缓存Bug多收的。

暂时怎么规避

在官方全部修好之前,老金我总结了几个临时方案。

减少使用 --resume
这个参数会完全绕过缓存。
如果只是短暂休息后继续,不如开个新会话,手动把关键上下文粘贴进去。
看起来麻烦,但能省不少token费。

控制MCP服务器数量
每多一个MCP服务器,缓存碎片化就严重一层。
只保留真正在用的,不用的先关掉。

谨慎开启Auto模式
Auto模式目前还有信任边界的Bug没修好。
如果不是必须全自动,用手动确认模式更安全。

临时解决方案
安装第三方修复项目(本产品不提供任何形式的担保)
需要 Node.js >= 18 和通过 npm 安装的 Claude Code,安装说明看下方地址中的说明就好。
github.com/cnighswonge…

老金我的看法

说几个心里话。

第一,源码泄露这事挺离谱的。
一个估值几百亿美元的公司,npm打包忘了去source map。
51万行源码裸奔。
这种低级失误,不太应该出现在Anthropic身上。

第二,7个Bug叠在一起才被发现,说明测试不够。
缓存是API计费的核心机制。
围绕缓存做充分的边界测试,这是基本功。
不是社区开发者反向工程,这些问题可能还要坑更多人更久。

第三,Anthropic的回应速度还行,但不够透明。
承认问题很快,但修复进度不够清晰。
哪些Bug修了,哪些没修,用户需要自己翻Discord和GitHub才能拼凑出全貌。
对于直接影响用户钱袋子的Bug,应该有更清晰的公告。

第四,这件事暴露了AI工具的一个普遍问题。
API计费对普通用户来说是个黑盒。
你以为缓存帮你省了钱,实际上缓存根本没生效。
你以为是自己的使用量增加了,实际上是系统Bug在偷偷吃你的配额。

这种信息不对称,不是Anthropic一家的问题。
整个AI行业都需要在计费透明度上做得更好。

最后

说到底,Claude Code还是目前老金我用得最顺手的AI编程工具。
这个问题不会让我换工具。

但该追的责得追,该要的透明度得要。

用户信任你,把代码和数据都交给你处理。
你至少得保证,收钱的时候是干净的。

如果你也在用Claude Code,赶紧查查自己的账单。
有问题的话,去GitHub Issue和Discord反馈。
声音越大,修复越快。

有问题随时交流。


飞书*开源知识库(实时更新 交流群):
https://tffyvtlai4.feishu.cn/wiki/OhQ8wqntFihcI1kWVDlcNdpznFf

Claude Code & Openclaw 双顶流全中文从零开始的教程:不懂代码照样造网站,老金15万字Claude Code+OpenClaw教程免费开源

我的小破站(含我开源的项目):https://www.aiking.dev/


每次我都想提醒一下,这不是凡尔赛,是希望有想法的人勇敢冲。
我不会代码,我英语也不好,但是我做出来了很多东西。
我真心希望能影响更多的人来尝试新的技巧,迎接新的时代。

谢谢你读我的文章。
如果觉得不错,随手点个赞、在看、转发三连吧🙂
如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章。