第 17 期:Q&A — Cache 机制与 Token 优化

⏱ 预计阅读 4 分钟 更新于 2026/5/7
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)

本期场景:Cache 是省钱的核心。这 7 个问题帮你彻底搞懂缓存机制。


Q8:Prompt Cache 跟浏览器缓存一样吗?

不一样。浏览器缓存存的是网页资源。Prompt Cache 存的是 API 请求的前缀匹配结果

原理:如果连续两次 API 请求的开头部分完全一样,重复部分直接从缓存读取。省 ~90% 输入费用。

关键限制:缓存要求从请求开头开始的连续前缀完全一致。中间有改动,从改动点开始全部失效。


Q9:缓存 5 分钟倒计时从什么时候开始算?

最近一次 LLM 返回 response 的时间开始算。即 lastAssistantResponseAt

不是你发消息的时间,是 AI 回复完成的那个时间点。5 分钟内再发消息 → cache 命中 → 省 90% 输入费用。


Q10:assistant 响应就是 LLM 的 response 吗?

对。"assistant" 是 API 消息格式中的角色名:

[
  { "role": "user", "content": "你好" },          ← 你的消息
  { "role": "assistant", "content": "你好!" }    ← LLM 的回复
]

Q11:缓存命中省多少钱?

以 Opus 模型为例,输入 100K tokens,其中 80K 缓存命中:

计算 费用
无缓存 100K × $3/MTok $0.30
80K 缓存命中 80K × $0.30/MTok + 20K × $3/MTok $0.084

省了 72%。一个长会话(20 轮),缓存好 vs 缓存差,费用差 3-5 倍。


Q12:/clear 后缓存还在吗?

不在。/clear 清空所有对话历史,缓存前缀全部变化,无法命中旧缓存。

第一轮最贵:固定部分全部重新处理。第二轮开始缓存命中恢复正常。


Q13:怎么保持缓存不过期?

最简单:在缓存快过期时发一条消息。任何消息都行。LLM 回复后 5 分钟 TTL 重置。

Cache TTL: 4m 12s    ← 不急
Cache TTL: 0m 30s    ← 快过期了!发条消息续命
Cache TTL: -expired  ← 过期了,下次要重新处理

Q14:为什么缓存命中率突然下降?

三种原因:

  1. 自动压缩触发(上下文 > 95%)— 前缀变化,缓存失效
  2. /compact 执行 — 同上
  3. TTL 过期 — 5 分钟没新请求

前两种是"结构性失效",无法避免。第三种可以主动续命。


下期预告:第 18 期最终 Q&A——HUD 排错、Memory 与高级话题。