知识全景图/ 软件工程与系统/ 人工智能全景图/ AI Cache Strategy

AI 缓存策略、Prompt Cache、语义缓存、RAG 缓存与 KV Cache 治理全景图

从前缀复用、语义命中、检索结果、工具结果到 KV Cache,回答 AI 系统怎样省钱提速,又不把旧答案、错证据和越权数据缓存成事故

阅读定位: 推理计算 / KV Cache讲底层 prefill、decode 和 KV Cache 成本, AI 成本与性能讲成本优化总盘, 请求 Trace讲 cache_hit 怎样进入观测证据。 本页专门补缓存治理层:哪些内容可以缓存、缓存键怎么设计、什么时候必须失效、命中后怎样校验权限和版本,以及缓存收益怎样被证据化。
一、AI 缓存不是一种缓存,而是一组不同风险的复用层
Prompt Cache
稳定前缀
Semantic Cache
近似问题
RAG Cache
检索结果
Tool Cache
外部结果
KV Cache
推理状态
Output Cache
最终答案
Invalidation
版本 / 权限
缓存类型缓存什么收益最大风险
Prompt Cache / Prefix CacheSystem Prompt、工具说明、长文档前缀、稳定上下文 token降低 prefill 成本和 TTFT模板版本变化、权限变化后仍复用旧前缀
Semantic Cache语义相近问题的最终答案或中间结果减少模型调用,提升高频问答速度相似不等于相同,可能答错上下文或用户
RAG Retrieval Cachequery rewrite、检索候选、rerank 结果、证据摘要降低检索和重排成本知识库刷新、ACL 变化、文档撤回后仍命中旧证据
Tool Result Cache只读 API、价格、库存、配置、统计结果降低外部依赖延迟和成本实时状态过期,或把租户 / 用户级结果串用
KV Cache推理过程中每层 attention 的 Key / Value 状态让 decode 不重复计算历史 token显存占用高、长请求挤占并发、取消后不释放
Output Cache最终模型回答、结构化结果、摘要结果高重复任务极快返回答案过期、个性化错误、不可审计来源
二、缓存键:命中错了比不命中更危险
键字段为什么要进入 cache key漏掉会怎样
tenant_id / user_scope区分租户、用户、角色和数据权限把 A 租户或高权限用户的结果返回给 B
prompt_version / template_versionPrompt 和 Chat Template 改动会改变输出语义上线新模板后仍复用旧行为
model_id / sampling_config模型、温度、schema 和 stop rule 改变输出分布缓存结果与当前模型策略不一致
context_hash / rendered_prompt_hash确认模型看到的上下文是否一致历史、RAG 证据或工具结果变化后仍命中旧结果
index_version / doc_versionRAG 知识库和文档版本会影响证据知识刷新、撤回或修订后旧证据继续污染答案
policy_version / risk_tier安全策略和风险等级决定能否输出或执行策略收紧后仍返回旧的高风险答案
locale / product_surface语言、地区和产品入口影响格式和法律边界跨地区、跨入口复用造成体验和合规错误

缓存键本质上是“什么条件下结果仍然有效”的声明

不要只用用户问题文本做 key。AI 请求结果通常依赖模型版本、Prompt、上下文、权限、知识库、策略和产品场景。

三、Prompt Cache:省的是 prefill,不是所有成本
适合缓存
稳定系统提示、工具说明、固定文档前缀、长但很少变化的产品规则、同一会话内重复前缀。
不适合缓存
频繁变化的用户输入、权限敏感证据、实时工具结果、尚未定版的 Prompt 实验分支。
观测字段
prefix_hash、prefix_tokens、cache_hit、cache_reuse_tokens、prefill_saved_ms、cache_version。
问题判断字段动作
首 token 慢但输出不长context_tokens、prefix_tokens、cache_hit、prefill_ms把稳定前缀拆出来,观察 Prompt Cache 命中和 prefill 节省
模板上线后行为不一致prompt_version、prefix_hash、cache_version模板版本进入 cache key,旧版本缓存按版本自然退场
缓存命中率低prefix_stability、variable_order、rendered_prompt_hash固定消息顺序,减少无意义变量扰动,拆稳定前缀和动态尾部
四、语义缓存:相似问题不一定能共享答案
场景是否适合关键约束失败模式
公开 FAQ、固定政策解释适合版本稳定、无个性化、低风险政策过期后继续返回旧答案
企业内部知识问答谨慎必须绑定 ACL、知识库版本和证据 id跨权限、跨部门、跨版本误命中
用户私人上下文问答通常不适合共享只能用户内或会话内复用隐私泄露和个性化错答
代码、财务、法律、医疗类高风险任务高门槛需要强校验、低阈值慎用、人工或工具确认相似输入对应不同事实,错误代价高

语义缓存要有“相似度阈值 + 适用域 + 证据版本”

只看 embedding 相似度不够。还要看任务类型、用户权限、知识版本、风险等级和答案是否可复用。

五、RAG 缓存:缓存检索结果前先问知识会不会变
缓存层缓存内容失效条件Trace 字段
Query Rewrite Cache原问题到检索 query 的改写结果改写 Prompt、语言、任务类型变化query_rewrite_version、rewrite_hash
Retrieval Candidate Cache向量召回 / 关键词召回候选索引版本、ACL、embedding 模型变化index_version、embedding_version、acl_snapshot
Rerank Cache候选排序和分数rerank 模型、query、候选集合变化rerank_model、rerank_scores、candidate_hash
Evidence Summary Cache长文档片段的摘要或压缩证据文档版本、摘要 Prompt、权限变化doc_version、summary_prompt_version、evidence_hash
Citation Cache引用位置、页码、段落 id文档解析、切片策略、页码版本变化parser_version、chunk_version、citation_ids

RAG 缓存必须和 ACL 一起设计

检索结果缓存如果不带权限快照,最容易把“某人可见的证据”误当作“所有人可见的知识”。

六、工具结果缓存:只读、幂等和时间窗
工具类型缓存策略必要字段不该缓存什么
只读配置 / 字典可较长 TTLtool_version、tenant_scope、updated_at带用户隐私的查询结果
价格 / 库存 / 状态短 TTL 或事件驱动失效freshness_sla、source_timestamp、ttl需要强实时一致性的动作依据
搜索 / 外部 API按 query、地区、时间窗缓存provider、query_hash、region、expires_at许可不允许复用的数据
写操作结果通常不缓存结果,只缓存幂等状态idempotency_key、operation_status、side_effect_committed把一次写操作响应复用给另一次写操作
七、KV Cache:底层状态不是业务缓存
它解决什么
decode 时避免反复计算历史 token 的 Key / Value,让逐 token 生成可承受。
它不解决什么
不会自动减少输出 token,也不会让错误上下文变正确,更不能当跨用户业务缓存。
治理重点
显存占用、长请求驱逐、取消释放、连续对话复用、batch 调度和 P95 / P99 抖动。
问题字段动作
长请求挤占并发kv_cache_bytes、active_sequences、context_tokens长短请求分池,限制上下文,驱逐低优先级请求
取消后显存不降client_cancelled、resource_released、kv_cache_released检查取消传播,释放 KV Cache 和队列状态
多轮对话首 token 仍慢conversation_cache_hit、prefix_reuse_tokens、prefill_ms检查是否能复用稳定前缀,或历史摘要是否破坏前缀稳定
八、失效策略:缓存治理的核心不是命中,而是退场
失效来源触发条件处理方式必须记录
版本变化Prompt、模型、工具 schema、RAG 索引、策略版本变化版本进入 key,旧版本自然过期或批量清理invalidated_by_version、old_version、new_version
权限变化用户角色、租户 ACL、文档权限变化按权限快照失效,敏感缓存短 TTLacl_snapshot、permission_version
知识变化文档新增、删除、修订、撤回、解析重建按 doc_id / index_version 精准失效doc_version、index_version、parser_version
策略变化安全、合规、拒答、风险等级策略变化策略版本进入 key,高风险场景强制重算policy_version、risk_tier
质量反馈缓存结果被判错、投诉或进入事故封禁 key、回滚缓存、进入坏例评测cache_key、review_label、incident_id
九、缓存观测:不要只看 hit rate
指标含义为什么重要
cache_hit_rate命中比例只说明复用频率,不说明复用是否正确或有价值
prefill_saved_ms / tokens_saved节省的时间和 token衡量 Prompt Cache 和前缀复用的真实收益
false_hit_rate命中但后来被判错的比例语义缓存和 RAG 缓存的核心风险指标
stale_hit_rate命中过期知识、旧权限或旧策略的比例判断失效策略是否可靠
cache_cost_overhead缓存存储、索引、校验和失效的成本缓存系统本身也会消耗工程和资源
quality_delta_on_hit命中缓存时质量指标变化证明缓存没有用速度换掉质量和安全

缓存收益要进入 Trace 和 Eval

每次命中最好记录 cache_type、cache_key_hash、cache_version、hit_reason、freshness、tokens_saved、latency_saved 和 quality_label。否则缓存优化很容易变成只看账单的局部优化。

十、常见事故模式
跨租户命中
cache key 没有 tenant / ACL,A 用户的证据或答案被 B 用户命中。必须把权限边界放进 key 或结果校验。
知识撤回后旧答案继续出现
RAG 缓存没有绑定 doc_version / index_version,文档删除、修订或撤回后旧证据仍被复用。
语义相似导致答非所问
embedding 相似度高,但任务条件、时间范围或用户上下文不同。要加任务类型、场景和风险约束。
Prompt 改版后缓存污染评测
新 Prompt 的请求命中旧 Prompt 缓存,导致线上表现和离线 Eval 对不上。
取消后 KV Cache 泄漏
用户停止生成后模型服务仍保留状态,GPU 显存和队列被慢慢吃满。
缓存命中率高但质量下降
缓存节省了调用,但把旧答案、过期证据或低质量答案放大。必须看 false_hit_rate 和质量切片。
十一、和相邻页面怎么接
相邻页它回答什么本页补什么
推理计算 / KV Cacheprefill、decode、KV Cache 的底层计算和显存成本把 KV Cache 放进生产缓存治理,区分底层状态和业务缓存
上下文组装 / 窗口预算哪些上下文进入模型说明稳定前缀、rendered_prompt_hash 和 token budget 如何影响缓存
生成运行时生成请求怎样排队、prefill、decode、流式和收尾补充 cache_hit、prefix reuse、取消释放和 TTFT 优化证据
请求 Trace / 排障模板请求证据字段和排障模板定义 cache_type、cache_key、cache_version、freshness、tokens_saved 等观测字段
AI 成本与性能质量、延迟、成本和资源平衡把缓存从“省钱技巧”升级为可评测、可失效、可审计的治理层
权限 / 租户 / 数据边界谁能看什么、能做什么强调缓存必须带上 tenant、ACL、permission_version 和数据边界
十二、回到 AI 主干
AI 全景 AI 阅读路线 上下文组装 推理计算 / KV Cache AI 缓存策略 生成运行时 请求 Trace 成本与性能