记忆层每轮改写前缀悄悄击穿 prompt 缓存,成本最高多付 12.5 倍
inbask · reddit · 2026-09-07
作者指出一个隐蔽且严重的工程问题:LLM 提供商的 prompt cache 依赖精确前缀匹配,前缀中改动任意一个字节都会使其后全部失效。而记忆层按定义注入的内容是会变化的,一旦把 recalled memory 放进 system prompt 或消息前部,就会每轮请求都击穿缓存。
代价有多大
- Anthropic:缓存读取 0.1x 输入价、写入 1.25x,每轮失效的前缀部分要付约 12.5 倍于缓存命中的价格。
- OpenAI GPT-5.x:缓存读取 9 折减免 90% 且自动启用、无开关,你可能在从未主动开启的情况下丢失缓存收益。
- 命中缓存还能降低 30-80% 延迟,等于钱和速度双输。
为何难以察觉:没有任何报错,每次请求都成功返回,你也看不到缓存正常工作的对照版本。
诊断方法:观察 usage.cachereadinputtokens,多次重复请求后若接近零、而 cachecreationinputtokens 每次接近完整 prompt 大小,说明上游在改写你的前缀。
修复方案:按变更频率切分注入的记忆——稳定内容(技能、长期指令、定义)放最前,设置断点,易变的 recall 放后面。
作者自己的架构因 prompt-injection 防御(固定指令与攻击者可控内容隔离)恰好形成了正确的缓存布局,但他们的上下文组装器把 block 交给宿主应用时不声明放置位置,宿主可能把好 block 塞进缓存前缀中间而永久多付钱。作者向社区提问:记忆库该只写文档,还是直接返回稳定/易变两个分区让调用方无法用错。
「编程与Agent」频道最新
- Domoticz MCP 服务器发布:用 AI 助手直接管理智能家居 — modelcontextprotocol · 2026-09-07
- Vocab Voyage 发布:20 个 MCP 工具做 SAT/GRE 备考 — modelcontextprotocol · 2026-09-07
- Agent 跑错又没有对照样本时,该拿什么当调试基准? — Sensitive-Parsnip-12 · 2026-09-07
- 开源 CuePrecise:把长 YouTube 视频变成可检索时间轴的本地 MCP — Forward-Associate523 · 2026-09-07
- Gary Marcus 引述实测:Astra 规划最强,写代码却频繁出错 — GaryMarcus · 2026-09-07
- Roku 类 AI 应用工具 Rork 宣布 App Store 上架流程提速 2.5 至 4 倍 — rudrank · 2026-09-07