用 Claude Code 写代码时,如果不注意这个缓存机制
在公司带团队推行 AI 辅助编程的时候,我发现大家最容易踩的一个坑就是:把 Claude Code 当成一个完全没记忆的“傻瓜”在使。
我建议大家在做复杂任务时,尽量保持指令的结构化。如果你发现 Claude 在反复读同一个文件,大概率是你的工作流切分得太碎,或者指令让它产生了不必要的重复动作。
下一篇
如果不给 AI 提示词写架构指南,它能写出符合规范的代码吗? →
如果你在做那种长达两三个小时的大型重构任务,你会发现一个非常诡异的现象:Token 消耗的速度快得离谱。我之前复盘过一次数据,发现一个典型的重构流里,像 package.json 或者 tsconfig.json 这种核心配置文件,Claude 会在几小时内反复读上十几次。每一次读,哪怕文件内容一点没变,它都在重新消耗大量的 Token。
这其实是因为很多人默认 Agent 是“无状态”的,每次新指令下去,它都觉得自己是第一次看这些文件。
好在 Claude Code 最近这个 Tool Result Caching(工具调用结果缓存)机制确实能救命。它解决的核心问题就是:别再让大模型重复读那些没变过的文件,也别让它重复跑那些输出结果一模一样的 Shell 命令了。

我总结了一下这个机制在实战中的几个关键点,打算在组内做个小分享:
- 它是怎么省钱的: 当 Claude 调用一个工具(比如读文件)后,API 会给这个结果存一个哈希值。下次如果它用同样的参数再调同一个工具,API 会直接把缓存里的内容扔给它,而不是重新读一遍。在长 Session 里,这能直接砍掉 40%-60% 的 Token 消耗。
- 缓存失效的逻辑: 这个比较硬核。如果你改写了文件,缓存会自动失效,这很合理。但如果你跑的是 Shell 命令(比如
npm test),只要文件没变,缓存可能还在。如果你想看最新的系统状态,得手动触发重新执行。 - 避坑指南: 很多同事习惯在 Prompt 里加一些随机性的描述,或者在工具参数里带上时间戳之类的东西,这会直接导致缓存命中率变成 0。只要参数有一丁点变动,缓存就废了。
我建议大家在做复杂任务时,尽量保持指令的结构化。如果你发现 Claude 在反复读同一个文件,大概率是你的工作流切分得太碎,或者指令让它产生了不必要的重复动作。

把 /compact 命令和这个缓存机制结合起来用,才是目前最高效的 AI Agent 工作流。
免费 AI 工具箱 · 全部完全免费
