你有没有算过这样一笔账:读完一个长文件,Claude给出回答,你起身去泡了杯咖啡,六分钟后回来敲了一行字——就这一行字,可能触发了一次15万token前缀的完整重写。
![]()
Claude Code其实一直在缓存你的提示词前缀。但它从不告诉你:上一次请求里缓存到底命中多少,以及距离缓存失效还剩几秒。Prompt Cache Control这个Mod补上的,正是这块信息盲区。
它在提示词上方加了一行状态带,每秒刷新一次。一行里塞进三组数字:缓存服务了多少、这次请求写入了多少、有多少没走缓存直接过去了。后面跟着倒计时、当前生效的缓存寿命,以及一句判定。
判定是这行状态带里最值钱的部分。“keep going”意味着现在回复就是一次缓存读取,几乎不额外花钱。“expired”配上一个大前缀,意味着下一条消息将以基础输入价的1.25倍写入缓存——这时候Mod会建议你改用/compact,如果任务已经做完,直接/clear更干脆。
缓存没命中时,它会告诉你原因:模型换了、条目过期了,或者前缀变了。前缀变化的范围比想象中宽——切换模型、调整effort、改动工具集、编辑CLAUDE.md,全都算在内。
输入/cache会打开一个面板:剩余时间以进度条呈现,绿色一路缩到寿命40%以下转黄,再往下到警告阈值转红;下方是上一次请求的读取/写入/新增堆叠条;再往下是一张按轮次排列的彩色表格。长时间会话之后,这张表才是真正值得看的东西——它标出了每一次未命中发生在哪里。
弹窗提醒每个缓存条目只触发一次:默认在剩余60秒的警告阈值时弹出,之后在10秒、3秒、2秒、1秒各再弹一次。只对2万token以上的提示词生效,短会话不会被反复打扰。
这里有个容易被忽略的机制:每一次读取缓存的请求都会免费刷新它。这是Anthropic的规则,不是Mod的。所以弹窗想说的是——任何一条消息都能让这5分钟的窗口继续存活,Mod只是负责提醒你窗口正在关闭。
安装一行命令:npx claude-code-templates@latest --mod observability/prompt-cache-control。它会落在.claude/skills/prompt-cache-control/目录下,以prompt-cache-control@skills-dir加载,执行/reload-plugins后状态带就出现了。
Mod需要Claude Code v2.1.287或更高版本,从该版本起默认开启。如果你还保留着早期访问阶段的CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1环境变量,可以删掉了,v2.1.287及以后会忽略它。
几个值得改的配置项:warnSeconds控制状态带何时转黄、首个弹窗何时触发,默认60;compactAtTokens设定前缀超过多大时,缓存过期会建议/compact,默认100000;ttl可选auto、5m或1h,除非你比推理层更清楚,否则留在auto。
关于那个10万的默认值需要说明:它是作者的判断,不是Anthropic文档里的数字。如果你的模型缓存写入代价高,把它调低。
另外,pluginConfigs只从用户级或托管设置读取,项目级和本地级条目会被忽略——把它写进仓库的.claude/settings.json里不会起任何作用。
缓存寿命默认5分钟,主动请求时1小时,具体拿到哪个取决于账号和环境。Mod会走一遍和Claude Code相同的优先级链:自身的ttl选项、FORCE_PROMPT_CACHING_5M、CLAUDE_CODE_PROMPT_CACHE_TTL、promptCacheTtl设置、ENABLE_PROMPT_CACHING_1H,最后落到账号——订阅制在套餐用量内是1小时,用量积分、API key或云服务商则是5分钟。
之后它会观察实际流量,而流量能推翻以上所有推断。上一次请求5分钟之后仍然命中,证明寿命是1小时;5到60分钟之间、模型相同且提示词没有缩短却未命中,说明条目已过期,寿命是5分钟。这套推断覆盖了Mod读不到的部分:托管设置、网关重写TTL,或者会话中途套餐用量耗尽的订阅。
之所以需要推断,是因为接口层面存在缺口。API会标明每次写入的TTL,Claude Code的状态栏也把它暴露为prompt_cache.ttl,但Mod API只给出四个token计数。想要拿到真实值,可以运行claude -p "hello" --output-format json,读取usage.cache_creation。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.