LLM Caching Patterns 是一套面向大模型应用的多级缓存方案技能,目标是通过分层缓存减少重复计算和 token 消耗。
用途:适用于存在大量重复或相似请求的 LLM 应用,例如高流量问答机器人、代码审查自动化、内容审核、多智能体分析和客服会话等场景。资料称现代 LLM 应用可通过多级缓存将成本降低 70%~95%。
主要能力:
- L1 内存 LRU 缓存:按内容哈希精确匹配,约 1ms 命中,材料建议容量 1000~10000 条、TTL 5~10 分钟,可使用 Python 的 functools.lru_cache 或 cachetools。
- L2 Redis 语义缓存:通过向量相似度检索,仅当余弦距离低于阈值时返回缓存,TTL 1~24 小时,基于 RedisVL SemanticCache 和 RediSearch 实现。
- L3 提供方原生提示缓存:缓存相同提示前缀,如系统提示和 few-shot 示例;Claude 使用 cache_control 的 ephemeral 标记,GPT 自动识别缓存前缀,TTL 约 5 分钟并在使用时自动刷新;资料提到 2025 年 3 月后缓存读取不计入速率限制。
- L4 为完整 LLM 调用,命中后回写 L2 和 L1。
使用方式:资料给出 get_llm_response 的多级查找流程:先查 L1 哈希,未命中则计算嵌入并在 Redis 中按 agent_type、content_type 过滤做向量检索,命中则提升到 L1;否则构建带 cache_control 断点的消息调用 LLM,并将结果写回 L2 与 L1。还给出 RedisVL 索引 schema(1536 维、cosine、HNSW)、SemanticCacheService 的 get/set 示例、PromptCacheManager 的断点构建方法,以及从高质量历史数据预热缓存、按质量分数淘汰、动态调整阈值和可选的 LLM 重排序等优化手段。
阈值与限制:资料建议相似度阈值从 0.92(距离小于 0.08)起步,按不同 agent 类型调整,并监控误命中与漏命中;提示阈值过低会返回不相关缓存。成本示例显示提示缓存可使单次请求成本降低约 40%,语义缓存加提示缓存合计约 61%。监控部分列举 L1~L4 命中率、延迟、节省金额、误报率和漏报率等指标,并介绍用 Langfuse 自动追踪 token 用量与成本、关联父级 trace 的做法。
资料中的代码为示例片段,部分内容存在截断;具体部署、依赖版本和实际效果暂未提供。