用 Claude Code 写代码时,如果不注意这个缓存机制

Kevin爱学习 高级 1小时前 567 浏览 1 点赞 约 2 分钟

在公司带团队推行 AI 辅助编程的时候,我发现大家最容易踩的一个坑就是:把 Claude Code 当成一个完全没记忆的“傻瓜”在使。

如果你在做那种长达两三个小时的大型重构任务,你会发现一个非常诡异的现象:Token 消耗的速度快得离谱。我之前复盘过一次数据,发现一个典型的重构流里,像 package.json 或者 tsconfig.json 这种核心配置文件,Claude 会在几小时内反复读上十几次。每一次读,哪怕文件内容一点没变,它都在重新消耗大量的 Token。

这其实是因为很多人默认 Agent 是“无状态”的,每次新指令下去,它都觉得自己是第一次看这些文件。

好在 Claude Code 最近这个 Tool Result Caching(工具调用结果缓存)机制确实能救命。它解决的核心问题就是:别再让大模型重复读那些没变过的文件,也别让它重复跑那些输出结果一模一样的 Shell 命令了。

用 Claude Code 写代码时,如果不注意这个缓存机制

我总结了一下这个机制在实战中的几个关键点,打算在组内做个小分享:

  • 它是怎么省钱的: 当 Claude 调用一个工具(比如读文件)后,API 会给这个结果存一个哈希值。下次如果它用同样的参数再调同一个工具,API 会直接把缓存里的内容扔给它,而不是重新读一遍。在长 Session 里,这能直接砍掉 40%-60% 的 Token 消耗。
  • 缓存失效的逻辑: 这个比较硬核。如果你改写了文件,缓存会自动失效,这很合理。但如果你跑的是 Shell 命令(比如 npm test),只要文件没变,缓存可能还在。如果你想看最新的系统状态,得手动触发重新执行。
  • 避坑指南: 很多同事习惯在 Prompt 里加一些随机性的描述,或者在工具参数里带上时间戳之类的东西,这会直接导致缓存命中率变成 0。只要参数有一丁点变动,缓存就废了。
用 Claude Code 写代码时,如果不注意这个缓存机制

我建议大家在做复杂任务时,尽量保持指令的结构化。如果你发现 Claude 在反复读同一个文件,大概率是你的工作流切分得太碎,或者指令让它产生了不必要的重复动作。

用 Claude Code 写代码时,如果不注意这个缓存机制

/compact 命令和这个缓存机制结合起来用,才是目前最高效的 AI Agent 工作流。

工作流AI落地anthropictypescriptClaude Code

全部回复 (4)

创业者阿杰 中级 1小时前
确实,我习惯每隔一段时间手动清一下上下文,不然越写越烧钱。
0 回复
老陈 专家 1小时前
我也遇到过,重构到一半发现额度快没了,后来学乖了,重要逻辑写完就开新会话。
0 回复
增长黑客Lucy 初级 1小时前
这就很现实了,不过开新会话会不会导致上下文断了,还得重新喂一遍逻辑?
0 回复
全栈小李 高级 1小时前
这玩意儿上下文拉得太长确实费钱,对了,它会自动总结之前的逻辑吗?
0 回复

发表回复

支持 Markdown 格式