您的智能体工作流的缓存保活成本高出8倍
摘要
一项跨Anthropic、OpenAI、Gemini和DeepSeek的详细测量研究发现,传统的30秒提示缓存保活频率过高8倍;4分钟间隔是最优的,并且只有在长时间空闲间隔下,Anthropic的缓存才能节省成本。
<p><a href="https://lobste.rs/s/jmuobj/your_agentic_workflow_s_cache_keepalive">评论</a></p>
查看缓存全文
缓存时间: 2026/07/21 22:44
# 你的智能体工作流的缓存保活成本高出8倍
来源:https://blog.mempko.com/keeping-the-kv-cache-warm-measuring-prompt-cache-eviction-across-anthropic-openai-and-google/
每个人都每30秒ping一次他们的提示缓存。这高出8倍,而在我测量的十分钟暂停中,四大供应商中只有一家通过保活节省了成本。测量了Anthropic、OpenAI、Gemini和DeepSeek的保活经济性。
你的智能体工作流的缓存保活成本高出8倍提示缓存保持活跃率与空闲间隔缓存保活是所有智能体构建者都同意的优化方式,而且几乎每个人都在错误的设置下运行。
惯例是每30秒ping一次。这个惯例的成本比必要高出8倍,而更大的惊喜是:在我测量的十分钟暂停中,**四大供应商中只有一家通过保活节省了成本**。我在Anthropic、OpenAI、Gemini和DeepSeek上进行了测量,使用了一个能证明自身时机的工具,结果重新排列了我的一些信念。正确的间隔大约是4分钟,而不是30秒。在我测试的每个供应商上,30秒的保活*赔钱*了(在长间隔下)。在Anthropic上,4分钟的保活节省了真金白银。在DeepSeek上它买的是延迟,而不是美元。在OpenAI和Gemini上,在这些间隔下它什么也没买到。是否保持缓存温暖是一个按供应商决定的决策,而不是通用的。
## 吃掉缓存的暂停
供应商提示缓存是API中最好的交易之一:发送一个服务器刚才处理过的前缀,你支付大约输入价格的十分之一,并跳过大部分预填充延迟。但缓存在几分钟内过期,而智能体工作流是其最糟糕的用户。智能体思考、行动、等待。它发起一个请求,运行构建或测试套件,或者等待人工批准十分钟,然后才发送本可重用(现在很大的)对话前缀的后续请求。暂停比缓存的TTL更长。后续请求需要支付全价、全延迟,而在智能体规模下,这是一个真实的成本项。
防御措施众所周知。在暂停期间定时重新发送完全相同的前缀;每次读取都会刷新TTL。Aider在2024年推出了这个功能,Anthropic的文档推荐它,社区帖子也计算出了Anthropic的成本机制,甚至在纸上得出了4分钟的间隔。结果发现,这个民间传说给出了正确答案。但它没有测量。以上都是实践和算术。以下是实际测量:四个供应商,两种前缀大小,最长十分钟的空闲间隔,三次独立运行,每次调用都带有时间戳。
在此致谢项目的起点:在贝尔维尤的一个会议室里,在AgentSys会议上,我看到了Haiying Shen和Simon Peter展示的CacheWise (https://arxiv.org/abs/2606.16824?ref=blog.mempko.com),他们关于编码智能体KV缓存管理的研究。他们的轨迹分析从服务端角度展示的正是上述问题:智能体会话重用巨大的前缀,而天真的驱逐会破坏它们。他们的问题是*服务器*应如何为智能体管理缓存;我的问题变成了*客户端*自己能做什么。保活是客户端的答案,而这项研究是我对启发灵感的感谢。
## 供应商分为三种机制
四个面板显示缓存保持活跃率 vs 空闲间隔:Anthropic基线在600秒处断崖下降,DeepSeek基线有损耗,OpenAI和Google基线具有粘性保持活跃率(空闲后请求命中缓存的样本比例)vs 空闲间隔,100k前缀。虚线:空闲基线。实线:30秒保活。- **硬TTL(Anthropic)**。基线在5分钟内保持活跃,在10分钟时完全失效:三次运行中48个样本有0个命中。保活保持40个样本中的40个。这里的驱逐就像断崖一样,正如文档所述,保活是一个金钱决策。
- **有损耗的(DeepSeek,通过DeepInfra)**。基线在每个间隔都有泄漏,在10分钟时消失(48个样本中4个命中)。保活在10分钟处保持42个样本中的42个,但在1分钟间隔时自身有约20%的未命中,因为路由器端点分配并不等于机器分配:ping热了一个机器,后续请求落在了另一个机器上。
- **有粘性的(OpenAI,Google)**。基线在10分钟后大部分时间仍然存活(OpenAI 48个样本中39个,Google 24个样本中20个)。没什么需要防御的。保活只是消除方差,在短间隔下纯粹是浪费。
## 间隔是全部关键
以下是保活的整个经济学,它是确定的算术:
1. **一次ping花费读取价格**(约输入价格的10%),每次间隔τ。保持前缀活跃的成本是0.1×每τ。
2. **一次重新预填充花费100%**(Anthropic为125%,因为它收取缓存写入费用)。
3. **因此每小时花费随1/τ下降**,而间隔除了TTL安全之外不提供任何好处。最优间隔是安全小于TTL的最大间隔:τ* = TTL − 余量 ≈ **4分钟**(在Anthropic的5分钟TTL下)。
4. **盈亏平衡点是空闲 ≈ τ(w/r − 1)**:在Anthropic价格下约为46分钟,OpenAI和DeepSeek为36分钟,Google为12分钟(其缓存读取是0.25×,而不是0.1×)。超过这个点,停止ping:让缓存失效并支付重新预填充。
最后一个规则值得内化,所以这里把它作为保险来理解。每次ping是你支付的一笔保费,以避免一次索赔:重新预填充。在Anthropic上,保费是输入价格的0.1×,索赔是1.25×,所以索赔价值12.5份保费。每4分钟支付一份保费,你可以支付十二份保费而保费总额不超过索赔。十二份保费相隔4分钟就是**46分钟**的暂停。这就是界限。
具体来说,在100k token的Anthropic前缀上(按标价约$0.30的输入):每次ping花费$0.03,冷重新预填充花费$0.38。
- **10分钟暂停**:两次ping,$0.06,你避免了$0.38。保持温暖。你节省了6倍。
- **46分钟暂停**:十一次ping,$0.33,对比$0.38的重新预填充。大致持平。这是界限。
- **1小时暂停**:十五次ping,$0.45,为了避免$0.38的重新预填充。停止ping。让缓存变冷,回来后支付重新预填充。
公式告诉你,一旦你输入自己的价格和间隔,你自己的界限在哪里。关键是*有*一个界限,它比人们假设的更近,超过这个界限,纪律性的做法是停止为一个你永远不会索赔的保单支付保费。
每个人都在复制的30秒惯例的盈亏平衡点约为6分钟,这就是为什么它在所有四个供应商上的10分钟间隔下都赔钱。我也运行了4分钟的分支:ping在+240.1秒和+480.1秒触发(0.1秒漂移),保持24个样本中的23个温暖,成本比30秒分支低**7.8倍**,而温暖程度相同。这个惯例并不谨慎。它只是昂贵。
600秒空闲,100k前缀让其失效保活30秒保活240秒Anthropic Sonnet 4.5$0.667(冷)$0.867(赔钱)**$0.414(节省38%)**OpenAI GPT-5.1$0.115(通常已经温暖)$0.317(赔钱)$0.136(赔钱)DeepSeek V3.2$0.043(冷,5.4s TTFT)$0.249(赔钱)$0.060(赔钱;但速度快约3倍)Gemini 2.5 Pro$0.131(通常已经温暖)$0.649(赔钱)$0.186(赔钱)再读一遍最后一列:**在这个间隔下,Anthropic是唯一一个保活节省成本的供应商。**这不是定价的巧合。Anthropic是唯一拥有所有三个要素的供应商:硬TTL(10分钟时驱逐是确定的,所以保险总是赔付),重新预填充花费额外费用(其1.25×缓存写入溢价提高了你避免的成本),以及便宜的0.1×读取(保费低)。其他每个供应商都破坏了一个环节:OpenAI和Gemini在这些间隔下很少驱逐(没什么可保的),DeepSeek的重新预填充花费四美分(没什么值得保的),而Gemini的0.25×读取使保费昂贵。不过,这个限定条件很重要:这是一个测量点,不是整个曲线。在15或20分钟的暂停时,超过OpenAI的粘性窗口但在其36分钟盈亏平衡点内,其保活也可能支付得过来;盈亏平衡公式预测了这一点,而我还没有测量。公式和数据一致同意的是每个供应商的支付区间开始和结束的位置,而Anthropic的区间最宽且最确定。它恰好也是运行大多数智能体工作负载的供应商,在长会话中节余会累积:TTL之后的每次工具调用都是另一个避免的重新预填充。
## 何时根本不保活
这部分让我惊讶,也是民间传说遗漏的部分。**OpenAI**:缓存具有粘性(10分钟时48个样本中39个温暖,无需帮助),所以保活保险的是方差,而不是驱逐;在这些间隔下不值得ping。**DeepSeek**:冷重新预填充非常便宜(100k为$0.043),以至于即使是4分钟的保活也只能在成本上持平。它买的是延迟(5.4s → 1.4–2.0s到第一个token),所以是延迟策略,而不是金钱策略。**Gemini**:此策略的最坏情况,我测量了以确保:即使是4分钟的保活也比让缓存失效多花费40%(100k时为$0.186 vs $0.131),因为Gemini结合了粘性基线(没什么可保的)、0.25×缓存读取(昂贵的保险)、没有亲和力杠杆(命中是一场机器彩票,有一分钟的提交延迟)以及12分钟的盈亏平衡点。处方是按供应商而定的,不是通用的。
## 什么是确定的,以及我相信什么
确定的:上面的算术,测量的保留曲线,测量到的7.8倍,以及盈亏平衡点区间。你可以对照数据检查这些,数据随工具公开。
相信的:当每个人都采纳这个建议时会发生什么。缓存层的驱逐策略根据预期重用进行排名;保活制造了最近使用,所以一旦每个客户端都ping,LRU就没有什么可排名的了,而且该层对所有人都退化了。今天的驻留按每次读取收费,而不是按每个token-小时持有收费,所以每个运营商的理性租金支付给每个其他租户施加了未定价的成本。我的预测:保活采纳将迫使供应商直接计量驻留。Google的显式缓存已经按token-小时收费,而Anthropic的1小时层以2×写入是朝同一方向迈出的一步。套利是真实的,并且它有到期日。
## 策略
- **仅在有限、可能重用的暂停期间保持温暖**(工具调用、批准等待),τ* = TTL − 余量。在Anthropic上约为4分钟,在1小时层上约为50分钟。
- **超过盈亏平衡点后放弃保活**(在Anthropic价格下约为46分钟)。让缓存失效,重新预填充,走开。
- **了解你的供应商的机制。**在今天的价格和间隔下:Anthropic省钱,DeepSeek只买延迟,OpenAI和Gemini什么也不买。一个诚实的说明:OpenAI的TTL是“5到10分钟”,而我们10分钟的间隔位于其粘性窗口内;在某个超过该窗口的地方可能有其保活支付的区间。我们没有测量它,所以我们不声称它。
- **在TTL以下跳过保活**,并且在缓存具有粘性(OpenAI、Gemini)或重新预填充非常便宜(DeepSeek,除非你在购买延迟)的供应商上跳过。
- **永远不要让已结束的会话保持温暖。**pi智能体工具 (https://github.com/mempko/pi?ref=blog.mempko.com) 正好实现了这一点:仅当工具批处理运行时才ping,默认关闭。
保持温暖,短暂地,以正确的频率。少ping一些。
## 参考文献
- Shubham Tiwari, Tapan Chugh, Nash Rickert, Simon Peter, Ratul Mahajan, Haiying Shen。CacheWise:理解工作负载并优化KVCache管理以高效服务LLM编码智能体 (https://arxiv.org/abs/2606.16824?ref=blog.mempko.com)(启发了这个项目的演讲)。
- Maxim Khailo。保持缓存温暖支付:智能体工作负载的保活经济学 (https://mempko.com/data/kvcache.pdf?ref=blog.mempko.com)(论文,PDF)以及工具 + 数据 (https://github.com/mempko/pi?ref=blog.mempko.com)(scripts/cache-research)。
- Aider AI。变更历史 (https://github.com/Aider-AI/aider/blob/main/HISTORY.md?ref=blog.mempko.com)(缓存保活,v0.53.0,2024)。
- Anthropic。提示缓存 (https://platform.claude.com/docs/en/build-with-claude/prompt-caching?ref=blog.mempko.com)(预温暖指南)。
- Veritas Supera。我们教我们的AI智能体休息喝咖啡 (https://vsits.co/coffee-break-cache-keepalive/?ref=blog.mempko.com)(4分钟间隔,纸上)。
- Brandon Wie。Anthropic提示缓存TTL + 成本机制 (https://brandonwie.dev/posts/anthropic-prompt-cache-ttl?ref=blog.mempko.com)。
- OpenClaw。缓存保持温暖ping提案 (https://github.com/openclaw/openclaw/issues/62475?ref=blog.mempko.com)(TTL比例间隔)。
- 不要破坏缓存 (https://arxiv.org/abs/2601.06007?ref=blog.mempko.com)(为智能体任务缓存什么,一个不同的问题)。
- 提示缓存颠簸 (https://tianpan.co/blog/2026-04-28-prompt-cache-thrashing-multi-tenant-noisy-neighbor?ref=blog.mempko.com)(公共资源负外部性)。
相似文章
@LangChain: OpenAI的提示缓存使请求成本降低90%,但缓存密钥的上限约为每秒15次请求。@HeggieCon…
OpenAI的提示缓存将请求成本降低了90%,但缓存密钥限制为每秒15次请求。Unify GTM构建了一个自定义路由解决方案来绕过这个限制,实现了95%的缓存命中率。
停止缩短你的提示词。六个智能体,97-99%的缓存命中率——以及为什么标准建议是错误的。
文章指出,通过提示缓存,较长且稳定的提示可能比频繁更改的短提示更便宜,分享了运行具有高缓存命中率的AI智能体的见解。
提示缓存真的能为AI代理节省可观成本吗?
一个实践性讨论,质疑提示缓存是否能为生产环境中的AI代理带来有意义的成本节约,审视了现实因素如缓存命中率、路由策略和规模。
Tokenomics:Claude缓存的62.5分钟法则(8分钟阅读)
对Anthropic为Claude提供的提示缓存的成本分析得出62.5分钟的盈亏平衡规则:如果你预计在62.5分钟内再次需要缓存,请刷新它,否则让它过期以节省成本。
推测性缓存预热:在输入提示词时预热缓存,节省10-20秒等待时间
推测性缓存预热在用户输入提示词时预先处理系统提示词和工具数组,从而在本地LLM推理中节省10-20秒的等待时间。该功能是用于本地AI的开源OpenFox框架的一部分,可在不破坏缓存一致性的前提下提升交互性。