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

claude code promptCacheTtl 怎么设:2.1.243 给 API Key 和云厂商(Bedrock / Vertex 等)用户加了两个设置。promptCacheTtl 管主对话缓存能留多久,可拉到 1 小时;subagentPromptCacheTtl 管子代理,默认可继续 5 分钟。拆开是为了让长主会话保温,又不把短命子代理的缓存拖很久。
为什么要拆两条
主会话系统提示、仓库规则、长上下文前缀几乎不变,缓存久一点能少重复付输入。子代理每次任务短、上下文不同,5 分钟足够,拉太长只占供应商缓存配额。
这和「网关把 cache 头弄丢」不是同一类故障。走中转时命中率异常,先查网关有没有丢掉 cache 相关头,见 网关 prompt cache。TTL 只决定「允许缓存多久」,不保证供应商一定命中。
适用边界
Changelog 写的是 API-key and cloud-provider users。Console / 订阅登录路径有没有同一旋钮,发行说明没写死,设了也要在 /cost 或供应商账单上看 cache read。
Bedrock、Vertex、Foundry 上,同版本让 /model、/fast、/effort 立刻生效,不必等本回合结束。调 TTL 后开一轮新对话再观察,比在旧会话里空等一小时更清楚。
怎么验证有没有生效
- 把设置写进当前生效的 settings 层(用户或托管)。
/status看有没有被更高优先级托管源跳过。- 同一长会话间隔十几分钟再发一条短跟进,对比输入 token / cache read。
- 故意开一堆短命子代理,确认它们没有按 1 小时去占缓存。
/usage 同版本加了 Loops 明细:每个 /loop 的次数和 token。缓存没配好时,loop 会把同一前缀反复打满。明细读法见官方 CHANGELOG。
设错成超长 TTL 不会让模型更聪明,只会让账单上的 cache 存储/读看起来怪。先主会话 1 小时、子代理保持默认,再按账单微调。