什么是 Token 缓存机制?它如何帮助降低 AI 应用的成本?
- 标签:
🏛 业务架构师
Token 缓存(Prompt Caching)指服务商对重复的前缀内容做缓存复用:请求中与前次相同的开头部分(System Prompt、工具定义、历史前缀)不再重新编码,直接命中 KV Cache,命中部分的输入费用降到一折左右,且首 token 延迟显著下降。
为什么它对成本结构至关重要:
- Agent 请求的前缀重复率极高:Agent 每轮循环都要发送 System Prompt+工具清单+对话历史——历史每轮只增不减,前缀重复率随对话深入趋近 90%。没有缓存,Agent 的 token 成本随轮次平方级膨胀;有缓存,只有增量部分付全价;
- 成本量级的改变:多轮长对话场景实测,开启缓存能省 50%~90% 输入费用——这往往决定一个 Agent 产品的毛利正负;
- 体验红利:缓存命中降低 TTFT(首字延迟),长对话响应更快。
用好的工程要点:前缀要稳定——把不变内容(系统提示、工具定义)放前面,动态内容(用户消息、检索结果)放后面,顺序一变缓存全失效;会话亲和路由(同一会话打到同一节点缓存命中率更高);注意缓存的 TTL(一般几分钟到一小时),冷启动会失效。
业务视角:Prompt Caching 是 2026 年 Agent 成本模型里最重要的免费午餐——架构设计阶段就要把"前缀稳定性"作为规范(我们把它写进了提示词模板的字段顺序标准),事后改造的代价是全局重构。
🏗 系统架构师
Token 缓存 = 服务端把请求的公共前缀的 KV Cache 保留复用,重复前缀不重新计算、按折扣计费(OpenAI/Anthropic/DeepSeek 等均支持,命中部分输入价格降到 1~2.5 折,部分厂商甚至免费)。
机制:LLM 推理分两阶段——prefill(处理输入,算力密集)与 decode(逐 token 生成)。相同前缀(System Prompt、长对话历史、few-shot、RAG 稳定上下文)每次都要重复 prefill,是延迟与成本的大头。缓存命中时跳过 prefill:首 token 延迟(TTFT)从秒级降到几百 ms,输入成本降 50~90%。
对成本结构的改变(我的实践账本):
- RAG 应用:System Prompt + few-shot 模板(稳定)放最前,检索内容(动态)放后面——前缀命中率决定成本,缓存友好布局是免费的优化;
- Agent 系统:循环每步全量上下文重复计费是成本乘数,前缀缓存直接把乘数砍半以上——Agent 的 Prompt 组织必须"稳定在前、变化在后"(工具定义稳定段固化、动态消息追加);
- 对话应用:多轮对话历史天然前缀递增,命中率高。
工程要点:缓存以精确前缀匹配(哈希对比),中间改一个字后面全部失效——模板版本管理要克制(频繁改 System Prompt = 主动放弃缓存);注意缓存 TTL(几分钟到小时级,空闲过期)与多实例的缓存路由(会话亲和到同实例提升命中)。容量规划里这是一等公民:同样功能,缓存命中的架构成本差 3~5 倍。
💻 全栈开发专家
Token 缓存(Prompt Caching):厂商把请求的公共前缀(system prompt、长对话历史、大文档)缓存在服务端,后续请求命中前缀的部分按大幅折扣计费(通常 1 折)且降低 TTFT。主流厂商(Anthropic、OpenAI、DeepSeek、Gemini、国产多数)都支持。
原理:Transformer 对每个 token 的 KV 计算只依赖前文——前缀相同则 KV(注意力键值缓存)可复用。所以缓存以前缀精确匹配生效:请求的开头必须与缓存逐字节一致。
怎么用它降成本(我的实操要点):
- 前缀设计是架构问题:
[System Prompt](字节级稳定:不放日期、不放用户名)
[工具定义](稳定)
[长上下文:RAG 文档/历史对话](稳定部分)
[当前用户消息](变化的内容放最后)- 踩过的坑:system prompt 里放
当前时间或变量导致每请求前缀不同,缓存全 miss——动态内容移到消息尾部;JSON 序列化的 key 顺序不稳定也会破坏前缀(序列化要有序); - 显式声明(Anthropic 需
cache_control标记缓存点;OpenAI 自动但要求前缀 ≥1024 token); - 收益量级:Agent 多轮对话场景(历史越来越长)输入成本降 50%~90%;RAG 场景把「文档」前置也能吃到;
- TTL 注意:缓存几分钟到一小时不等(Anthropic 可显式续期),低频任务可能命中不了;
- 配套监控:看 API 返回的
cached_tokens字段,做命中率看板——命中率掉了一般是有人改了 system prompt。
一句话:这是 LLM 应用性价比最高的单项优化,不改模型不改逻辑,只调整消息排布。