![]()
9倍成本差距。这不是优化,是生死线。
Anthropic的Claude Code团队最近公开了一个内部秘密:他们把「提示缓存命中率」当成产品生命线。这个数字每掉0.1%,工程师群里就会响起警报。不是夸张——他们真的用Wu-Tang Clan的歌词当团队 motto:「Cache Rules Everything Around Me」。现金曾经统治一切,现在换成KV张量(Key-Value tensors,模型预填充阶段计算出的关键中间结果)说了算。
大多数开发者正在无意识地把钱扔进火里。6000 token的系统提示、12个工具定义、15轮对话——如果你命中缓存,账单是150美元/月;如果你没命中,1350美元。同样的功能,9倍价差。没人告诉你,因为提示缓存被藏得太深,深到连用它的人都不一定知道存在。
缓存到底是什么:给金鱼的记忆做手术
每次调用Claude API,系统要组装一个四层结构的提示:系统提示(角色设定、安全规则)、工具定义(函数签名和描述)、对话历史(之前的来回)、用户新消息。没有缓存时,Claude像一条金鱼——每次都要把前面8000 token的系统提示当成新书从头读起,把15个工具定义重新理解一遍,把40轮对话历史全部重算。
提示缓存做的,就是把「预填充阶段」算好的KV张量存下来。这些张量是模型理解提示的「中间笔记」——数学上很重,计算上很贵,但内容完全可复用。下次请求时,如果开头部分和缓存完全匹配,系统直接调取笔记,只处理新增的那一小段。
结果是:命中缓存,成本降到1/10,延迟砍掉85%。没命中,全额付费,全额等待。
Claude Code团队的原话是:「这不是nice-to-have的优化,是load-bearing wall(承重墙)。」拆掉它,整栋房子塌掉。
为什么你一直在「破缓存」
![]()
缓存的匹配规则极其苛刻:必须前缀完全匹配,错一个字符就失效。这意味着大多数开发者自以为安全的操作,实际上在亲手砸自己的缓存。
最常见的自杀行为:动态时间戳。很多人在系统提示里塞了「当前时间是{{timestamp}}」,每次请求都变,缓存永远命中不了。或者用户ID、会话ID、随机数——任何动态注入的前缀内容都是缓存毒药。
工具定义的顺序变动也会破缓存。你以为只是调了下函数排列,Claude看到的却是完全不同的前缀字符串。对话历史的截断策略同理:如果你每次按固定轮数滑动窗口,新对话的开头永远在变,缓存键跟着变。
一位开发者在Hacker News吐槽:「我花了两周排查为什么生产环境比测试环境贵8倍,最后发现是测试环境没开缓存监控。」
Claude Code团队的监控仪表盘把这个指标放在最显眼位置。命中率掉0.1%,PagerDuty(运维告警系统)就会响。他们的逻辑很简单:缓存失效不是成本问题,是产品可用性问题——延迟飙升85%的用户体验,等同于服务降级。
怎么不踩坑:把动态内容往后挪
缓存只检查前缀匹配。这意味着设计提示的核心策略是:静态内容放前面,动态内容塞后面。
系统提示的主体——角色设定、安全约束、核心知识——应该完全固定。时间戳、用户上下文、临时变量,全部移到用户消息层或单独的上下文块。工具定义按固定顺序排列,永远不要动态排序。对话历史的滑动窗口,考虑从后往前截断而非从前往后,让早期轮次保持稳定。
Anthropic的文档里藏了一个细节:缓存条目存活时间5分钟,可主动续期。对于长会话,每4分钟发一个「ping」请求(空消息或轻量调用)就能维持缓存活性。这个设计明显是为Claude Code这类持续交互场景优化的——IDE里的AI助手不能让用户等5秒才响应。
![]()
成本结构上,缓存写入本身有费用——约为正常输入token的1.25倍。但写入一次、读取多次,数学上很快回本。Claude Code团队的内部阈值是:同一会话内超过2轮交互,缓存就划算。
一位独立开发者分享了他的重构结果:把动态用户ID从系统提示移到工具调用的参数里,月账单从890美元降到97美元。改动代码12行。
行业暗战:缓存成了新的基础设施战场
提示缓存不是Anthropic独有。OpenAI去年推出类似功能,Google的Gemini也有上下文缓存,但实现细节和定价策略差异巨大。Anthropic的激进之处在于:他们把缓存做成了Claude Code的默认行为,而非可选开关。
这背后是AI基础设施的残酷算术。大模型API的成本结构里,输入token占大头,而输入token的成本里,预填充计算又占大头。缓存把预填充变成摊销成本——第一次贵,后面几乎免费。对于多轮对话产品,这是盈亏分界线。
Claude Code作为面向开发者的AI编程工具,平均会话轮次远超普通聊天场景。没有缓存,这个产品在经济模型上不成立。Anthropic的工程师在推文中透露,他们内部把缓存命中率纳入SLO(服务等级目标),和可用性、延迟并列。
更隐蔽的影响在生态层面。提示缓存的设计偏好,正在重塑开发者写prompt的方式。静态前置、动态后置的结构,和传统的模板注入思维截然相反。新一代的「缓存原生」提示工程正在形成——不是让模型理解得更好,而是让系统匹配得更快。
一位前OpenAI工程师在评论区写道:「我们2023年就在内部讨论这个,但产品化优先级被推理优化挤掉了。Anthropic赌对了场景——开发者工具才是缓存的第一战场。」
你的提示结构,现在是一个性能问题了吗?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.