P278 · 上下文管理

按稳定程度排列可缓存的上下文

Assemble cached prefixes by stability

确认服务支持前缀缓存后,把稳定输入放前面;缓存异常时检查实际生成的前缀。

编辑审核

以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。

使用场景

你在一个已核实支持前缀缓存的宿主上反复分析同一政策和文档。教学请求 N 为“request_id=r1 → policy-v2 → document-a → question-1”,N+1 开头变成 r2。动态 id 放在共享内容前,可能破坏可复用前缀;本篇只讨论组装和检查,不实际调用付费 API。

具体做法

追踪最终发送载荷里的所有输入,区分全局稳定、会话变化和每次请求变化的部分。按宿主契约把稳定政策与文档放在前面,独有 id 与问题放尾部;若需显式缓存边界,按支持的方式设置。对相邻真实渲染载荷比较共享区,再核对缓存读取记录及资格/就绪条件。改变内容或权限时仍及时更新,不能为了命中缓存保留过期规则。

反例

每次在政策和文档前插入新 request_id,再添加缓存标记。因为政策语义相同,直接报告缓存一定命中并节省固定费用。

改进写法

按已核实的宿主缓存契约组装教学请求:policy-v2 → document-a → 支持的共享边界 → request_id 与当前问题。对 N/N+1 核对最终发送的共享部分及 system/tools/history 中相关变化,而不是只看模板。再检查合格后续请求的缓存读取记录;零读取时同时检查资格、有效期、就绪与载荷差异,不保证固定价格或命中率。使用合成材料检查,不记录真实秘密。

为什么这样改

缓存比较的是宿主规定的实际输入区域,语义相同或标记存在不足以说明可复用。把变化移到尾部让稳定部分更容易满足契约,实际指标再告诉你是否发生复用;成功响应本身不能证明缓存生效。

如何验证

教学载荷比较应显示两个请求共享 policy-v2 与 document-a,而 r1/r2 和问题在边界后变化。检查工具定义或历史也没有在共享范围内意外改写。

示意报告可以写“前缀结构满足约定,缓存命中尚未实测”;只有真实读取记录才支持命中主张。零读取需要按条件诊断,不自动等于字节变化。

适用边界

缓存键、标准化、边界、有效期和就绪条件依提供方而异,冻结来源的 beta、模型和价格不是当前事实。隐私、授权、内容时效与评审独立性优先于复用;不要为了缓存把本应分开的会话或评审合并。

原文与版本

如何收录这些方法