Claude Code偷偷把缓存缩水被抓包,用户成本暴涨

张开发
2026/4/15 11:07:29 15 分钟阅读

分享文章

Claude Code偷偷把缓存缩水被抓包,用户成本暴涨
有人翻了三个月的 Claude Code 日志发现 Anthropic 在 3 月初悄悄把一个关键参数从 1 小时砍到了 5 分钟。没有任何公告没有任何说明。结果就是同样的使用习惯配额消耗直接翻倍。很多人以为是自己用多了其实是被偷偷调了。先说你可能已经遇到了什么问题最近有没有觉得 Claude Code 的配额莫名其妙就用完了明明上个月同样的工作量还剩好多配额这个月才工作两个小时配额就见底了你不是一个人。GitHub 上有人发帖「Max 20 订阅轻量使用 2 小时配额全空」还有人说「配额 70 分钟就耗尽以前从来没遇到过」。这些帖子在 4 月初密集出现。直到有人挖出了原因——Anthropic 在 3 月初悄悄改了一个参数。事情是怎么被发现的4 月 13 日开发者 Daniel Nguyen 发了一条推文直接点名 Anthropic 在 3 月份悄悄修改了 Claude Code 的缓存有效期从 1 小时缩短到了 5 分钟。这条推文迅速引发了大量共鸣。评论区里有人愤怒、有人困惑、也有人一语中的也有人想出了歪招应对——每隔几分钟发一条回复 OK的消息强行续命先搞懂缓存是什么意思在讲数据之前先给不熟悉的朋友解释一下缓存是什么。你每次和 Claude Code 对话它都要把大量内容代码库、对话历史、系统提示等送进模型处理。这些内容动辄几十万个字符每次重新处理要花很多算力也要消耗你的配额。缓存的作用就是如果这次发送的内容和上次完全一样就不重新算了直接用上次的结果。这样既省时间也省你的配额。**缓存有效期TTL**就是这个上次结果能保存多久1 小时你工作了 45 分钟中断了一会儿回来继续——缓存还在继续省配额5 分钟你上了个厕所回来——缓存已过期Claude Code 要重新算一遍重新消耗你的配额对经常连续工作几小时的用户来说1 小时缓存和 5 分钟缓存的区别可以直接导致配额消耗量翻倍。有人翻了 12 万条 API 调用记录来证明这件事光说感觉不够有人用数据说话。GitHub 用户 seanGSISG 把两台机器、两个账号、从 1 月 11 日到 4 月 11 日的所有 Claude Code 日志全扒了出来共计119,866 次 API 调用。每次 API 响应里都藏着两个字段能直接显示用的是 5 分钟还是 1 小时缓存。他把数据按天整理得出了一个非常清晰的时间线阶段时间缓存情况第一阶段1月11日–1月31日几乎全是 5 分钟第二阶段2月1日–3月5日连续 33 天100% 1 小时缓存过渡期3月6–7日5 分钟开始重新出现第三阶段3月8日–4月11日5 分钟占到 80–93%最关键的是他用的是两台不同机器、不同账号但时间点完全一致。这直接排除了个人操作差异——问题一定出在 Anthropic 的服务端。推文里附的三张数据截图清楚显示了这个变化Anthropic 在 3 月初改了服务端缓存策略没有公告没有文档更新甚至没有在 Claude Code 的更新日志里提一句。用户的配额消耗悄悄涨了 20-32%很多人还以为是自己用多了。还有一个藏得更深的坑这是整件事里最让人无语的细节。如果你出于隐私考虑关掉了 Claude Code 的遥测功能telemetry off——这是很多开发者会做的选择——那你从头到尾都在用 5 分钟缓存连 1 小时缓存是什么感觉都没体验过。原因是Anthropic 的缓存优化是通过实验配置从服务端下发到客户端的。而关掉遥测之后Claude Code 就不联系服务器了只读取本地默认值。本地默认值就是 5 分钟。换句话说你保护了自己的隐私但因此损失了更好的缓存效果每次用 Claude Code 都要多花配额——而 Anthropic 从来没有在任何文档里告诉你这个权衡关系。不过也有少数用户反映他们的 1h 缓存依然正常。有人还用抓包工具 HTTP Toolkit 直接验证了这一点这说明 Anthropic 是在做灰度测试并非所有人都受到了影响——但大多数人被切换到了 5 分钟。Anthropic 的员工后来确认了这件事在 Daniel 发推前Claude Code 的 GitHub issue 里已经有人找 Anthropic 员工问过了。Daniel 后来也更新了推文Anthropic 员工 Jarred 确认确实有变更并表示这个调整应该让费用降低而不是增加。Claude Code 作者的官方回应在 Daniel 推文发出大约 14 小时后Claude Code 的作者 Boris Cherny 在 X 上做了一次详细回复。他的核心意思是“1 小时不一定比 5 分钟更省钱”1 小时缓存写入费用更贵需要保存更久但读取更便宜。如果你只发一条消息就关掉 Claude Code1 小时缓存的写入费用就白付了——用 5 分钟反而更省。只有连续工作几小时的重度用户1 小时才真的划算。“我们一直在做实验不是一刀切”Anthropic 在根据使用场景动态调整主流程用的主 agent 在部分场景已默认 1 小时子 agentsubagent保持 5 分钟因为子 agent 很少被长时间持续使用。“关遥测 用本地默认值 5 分钟”他确认了这个问题并表示即将把客户端本地默认值改为 1 小时同时会提供环境变量让用户手动强制指定缓存时长。“省钱幅度没有传言那么夸张”1 小时缓存能节省的 token“绝不是 12 倍”是小幅改善。技术层面上Boris 的解释是说得通的。但社区对这件事最大的不满并不是缓存策略本身而是第一这个调整是悄悄做的。没有公告没有文档更新没有 changelog。用户只能靠翻日志、看账单来发现异常。第二关遥测的代价从来没被告知过。这等于把隐私保护和成本优化变成了非此即彼的选择而用户压根不知道这回事。回复区里也有开发者提出了另一个视角——如果子 agent 从来不被恢复是不是产品本身的 bug 导致的他说的是Anthropic 说子 agent 很少被恢复所以给 5 分钟——但子 agent 无法被恢复可能本身就是一个没修好的 bug20 多个版本以来一直存在。用很少被恢复来合理化 5 分钟缓存逻辑上站不住脚。你现在能做什么1. 确认自己是否受影响找 Claude Code 的会话日志文件在~/.claude/projects/目录下macOS 在~/Library/Application Support/Claude/projects/找usage.cache_creation字段看里面ephemeral_5m_input_tokens和ephemeral_1h_input_tokens哪个更多。如果全是 5 分钟大概率是遥测被关了或者你还没进入 1 小时的实验组。2. 如果关了遥测短期内先开着Boris 说即将把客户端默认值改成 1 小时并支持环境变量手动控制。在官方修复落地之前如果你现在开着遥测至少有机会享受 1 小时缓存。3. 减少短时间内的大量独立请求把多个小任务合并成一次大请求让 Claude Code 在一次会话里处理更多事情能最大程度利用缓存——无论是 5 分钟还是 1 小时都适用。想和一群 AI 玩家一起交流实战经验在公众号对话框回复「小龙虾」加入龙虾养成群——一个专注 AI 工具提效、工作流搭建、自动化实操的交流社群。只聊 AI 实战干货一起玩转效率工具 参考链接GitHub Issue #46829缓存 TTL 回归分析https://github.com/anthropics/claude-code/issues/46829GitHub Issue #45381关遥测导致 5 分钟缓存https://github.com/anthropics/claude-code/issues/45381Boris Cherny 官方回复https://x.com/bcherny/status/2043715740080222549

更多文章