cacheRead 是“滚雪球累计”,不是重复计数。
Anthropic prompt caching 机制:
每个 turn 都会把整个对话历史从 cache 读出一次,按读出的 token 数计费。举例:
turn 0: cacheRead = 0 cacheWrite = 55,689
turn 1: cacheRead = 55,689 cacheWrite = 247 ← 上一轮写入的全部 read 一次
turn 5: cacheRead = 58,113 cacheWrite = 135
turn 14: cacheRead = 62,521 cacheWrite = 1,086
156-turn session 累计 cacheRead 可能 ≈ 10M tokens,但实际内存里只有最后那 60K 历史。
这不是 bug:每次 read 按 cache_read 单价(input 的 10%,极低廉)计费,是 Anthropic 的真实计费口径。表面上 5.78B tokens 听起来很多,但其中绝大多数是同一份历史被重复 read,按 token-events 计量。
验证:1575/1575 messages 过检,
usage.totalTokens ≡ input + output + cacheRead + cacheWrite,4 个桶完全互斥,未双倍计数。
详细记录: memory/2026-04-28.md §Token 计算逻辑复查