首页 › cost-hacks › 复用即免费:缓存命中的三把暗锁

如果你每天往同一个 API 里塞一份 8000 token 的系统提示词,跑一万次,光"重复过路费"一年就能烧出一台顶配 GPU 的钱。但你大概率不知道:Anthropic 和 OpenAI 早就给这笔重复输入留了"退费窗口"——只要请求长得对,输入 token 能按一折(Anthropic)或五折(OpenAI)计费。这扇窗口叫 prompt caching,可它默认是半开的,九成的人没踩对开关。本文把"让一次计算的成果被反复白嫖"的三把暗锁一次拆开:提示词缓存、批处理半价、缓存断点与 TTL。读完你会知道,为什么同样是调 API,有人按原价付,有人按一折付,差距全在"复用率"这三个字上。

核心信息差:价格表里藏着的"复用折扣"

打开任何一家的 API 定价页,你看到的都是"输入价 X / 输出价 Y"。但这张表是三档价格的简化版,真实存在第三、第四档:

计费档位 Anthropic(Claude) OpenAI(GPT 系列)
普通输入 1.0× 1.0×
缓存写入(cache write) 1.25× 1.0×(不额外收费)
缓存命中读(cache hit) 0.1×(一折) 0.5×(五折)
批处理(batch,24h 内异步) 0.5×(输入+输出均五折) 0.5×(输入+输出均五折)

注意三个反直觉点,它们正是信息差所在:

  1. Anthropic 缓存写入要贵 25%。很多人一看"写入加价"就关掉了,结果把一笔"先亏 25%、之后每次省 90%"的稳赚生意做成了全程原价。
  2. OpenAI 缓存默认开启、零配置,但你若没把 prompt 排成"稳定前缀 + 变化后缀",命中率会卡在个位数,等于白嫖失败。
  3. 批处理是统一五折,不挑内容,只挑"能不能等"。能等的离线任务(数据标注、批量翻译、日志摘要)直接砍一半。

三把锁的设计哲学是同一句话:模型不该为重复的思考重复付费。你只要把请求排成"可复用"的形状,折扣自动到手。

暗锁一:Prompt Caching——命中即一折,写一次贵 25%

这是收益最大、也最容易被错过的一把锁。机制很简单:把你 prompt 里不变的前缀(系统提示、长文档、few-shot 示例、工具定义)标成可缓存,模型算完一次后把中间状态(KV cache)留在显存里。下次只要前缀完全匹配,就直接复用,输入 token 按一折计费。

Anthropic 的开关长这样(在 messages 里加 cache_control):

{
  "system": [
    { "type": "text", "text": "<你那份8000 token的系统提示>" },
    { "type": "text", "text": "<长文档/RAG上下文>", "cache_control": {"type": "ephemeral"} }
  ],
  "messages": [...]
}

OpenAI 不需要任何参数,自动按前缀哈希匹配。你唯一要做的是把稳定内容放前面、把每次变化的用户输入放最后。很多人把"今天的日期""用户ID"塞在 prompt 最开头,结果每次前缀都变,缓存全废——这是命中率杀手第一名。

真实省钱算账(以一份 8000 token 系统提示、单次请求为例,先看倍数,再看钱):

换算成美元(以 Claude 中端模型输入约 $3/MTok 为例):800 万 token 原价约 $24,缓存后约 $2.6。一个改动省下 $21,跑得越多省得越狠。 这就是为什么做 RAG、做 agent 的团队一旦把上下文固定下来,账单能断崖式下跌。

踩坑清单:

暗锁二:Batch API——能等半小时,就白砍一半

如果你的任务"不是人在等回复",比如凌晨跑的语料清洗、给一万条评论分类、批量生成商品描述——直接走批处理,输入输出统一五折,且和缓存折扣可叠加理解(批处理本身是对"不占用实时算力"的补偿)。

适合谁:内容农场、数据标注团队、SEO 批量生成、邮件/评论分类、文档批量摘要。这些场景的共同点是——延迟不是成本,准确率和单价才是。把"实时"换成"24 小时内",立省一半,这是最不需要技术含量的砍价。

不适合谁:客服对话、实时编码补全、用户在场等待的任何交互。强行 batch 体验崩盘,得不偿失。

暗锁三:断点 + TTL——让缓存活更久,命中更多

缓存锁开了不等于命中高,真正决定命中率的是两件事:缓存能活多久(TTL)和你怎么切缓存边界(断点)。

延长寿命:Anthropic 在 2024 年底推出了 1 小时 TTL(ephemeral 的扩展档),代价是缓存写入价更高、且缓存不足 10 分钟按 10 分钟计费。但对"上下文稳定、用户会隔几十分钟回来"的 agent 场景(比如一个长期项目里反复追问同一份代码库),1 小时 TTL 能把命中率从"基本 miss"拉到"稳定复用"。判断标准很简单:两次相关请求的间隔是否大概率超过 5 分钟?是,就上 1 小时档。

切对边界:一次请求最多可以打 4 个缓存断点(Anthropic)。聪明做法是把 prompt 切成"超稳定层 / 项目层 / 会话层 / 单轮层":

这样即便用户每次问不同问题,前三层都稳定命中,只有最后一层按原价算。命中率从"看运气"变成"结构性的 80%+"。

下面这张图把三把锁的决策路径串起来,照着走就能判断"这一次请求该走哪条省钱路径":

flowchart TD
    A["新请求进来"] --> B{"用户在场等回复吗?"}
    B -->|"否,可等24h"| C["暗锁二: Batch API<br/>统一五折"]
    B -->|"是,要实时"| D{"prompt有稳定前缀吗?<br/>系统提示/长文档/few-shot"}
    D -->|"有"| E["暗锁一: Prompt Caching"]
    D -->|"没有"| F["原价 1.0×<br/>无救,先重组prompt"]
    E --> G{"两次相关请求间隔>5分钟?"}
    G -->|"是"| H["暗锁三: 上1小时TTL<br/>+ 多断点分层"]
    G -->|"否"| I["默认5分钟TTL够用"]
    H --> J["命中: 0.1× 输入价<br/>一折复用"]
    I --> J
    C --> K["五折 + 批内缓存可叠加"]
    J --> L["复用即免费 ✓"]
    K --> L

信息差总结:你知道的 vs 别人闷声省的

维度 多数人的做法(原价) 闷声省的人(一折/五折)
系统提示词 每次原价重算 标 cache_control,命中一折
前缀顺序 用户ID/日期放最前 稳定内容放前,变化放后
离线批任务 实时同步调用 改 Batch API,统一五折
长上下文 agent 5 分钟 TTL 不够就放弃 开 1 小时 TTL,跨轮复用
缓存分层 整段一个缓存点 4 断点分层,命中率 80%+
近似重复 query 每条都打模型 前置语义缓存(如 GPTCache)命中直接返回

最后一行是"第四把隐藏锁":当请求是自然语言且高度重复(客服 FAQ、商品咨询),别急着打大模型,前面挂一层语义缓存(GPTCache、LiteLLM cache、Portkey),把"今天营业到几点"的 1000 种问法都命中到同一条缓存答案,连一折都不用付——直接零成本返回。这层适合读多写少、容错高的业务。

行动指南:今晚就能上手的四步

  1. 查命中:先翻你最近 7 天的 API 日志,找出"系统提示 / 上下文几乎不变"的高频调用——这是省钱的头号标的。多数网关(LiteLLM、Cloudflare AI Gateway、Portkey)后台直接显示 cache hit rate。
  2. 调顺序:把每条 prompt 重排成"稳定前缀 + 变化后缀",日期、用户ID、随机种子统统挪到最后。仅此一步,OpenAI 自动缓存的命中率通常能从个位数跳到 50%+。
  3. 打断点:在 Anthropic 调用里按"规范层 / 文档层 / 会话层"打 2–3 个 cache_control,间隔长的场景上 1 小时 TTL。
  4. 挪批处理:把所有"不急着要"的任务(夜间数据清洗、批量翻译、评论分类)切到 Batch API,统一五折。配合缓存,综合成本能压到原价的 15–25%。

一个心智模型收尾:API 计费的本质不是"调了多少次",而是"算了多少新东西"。 你让模型反复重算同一段系统提示,它就按原价收你"思考费";你让它复用上次的思考,它就按一折收你"过路费"。三把暗锁,锁的都是同一件事——别为重复的思考重复买单。 参考来源(官方机制文档,可作为配置入口):

  1. 下一步计划: - P0:本周内(2026-07-18 后)联网校验文中所有定价倍数与 TTL 数值是否仍为最新(尤其 Anthropic 是否调整了 1.25× 写入价与 1 小时 TTL 的 10 分钟计费门槛)。 - P1:下一轮(Round 5 = trending 社区热议)可转向 Reddit/HN 上对"缓存命中率玄学""batch 把体验做崩"的真实吐槽,补本轮的社区视角。 - P2:若需要,可把"缓存断点分层模板"沉淀成一份可直接粘贴的 system prompt 配置片段。

  2. 注意事项: - 数据时效风险:因联网不可用,倍数为稳定的定价结构、绝对美元为"以中端模型为例"的示算,正式发布前建议复核实时价格表。 - 断点数量上限(Anthropic 4 个)、最小缓存 token 可能随模型迭代调整,落地前以官方文档为准。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入