指南

Claude API prompt cache 怎么检测

Claude API prompt cache 检测指南:构造稳定长前缀,比较 cache_creation_input_tokens 与 cache_read_input_tokens,并排查中转站字段缺失。

更新于 2026年7月13日约 7 分钟AIBench.cc 编辑部

快速答案

检测 Claude prompt cache 的核心是连续发送两次共享完全相同长前缀的请求:第一次应出现 cache_creation_input_tokens,第二次应出现 cache_read_input_tokens。只看响应更快或价格更低不够,必须保留 usage 字段证据。

先看结论

  • 第一次请求观察缓存创建,第二次请求观察缓存读取。
  • 两次请求的可缓存前缀必须逐字节一致。
  • 优先依据 usage 字段,不用单纯延迟变化代替缓存证据。
  • 中转站可能隐藏或重写字段,应同时检查协议兼容性。

Claude prompt cache 在测什么

Prompt cache 让多个请求复用相同的长前缀,常见对象包括 system prompt、工具定义、长文档和稳定的对话历史。命中缓存后,上游不必按完整输入重新处理该前缀,因此可能降低长上下文成本和首字等待。

检测目标不是证明“第二次更快”,而是确认 Anthropic usage 中出现可核对的创建和读取 token 数。网络抖动、排队和生成长度都会影响延迟,usage 字段才是更直接的缓存证据。

需要关注的字段

不同 SDK 会把字段映射到不同命名风格,但原始 Anthropic 响应通常围绕输入 token、缓存创建 token 和缓存读取 token 展开。保存原始 usage 片段,后续排查会容易很多。

字段含义预期变化
input_tokens本次未从缓存读取的普通输入命中后通常下降
cache_creation_input_tokens本次写入缓存的输入 token首次请求应大于 0
cache_read_input_tokens本次从缓存读取的输入 token第二次请求应大于 0
output_tokens模型生成的输出 token与缓存命中没有直接等价关系

如何设计两次请求

准备一个长度达到模型缓存门槛的稳定前缀,并在需要缓存的内容块上使用 Anthropic 支持的 cache_control。两次请求应使用相同模型、相同 system/tool/document 前缀,只改变最后一个很短的用户问题。

  • 请求 A:创建缓存,记录完整 usage 和 TTFT。
  • 短时间内发送请求 B,保持缓存前缀完全一致。
  • 确认 B 的 cache_read_input_tokens 大于 0。
  • 检查 A 的创建 token 与 B 的读取 token 是否处于相近量级。
  • 再改变前缀中的一个字符发送请求 C,确认缓存读取明显下降或失效。

为什么第二次请求仍然没有命中

常见原因包括模型不支持、前缀低于最低 token 门槛、cache_control 放置错误、两次前缀存在空格或 JSON 顺序差异、缓存已过期,或者账号/区域发生变化。

如果通过中转站调用,还要确认它没有把 Anthropic 请求转换成 OpenAI 格式、删除 cache_control,或在响应中丢弃缓存 usage 字段。此时延迟下降也不足以证明原厂缓存命中。

如何解释延迟和成本

缓存命中通常会改善长前缀处理成本,但总耗时仍受输出长度和上游排队影响。应把 TTFT、端到端耗时和 usage 分开记录,而不是用一个总延迟数字概括。

成本计算也要区分普通输入、缓存写入和缓存读取。具体价格会随模型和 Anthropic 定价变化,报告应保留 token 数,再按测试当天的官方价格换算。

上线前应该怎样复测

用真实 system prompt、工具定义和文档模板复测,在不同时间段运行多轮请求,记录命中率而不是只看一次命中。对于中转站,还应确认切换账号池或出现 429 后,缓存行为是否仍然稳定。

常见问题

cache_read_input_tokens 为 0 就代表 Claude 不支持缓存吗?

不一定。也可能是前缀太短、cache_control 配置错误、前缀发生变化、缓存过期或中转站没有透传字段。

第二次请求更快就算缓存命中吗?

不能只凭速度判断。网络和排队也会造成延迟变化,应以 cache_read_input_tokens 等 usage 字段为主要证据。

Claude 中转站也能检测 prompt cache 吗?

可以,但前提是中转站完整透传 Anthropic 的 cache_control 和 usage 字段。字段缺失本身就是协议兼容风险。

继续阅读

用真实 API 运行一次检测

使用临时 key 检查连通性、延迟、缓存、限流、模型纯度和 token 成本。

开始检测