前缀缓存是模型提供商侧的存储机制,让连续的模型提供商请求可以跳过对共同前缀的重复处理。当新请求的开头与近期某次请求的开头匹配——例如拥有相同系统提示词和截至某点的相同历史——提供商会复用先前计算,并把这些 Token 作为费率低得多的缓存 Token 计费。
缓存之所以有效,是因为会话通常只在末尾追加内容。每次请求都会把完整历史重新作为输入 Token发送(原因参见对应词条),而正常会话中的历史只会在结尾变化——每次请求都等于上一次请求加上几条新消息。提供商只需处理一次漫长的共同开头、保存结果,再从前缀结束的位置继续。没有缓存时,一个包含 50 个轮次的会话,会为第一个轮次重复处理 50 次。
缓存也会过期。条目能够保持热状态多久,因模型提供商而异——通常以分钟计,而不是小时。会话闲置超过有效期后,下一次请求会先按完整价格重建一次前缀,随后才恢复缓存。这主要是运行框架开发者需要关心的问题;对用户而言,可见现象是长时间暂停后的请求比暂停前更贵。
用法:
“为什么会话进行到一半时费用突然上升?”
“运行框架开始在每个轮次向系统提示词注入当前时间。前缀缓存会在第一个发生变化的 Token 处失效,因此之后每次请求都按完整费率计费。”