深度

Claude Code Prompt Caching 深度解析:如何让每次调用更快更省钱

深入解析 Claude Code Prompt Caching 的工作原理:前缀精确匹配机制、系统提示词/项目上下文/对话三层结构,以及哪些操作会破坏缓存导致成本飙升。附长会话和后台代理场景下的实用降本建议。

2026/7/64分钟 阅读ClaudeEagle

Prompt Caching(提示缓存)是 Claude Code 速度和成本控制的核心机制。理解它的工作原理,能帮你避免无意间让缓存频繁失效、白白多花 Token 预算。

为什么需要 Prompt Caching

Claude 模型在两次 API 请求之间不会「记住」任何东西。这意味着每次你在 Claude Code 中发一条消息,它都要把完整上下文重新发一遍:系统提示词、项目上下文、之前所有的消息和工具结果,加上你的新消息。

由于新内容总是追加在末尾,每次请求的绝大部分内容和上一次是一样的——Prompt Caching 正是用来避免重复处理这部分未变化内容的机制。

缓存的组织方式:前缀匹配

API 通过匹配每个请求的**开头部分(前缀)**与最近处理过的内容来实现缓存。在正常的一轮对话中,前缀就是上一次的完整请求,只有最新的一次问答是新内容。

关键点:匹配是精确匹配。前缀中任何位置发生变化,都会导致该位置之后的全部内容重新计算——没有按文件或按片段的细粒度缓存

请求的三层结构

为了最大化前缀匹配的命中率,Claude Code 把内容按「变化频率」从低到高排列:

层级内容何时变化
系统提示词核心指令、工具定义、输出风格加载的工具定义变化,或 Claude Code 升级
项目上下文CLAUDE.md、自动记忆、未限定范围的规则会话开始时,或执行 /clear/compact 之后
对话内容你的消息、Claude 的回复、工具结果每一轮都会变化

这个分层设计的意义:对话层的变化不会影响系统提示词和项目上下文层的缓存;但系统提示词层的变化会让后面所有内容的缓存失效,因为后续内容现在处于一个不同的前缀之后。

哪些操作不会破坏缓存

Plan ModeSkill 加载的指令是作为对话消息追加的,因此缓存的前缀保持完整,不会失效。

# 这些操作 —— 缓存友好 ✅ > /plan 进入 Plan Mode 分析代码 > /some-skill 加载一个 Skill # 都以对话消息形式追加,前缀缓存不受影响

哪些操作会破坏缓存

根据分层原理,以下操作通常会让缓存失效并触发重建:

# 这些操作 —— 会使缓存失效 ⚠️ /clear # 清空对话,项目上下文层重新加载 /compact # 压缩对话历史,项目上下文层重新加载 # 会话中途修改系统提示词相关的设置 # 比如切换 output style、加载新工具定义

系统提示词层的变化影响最大,因为它处于最前面的位置——一旦变化,后面的项目上下文层和对话层全部要重新计算和写入缓存。

实用建议:如何减少不必要的缓存失效

  1. 减少频繁的 /clear/compact:只在真正需要清空上下文时使用,而不是习惯性地清
  2. 避免会话中途频繁切换 output style 或工具集:这类改动会波及系统提示词层
  3. 善用 Plan Mode 和 Skill:它们的指令走对话层,不会打断已建立的缓存
  4. 长时间稳定的会话更省钱:一次建立的缓存前缀,只要不触发上层变化,会一直被复用

如何检查缓存表现

如果发现某个项目的 Token 用量看起来异常高,可以留意是否触发了以下常见场景:

  • 频繁执行 /clear(每次都要重建项目上下文层)
  • 会话中反复切换模型或权限模式(可能影响系统提示词层)
  • 使用了会频繁改变工具定义集合的自定义配置

与 Claude Sonnet 5 的关联

值得一提的是,Claude Code v2.1.201 专门针对 Claude Sonnet 5 会话做了优化:不再用「对话中系统角色」传递 Harness 提醒信息,避免了这类提醒消息在对话中途插入导致前缀失配、缓存被打破的问题。这个改动本质上就是应用了本文讲的分层原理——把原本可能出现在「意外位置」的内容,改为不会打断前缀匹配的方式处理。

总结

Prompt Caching 对 Claude Code 的速度和成本影响巨大,理解「系统提示词 → 项目上下文 → 对话」这个三层结构和精确前缀匹配的规则,能帮你避免无意间频繁触发缓存重建,尤其是在长时间运行的 Agent 任务和后台代理场景中,缓存命中率的差异会直接反映在账单上。


来源:How Claude Code uses prompt caching — Anthropic 官方文档

相关文章推荐

深度Claude Code v2.1.201:Claude Sonnet 5 会话系统消息机制优化,避免破坏 Prompt CacheClaude Code v2.1.201 优化了 Claude Sonnet 5 会话中 Harness 提醒信息的传递方式,不再使用会破坏 Prompt Cache 的对话中系统角色消息,为长会话和后台代理任务带来显著的 Token 成本节省。2026/7/5深度Claude Code 团队协作安全实践:MCP 服务器审批机制与工作区信任详解Claude Code v2.1.196 起引入的 MCP 服务器审批机制,确保克隆仓库无法自动获得已提交的 MCP 服务器信任。本文详解工作区信任模型如何防止供应链投毒攻击,并提供团队 Onboarding 安全检查清单。2026/7/6深度Claude Code 7 月上旬更新速览:权限改名、Sonnet 5 优化与稳定性加固全解析2026 年 7 月 1 日至 3 日,Claude Code 连续发布 5 个版本。本文聚焦 v2.1.200 和 v2.1.201 的核心内容(权限模式改名、Sonnet 5 系统消息优化),并串联整个 7 月上旬的更新脉络。2026/7/5深度Claude Code 后台代理稳定性三连修:v2.1.198~v2.1.200 真实问题汇总Claude Code 在 v2.1.198~v2.1.200 三个版本中连续修复后台代理稳定性问题,其中最关键的是 Linux 守护进程崩溃后每约 50 秒自杀所有代理的严重 Bug。本文汇总所有相关修复,并给出升级判断依据。2026/7/5深度Claude Code 2026 年 6-7 月重大更新全景:从 Opus 4.8 到 Sonnet 5 的能力演进系统梳理 Claude Code 2026 年 6 月到 7 月初的核心功能演进:从 Claude Opus 4.8 成为默认到 Claude Sonnet 5 接棒,从同步子代理到全面后台异步,从终端输出到 Artifacts 实时网页。附完整时间线和能力对比表。2026/7/3深度Claude Code vs Cursor vs GitHub Copilot 2026:真实对比,该选哪个?Claude Code vs Cursor vs GitHub Copilot 2026 真实对比:7 个实际场景(日常补全/单文件重构/多文件实现/Debug/Git 工作流/命令执行/CI 集成)的逐项分析;价格对比(免费版到企业版);学习曲线评估;生态覆盖对比;决策框架(何时选哪个);以及 Copilot/Cursor + Claude Code 同时使用的最佳组合方案。2026/5/12