Claude Code promptCacheTtl 怎么设

2.1.243 新增 promptCacheTtl 与 subagentPromptCacheTtl:主会话可保 1 小时缓存,子代理可维持 5 分钟默认。

Claude Code promptCacheTtl 怎么设

claude code promptCacheTtl 怎么设:2.1.243 给 API Key 和云厂商(Bedrock / Vertex 等)用户加了两个设置。promptCacheTtl 管主对话缓存能留多久,可拉到 1 小时;subagentPromptCacheTtl 管子代理,默认可继续 5 分钟。拆开是为了让长主会话保温,又不把短命子代理的缓存拖很久。

作者CodePass 技术编辑

为什么要拆两条

主会话系统提示、仓库规则、长上下文前缀几乎不变,缓存久一点能少重复付输入。子代理每次任务短、上下文不同,5 分钟足够,拉太长只占供应商缓存配额。

这和「网关把 cache 头弄丢」不是同一类故障。走中转时命中率异常,先查网关有没有丢掉 cache 相关头,见 网关 prompt cache。TTL 只决定「允许缓存多久」,不保证供应商一定命中。

适用边界

Changelog 写的是 API-key and cloud-provider users。Console / 订阅登录路径有没有同一旋钮,发行说明没写死,设了也要在 /cost 或供应商账单上看 cache read。

Bedrock、Vertex、Foundry 上,同版本让 /model/fast/effort 立刻生效,不必等本回合结束。调 TTL 后开一轮新对话再观察,比在旧会话里空等一小时更清楚。

怎么验证有没有生效

  1. 把设置写进当前生效的 settings 层(用户或托管)。
  2. /status 看有没有被更高优先级托管源跳过。
  3. 同一长会话间隔十几分钟再发一条短跟进,对比输入 token / cache read。
  4. 故意开一堆短命子代理,确认它们没有按 1 小时去占缓存。

/usage 同版本加了 Loops 明细:每个 /loop 的次数和 token。缓存没配好时,loop 会把同一前缀反复打满。明细读法见官方 CHANGELOG

设错成超长 TTL 不会让模型更聪明,只会让账单上的 cache 存储/读看起来怪。先主会话 1 小时、子代理保持默认,再按账单微调。

参考资料