首页/AI/AI 应用速查/Anthropic 显式缓存:cache_control 标记

Anthropic 显式缓存:cache_control 标记

Anthropic 需要显式标记缓存断点:在 content 块上加 cache_control,把长文档、工具定义等固定内容标记为可缓存;写入按上浮价、读取按大幅折扣计费,按官方文档为准。

AI 应用速查AI更新于 2026-10-13

显式缓存标记是什么

Anthropic 侧需要在内容块上显式打缓存标记:给长文档、工具定义或系统说明加上缓存控制字段,服务端才会把这些内容存下来,后续请求命中时按折扣价读取。写入缓存时按上浮价计费,读取时按折扣价,因此适合「同一份大内容被反复提问」的场景。标记位置决定命中范围:断点之前的内容才会被缓存。

基本信息

标记方式在需要缓存的内容块上加缓存控制字段
有效期默认较短(约数分钟量级),可选更长档位,以官方文档为准
计费写入按基础价上浮,读取按折扣价
断点上限单次请求的缓存断点数量有上限(以官方文档为准)
命中条件断点之前的内容完全一致才能命中
适用范围长文档问答、工具定义固定、系统说明较长的场景

标记怎么放

位置效果说明
系统说明末尾缓存整段说明规则固定时有收益
长文档块之后缓存整份文档同一文档反复提问最划算
工具定义之后缓存工具清单多轮调用场景中收益稳定
放在易变内容之后几乎不命中断点前后内容都一致才算命中
标记过短的块收益为负写入上浮价都赚不回来

典型使用场景

  • 长文档反复提问:一份手册配多个问题依次提问
  • 多轮对话:系统规则与背景资料在多轮之间保持不变
  • 工具型应用:工具定义较长且每轮都要传给模型
  • 批量抽取:同一套指令与示例应用于大量文本
  • 客服知识问答:同一份产品资料服务大量用户

缓存标记的写法

缓存标记的写法
{
  "model": "claude-sonnet",
  "system": [
    { "type": "text", "text": "……超长制度文档……",
      "cache_control": { "type": "ephemeral" } }
  ],
  "messages": [ { "role": "user", "content": "差旅报销上限是多少?" } ]
}
// 断点打在最长且最稳定的内容块之后
// 每轮都会变化的内容不要放进已标记缓存的前缀里

效果评估要点

要点做法原因
命中率观察读响应里的缓存读写与命中用量字段确认缓存是否真的生效
成本核算把写入上浮与读取折扣一起算写入频繁时未必划算
内容稳定性评估前缀在多轮之间是否真的不变前缀一变整段缓存失效
请求间隔按业务实际节奏评估间隔过长会错过有效期
回退方案命中差时先去掉标记对比效果确认是缓存问题还是别的原因
同一次请求里命中的要求很严格:断点之前的内容必须完全一致,插入一个变化字段就会让整段缓存失效。
对很短的文本加缓存标记可能不划算:写入时的上浮费用超过后续读取节省的部分,标记前先估算调用频次。

易错点

  • 把缓存标记打得太靠前:前缀里任何一处变化都会让整段缓存失效
  • 对短内容加缓存:写入上浮成本超过节省,整体费用反而上升
  • 缓存过期判断错误:高频场景反复付写入费,却以为一直在命中
  • 凭感觉判断命中情况:不读响应里的用量字段,无法确认缓存是否生效

数据来源与参考

  • Anthropic Prompt Caching 官方文档(docs.anthropic.com)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌