Claude Code --resume 缓存失效:每次恢复重写 38.5 万 token 上下文

vvasic · ghdev · 2026-09-11

Claude Code issue #93490(有复现,macOS):使用 --resume 恢复会话时,prompt cache 永远只命中静态前缀(工具+system),整个对话每次都被重写进缓存。作者用本地代理抓包对比新会话与自身 resume 请求,发现 messages[1](承载 SessionStart hook 输出与 Environment 块的 role: system 消息)被序列化成了纯字符串而非原来的 content blocks,且丢失 cachecontrol,导致前缀在字节层面不再匹配。

影响:小会话每次 resume 重写约 1.8-2.5 万 token;作者真实的长会话 fork 一次 resume 就重写了 38.5 万 token(读 2.7 万、写 38.5 万),直接推高 cachecreation 费用。已排除 TTL、设置与 hooks 因素——相隔 30 秒的两次全新启动能完全互相命中缓存(读 231238、写 0),说明客户端能生成稳定前缀,只是 resume 路径没做到。作者认为这也是 #91971、#83901 同类症状的共同根因。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →