7.5
深览指数
产品人人都是产品经理·爱研究的乐声··AI 生成

深入解析KV Cache,以及怎么让你的 Agent 更省钱?

本文区分了KV Cache(单次生成内避免重复计算历史上下文)和Prompt Cache(跨请求复用相同前缀)两个核心概念。作者指出,API缓存命中价格极低的根本原因在于模型厂商确实减少了重复的prefill计算。文章给出了明确的优化原则:将system prompt、工具schema等稳定内容放在prompt前端,将用户问题、检索结果等动态内容放在后端,以提高跨请求的缓存命中率。同时,本文也揭示了第三方路由API可能因请求打散、prompt改写等原因抵消缓存收益。适合正在构建Agent、RAG应用并寻求降低API调用成本的开发者阅读。原文 ↗

核心观点
  • 大模型API的缓存命中价格之所以低,是因为模型厂商确实减少了重复计算,而开发者可以通过优化prompt结构(稳定内容放前,动态内容放后)主动利用这一机制降低成本。
  • 必须区分两类缓存:KV Cache解决单次生成内部的重复计算,Prompt Cache解决多次请求之间的重复前缀计算,后者才是API计费中“缓存命中”对应的概念。
  1. 01KV Cache的原理是:自回归模型生成时,历史token的Key和Value计算完成后不会再变,因此可以在每一层、每个attention head中保存这些K/V,供后续token生成时复用。
  2. 02Prompt Cache省的是重复prefill成本,如果多个请求拥有完全一致的前缀(如system prompt、工具说明),平台可复用之前的计算结果。
  3. 03优化prompt结构的原则:稳定内容(system prompt、角色说明、输出格式、工具schema)放前面,动态内容(用户问题、检索结果、工具返回)放后面。
  4. 04频繁修改system prompt(如多一个空格、换工具顺序)、将RAG结果放在前缀、每轮对话重新改写历史记录,都会破坏前缀匹配,降低缓存命中率。
  5. 05第三方路由API可能将请求打散到不同上游、改写prompt(如添加安全规则/供应商标识)、不透明展示缓存命中信息,导致用户实际享受不到缓存折扣。
反方 / 局限
  • Prompt Cache不是永久记忆,有生命周期,适合短时间内连续调用(如单次对话或任务),半个月后再调用的Agent很难命中上次缓存。
  • 直接使用官方API时缓存命中率高,但换成第三方路由API后,即使标价低,实际消耗可能更快,因为缓存收益被路由层的“破坏”所抵消。
13 分钟 · 4 卡片 · 8 资料
读原文 →

概念锚点

前置背景

未来推演

延伸追问