Prompt Caching in Agents
10 hours ago
- 编码代理反复发送相似的大型提示,使得提示缓存对效率和成本至关重要。
- KV缓存按令牌和层存储键和值张量,从而可以重用已处理的前缀。
- 会话亲和性将缓存保留在同一GPU上;分布式缓存将其分布在多个工作节点上,提供了灵活性但带来系统开销。
- 树形结构会话(例如分支和回退)只产生部分前缀重叠,降低了缓存效率。
- 显式缓存(例如Anthropic的cache_control)需要客户端标记;自动前缀缓存自行查找可重用的前缀。
- 对工具定义、顺序或配置的更改会使缓存的前缀失效,常常浪费数万个对话令牌。
- 短缓存TTL(例如Anthropic的5分钟默认值)会在构建或会议等长时间活动中导致缓存未命中。
- 缓存未命中显著增加成本:一个10万个令牌的历史记录会以全价重新处理,加上潜在的写入费用。
- Pi避免激进修剪以保持缓存前缀稳定;仅在需要时进行压缩,但会重置缓存。
- Pi使用命中率、重新计费的令牌和未命中警告等指标监控缓存性能,以帮助用户管理成本。