Claude 提示词缓存:为何代理循环会错过 20 块的回溯... 笔记

Claude 提示词缓存:为何代理循环会错过 20 块的回溯窗口”

Claude 提示词缓存受到缓存条目 20 块回溯窗口的限制。包含多次工具调用的代理轮次可能迅速超出该限制,导致缓存未命中和昂贵的完整提示词重写。为维持缓存,应每隔约 15 块设置滚动断点,而非仅在末尾设置单个标记。每个请求的断点预算为四个,其中预留一个用于系统和工具。确保在每次新请求前清除过期断点。思考块不能作为缓存锚点,因此请选择可缓存的内容类型。缓存失效是分级的,仅影响变更的层级及其后续层级,但工具定义变更和模型切换会失效所有缓存。将系统消息追加到消息列表,而非编辑顶层系统提示词,可保留缓存。记录所有三个使用字段——input_tokens、cache_creation_input_tokens 和 cache_read_input_tokens——以准确诊断缓存性能。在进行并行请求时,仅在第一请求开始流式传输后发起后续请求,以利用其缓存写入。工具调用延迟超过五分钟可能导致缓存条目过期,因此需要更长的 TTL。最小可缓存前缀长度因模型而异,因此较小的前缀可能根本无法缓存。