Foreverse Research · 数据报告
前缀缓存,
与你的真实聊天成本
同一段 15 轮的角色扮演聊天、同一个模型、同一把 Key、逐字相同的消息脚本:在裸酒馆里花 $0.0241,在我们修复前的 App 里花 $0.0664——2.8 倍。这笔差价几乎没有买到内容,多花的钱全部交给了「重复发送的前文没吃到折扣」。这份报告把这笔账拆开:折扣是什么、谁吃到了、什么在杀它、你怎么自查。
评测数据采集:2026-07-23 至 07-24 · 牌价快照:2026-07-24 · 页面发布:2026-07-26
一分钟读完的账
- 主流服务商对「与上一轮逐字相同的请求开头」自动按折扣计费:DeepSeek 折到全价的 2%,Anthropic、OpenAI、Google 约 10%,xAI、智谱、千问在 15-20%(2026-07-24 牌价)。不用申请,唯一条件是开头逐字节不变。
- 命中率不是运气,是客户端行为:同模型、同 Key、逐字节相同的脚本,裸酒馆出厂 91.5%,我们修复前 46.5%。同样聊 15 轮,钱是 2.8 倍(2026-07 四方实测;修复后 89.9% 追平,已随版本发布)。
- 同一个 App 里,角色卡结构又能让命中率差三倍:世界书全靠关键词触发的卡 22.6%,带两条常驻词条的卡 74.3%(修复前实测)。你的卡在替你决定账单。
- 按同口径外推到 100 轮:46.5% 形态一场 ¥1.47,89.9% 形态 ¥0.39(DeepSeek V4 Flash)。历史越长差距越大:15 轮实测差 2.8 倍,100 轮拉到 3.8 倍。
- 杀缓存的动作只有一类:让请求开头变了。四个实测病例:世界书注入位漂移、动态内容进了会被归并置顶的 system、插件洪水与中部注入、窗口顶满后的滑窗截断。
- 输出 token 从来不吃缓存折扣。输出定价越高的模型,缓存能救的账单比例越小:同样把命中率从 46.5% 修到 89.9%,DeepSeek 的账单降 74%,Claude Sonnet 4.6 只降 60%,它的钱大头在 $15/M 的输出上。
前缀缓存是什么,折扣有多深
前缀缓存(prompt caching)是服务商的自动折扣:这一轮请求里、从第一个字节起与上一轮逐字相同的部分,按「缓存读价」而不是全价计费。DeepSeek 的缓存读价是全价输入的 2%,Anthropic、OpenAI、Google 约 10%。不用申请、不用改代码,响应的 usage 字段里直接回报这一次命中了多少。
角色扮演和长文聊天是这笔折扣的最大受益场景,因为每一轮都把全部历史重发一遍:第 100 轮时,前 99 轮的内容全是「重复前文」,理论上账单里九成以上的输入 token 都该按折扣价走。反过来,三五轮的短问答吃不到多少。缓存是长聊天的账单决定项,不是短问答的。
十二款常用模型的缓存读价(牌价快照 2026-07-24)
| 模型 | 供应商 | 全价输入 $/百万 token | 缓存读价 $/百万 token | 命中价占全价 |
|---|---|---|---|---|
| DeepSeek V4 Flash | DeepSeek | $0.14 | $0.0028 | 2.0% |
| DeepSeek V4 Pro | DeepSeek | $0.435 | $0.003625 | 0.8% |
| Claude Sonnet 4.6 | Anthropic | $3 | $0.3 | 10.0% |
| Claude Opus 4.8 | Anthropic | $5 | $0.5 | 10.0% |
| GPT-5.6 | OpenAI | $5 | $0.5 | 10.0% |
| Gemini 3.1 Pro Preview | Google Gemini | $2 | $0.2 | 10.0% |
| Gemini 3.5 Flash | Google Gemini | $1.5 | $0.15 | 10.0% |
| Kimi K3 | Moonshot Kimi(国际) | $3 | $0.3 | 10.0% |
| Grok 4.5 | xAI Grok | $2 | $0.3 | 15.0% |
| GLM-5.2 | 智谱 GLM | $1.4 | $0.26 | 18.6% |
| Qwen3.7 Max | 阿里百炼(国际) | $2.5 | $0.5 | 20.0% |
| MiniMax-M3 | MiniMax | $0.3 | $0.06 | 20.0% |
牌价以各家官网为准,此处为 models.dev 快照。有的家对缓存写入另外收费、缓存有效期从几分钟到几小时不等,这两项本报告不建模,见「诚实边界」。
同一家的不同档位折扣也可能不同(DeepSeek V4 Pro 的命中价折到 0.8%);换模型前先看这一列,它决定「修缓存」在你的账单上值多少钱。
同一段聊天的四张账单:四方实测
2026 年 7 月我们跑了一场四方对比评测:裸酒馆(SillyTavern v1.18.0 出厂配置)、满配酒馆(社区最流行的预设加插件组合)、Foreverse 普通模式、Foreverse 智能演绎,同模型(deepseek-v4-flash)、同一把 Key、逐字节相同的 15 轮消息脚本,每次调用都经过同一个计量网关记账。第一个被抓出来的问题是我们自己的。
缓存命中率与成本(15 轮会话,3 卡 × 3 重复)
| 裸酒馆 | 满配酒馆 | Foreverse 普通 | Foreverse 智能演绎 | |
|---|---|---|---|---|
| 缓存命中率 · 修复前(2026-07-23) | 91.5% | 74.6% | 46.5% | 42.3% |
| 缓存命中率 · 修复后(2026-07-24) | — | — | 89.9% | 88.3% |
| 9 格合计成本 · 修复前 | $0.0241 | $0.0676 | $0.0664 | $0.0898 |
| 9 格合计成本 · 修复后 | — | — | $0.0278 | $0.0328 |
| 输入体量(相对裸酒馆) | 1× | 2.46× | 1.16× | 1.59× |
| 上游空回复(照常计费) | 0/135 | 12/135(8.9%) | 0/135 | 0/142 |
普通模式的输入体量只比裸酒馆多 16%,钱却是它的 2.8 倍。差距几乎全部来自命中率:在 DeepSeek 的计价下,miss 的单价是 hit 的 50 倍,命中率的差直接变成钱。
46.5% 是这场评测先打了我们自己的脸的数字,如实保留;病根(世界书注入位置逐轮漂移)当晚定位,修复随正式版本发布,复验 89.9% 追平裸酒馆,同量对话成本降 58-63%。
同一个 App、三张卡,命中率差三倍(修复前,普通模式)
| 角色卡的世界书结构 | 缓存命中率 |
|---|---|
| 10 条词条,全部关键词触发(原创世界观卡) | 22.6% |
| 12 条词条,全部关键词触发(志怪卡) | 27.7% |
| 2 条常驻 + 5 条触发(现代生活流卡) | 74.3% |
同链路、同安装包、同设备,唯一的结构差是常驻词条让请求开头逐轮恒定。触发式词条的激活集每轮进出,插入点之后的字节全部作废。修好注入层之后,三卡差距从 51.7 个百分点收敛到 5.8 个百分点。
修复前后的逐轮命中曲线(同一张卡、同一套 15 轮脚本,%)
| 轮次 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 修复前(27.7%) | 0 | 0 | 91 | 14 | 13 | 15 | 14 | 11 | 13 | 12 | 12 | 11 | 94 | 8 | 73 |
| 修复后(89.9%) | 98 | 94 | 93 | 92 | 94 | 19 | 93 | 94 | 96 | 94 | 95 | 93 | 95 | 95 | 95 |
修复后唯一的低谷(第 6 轮 19%)是一条新设定词条第一次进场:「首进必 miss」是设计内的一次性代价,不是病。判断健康看形态:满地锯齿是病,孤立低谷之后迅速回稳是正常代谢。
聊 100 轮,各花多少
把实测命中率代入与我们计算器完全同款的公式(起始 2,000 token 的角色卡与系统提示、每轮 120 token 输入加 350 token 回复、DeepSeek V4 Flash 2026-07-24 牌价),聊 100 轮的输入加输出总账如下。这是同口径的模拟外推,不是实测;实测数据是 15 轮那组,见上一节。
| 命中率档位 | 这个档位是谁 | 100 轮总账 | 折人民币 | 相对最优 |
|---|---|---|---|---|
| 0% | 全 miss 对照 | $0.365 | ¥2.63 | 7.6× |
| 46.5% | 我们修复前 | $0.204 | ¥1.47 | 4.2× |
| 73.1% | 老用户升级后 | $0.112 | ¥0.805 | 2.3× |
| 89.9% | 修复后全新安装 | $0.054 | ¥0.386 | 1.1× |
| 91.5% | 裸酒馆出厂 | $0.048 | ¥0.346 | 1.0× |
单场 100 轮在便宜模型上是几毛到两三块人民币的事,重点是比例:这笔税每一场聊天都在交,而且轮数越多税率越高:15 轮实测差 2.8 倍,100 轮拉到 3.8 倍,因为历史在账单里的占比越来越大。
换贵模型金额等比放大,比例结构不变。官方渠道在牌价上加 50% 服务费,两条线等比抬高,省率同样不变。
还有一个容易被忽略的账:输出 token 永远按全价计费,缓存只管输入。所以输出定价越高的模型,缓存能救的比例越小。同样的 100 轮换成 Claude Sonnet 4.6(输出 $15/百万 token),46.5% 档 $4.97、89.9% 档 $2.01:命中率同样的提升,账单只降 60%(DeepSeek 降 74%),因为它的钱大头在输出上。给输出贵的模型省钱,压回复长度比修缓存更先见效。
什么在杀你的缓存:四个实测病例
前缀缓存的失效条件只有一个:请求开头变了。下面四个病例全部来自我们自己的测量,其中三个就发生在自家产品身上,修复前后都有数字。
病例一 · 世界书注入位置漂移(46.5% 的病根)
触发式世界书每轮激活的词条集不一样:这轮命中「灯楼」、下轮命中「铜哨」,注入区的内容随之进出,插入点之后的全部字节作废重算。证据就是上一节的三卡分化:卡里带常驻词条、激活集稳定的 74.3%,全触发、逐轮漂移的 22.6%,同一个 App 差三倍。
修法是两件事:把激活过的词条驻留在场(会话内不再滚出),加上注入位置钉死。复验从 27.7% 回到 89.9%,与裸酒馆出厂形态持平。顺带说明一句:裸酒馆的 91.5% 正是因为它不装任何东西时提示词结构天然稳定,这一条我们是对齐它修的,不是打败它。
病例二 · 你以为在尾部的 system,其实在头部(53% 与 58% 两案)
DeepSeek 的对话模板会把消息流里所有 system 消息归并到最前面。我们用生产探针验证过:把一段 system 放在消息末尾和放在头部,命中率一字不差(97%)。于是「现在是 14:32」这类每轮变化的时刻行只要走 system 轨道,就等于每轮都改写了 prompt 的第一屏——整条历史全 miss。
我们两条产品链先后踩中同一个坑:伴侣聊天稳定态命中 53%,角色卡线上聊 58%。把动态内容挪到最新一条用户消息附近、头部只留恒定规则之后:97% 与 96-98%。这个差距随历史长度线性拉大:旧布局下 30 轮历史每轮全量重算,历史越长浪费越多。
病例三 · 插件税与中部注入(74.6% 与 39.8% 两案)
满配酒馆 74.6% 的命中率、2.46 倍的输入体量,是「插件税」的两个分量:流行预设和插件往每轮塞变化的内容,既加量又打断折扣,总成本做到裸酒馆的 2.8 倍,外加 135 轮里 12 轮上游空回复照常计费。这是配置组合的代价,不是 SillyTavern 本身的问题。
更陡的例子:给裸酒馆配上骰子能力(作者注中部注入加工具数组)之后,91.5% 直落 39.8%。深度注入、每轮刷新的检索、滚动摘要,这些往对话历史中部插内容的机制都是同一族。英文插件圈里认真的作者已经在文档里明说「滚动注入会作废你的 prompt cache」:写插件的人自己知道这笔账。
病例四 · 窗口顶满:滑窗截断是结构性死刑
上下文窗口装满之后,客户端开始从头部丢弃旧消息——开头每一轮都在动,什么装配都救不了。300 轮长会话专项里四方全碎:裸酒馆从短会话的 91.5% 掉到 14.4%,满配 41.6%(靠巨型固定前缀撑着),我们普通模式 4.9%、智能演绎 19.0%。
「别聊那么长」不算出路,真正的出路是压缩:把摘要与原文的分界钉住,两缝之间恢复逐字节稳定的前缀。我们的长会话压缩往这个方向走。代价也如实说:缝每前移一次都要付一轮重算,红利在压缩频繁推进时会打折。
自查清单:六个杀缓存的习惯
每条按「症状、怎么查、怎么办」给。前四条查你自己的配置,后两条查你的供应商和会话长度。查证的第一步永远是拿到真实命中数:响应 usage 字段里就有,测不到就修不了。
- 世界书几乎全是关键词触发,没有常驻条目。 查法:同一张卡连聊十几轮,逐轮看命中率是不是满地锯齿(我们的实测:全触发卡 22.6%,带常驻的 74.3%)。 动作:核心设定改常驻(酒馆的 constant/蓝灯),或者用会把激活过的词条驻留在场的客户端。
- 时间戳、状态栏、每轮变化的内容写进了 system 或提示词头部。 查法:导出相邻两轮的请求体,diff 开头第一屏。有的模板会把消息流里的 system 全部归并置顶,「写在末尾」不等于「生效在末尾」。 动作:动态内容挪到最新一条用户消息附近,头部只放恒定内容。我们两条链这么改完,稳定态命中从 53%/58% 回到 96% 以上。
- 用了往历史中部插内容的机制:深度注入、作者注中部深度、每轮刷新的向量检索或滚动摘要。 查法:看插件文档里有没有提缓存,认真的插件会自己警告;再不然就看装上前后的命中率差(裸酒馆配骰子:91.5% 到 39.8%)。 动作:能改深度就把注入改到尾部;改不了就接受这笔税,至少别再叠第二个同族机制。
- 频繁编辑、删除、重排旧消息。 查法:不用查,行为本身就是答案:改动点之后的缓存必然全部作废。 动作:不用改:这是功能的正当代价。知道改动的下一轮必然全 miss 就行,别为单轮命中率焦虑。
- 供应商或中转不返回命中数字。 查法:响应 usage 里找 cached_tokens、cache_read、prompt_cache_hit_tokens 一类字段;一个都没有就是测不到。 动作:换直连或换会回报命中的通道。我们实测过某中转池:字节完全相同的请求跨轮读不到缓存。池子不粘滞时,折扣根本不会到账。
- 长会话聊到某一刻,命中率突然断崖再也回不去。 查法:看会话 token 是否逼近模型窗口上限——顶满后客户端开始滑窗截断,开头每轮都在动。 动作:主动开摘要或压缩,别等截断替你剪历史:截断是每轮变化的开头,把缝钉住的压缩至少能在两缝之间恢复稳定前缀。
工具与下一步
分工一句话:工具管「算你的数」,这份报告管「为什么、和怎么办」。
方法与口径
- 四方命中率与成本:2026-07-23 至 07-24 的四方对比评测,同模型(deepseek-v4-flash)、同一把 Key、逐字节相同的 15 轮脚本,3 卡 × 4 方 × 3 次独立重复共 36 格(修复前基线),修复后另跑 18 格对照;每次调用经同一个透明计量网关单点记账,网关、酒馆侧、App 侧三层账目逐格对齐才进数。整场约 1,530 次真实调用,按牌价折算约 $1.07。
- 两条产品链的拆层数字(53%→97%、58%→96-98%):生产环境对照探针,DeepSeek 直连、30 轮历史垫底、独立随机盐、两次复跑一致(2026-07-14)。
- 倍率表与 100 轮账单:models.dev 2026-07-24 牌价快照;模拟公式与本站缓存计算器完全同款(起始 2,000 token、每轮 120 输入 + 350 输出),参数就写在上文里。
- 缓存命中的判定以服务商响应 usage 字段为准(DeepSeek 的 prompt_cache_hit_tokens 等),不是我们自己估的。
- 原始数据可复算:逐调用计量日志、逐格转录与对账记录归档在四方评测页所链的数据正仓。
诚实边界
- 命中率实测全部来自单一模型(deepseek-v4-flash)的网关口径。倍率表列了各家牌价,但「你会命中多少」不可跨模型照搬:前缀失效的机理是通用的,具体百分比不是。
- 评测场景是 15 轮固定脚本的角色扮演会话,不是全体用户的使用分布。你的命中率由你的卡结构、插件、编辑习惯决定,这正是自查清单存在的理由。
- 成本是按公开牌价的机械折算,只用于组间相对比较,不是你的账单预测。缓存写入费与缓存有效期(各家从几分钟到几小时不等)都没有建模。
- 「聊 100 轮」一节是与计算器同口径的模拟外推,不是实测;实测数据是 15 轮那组。
- 我们的修复数字分两个形态:全新安装实测 89.9%,老用户升级后实测 73.1%;补齐差距要动存量配置,属于单独的产品决策,本页不替它许诺。
- 牌价是 2026-07-24 的快照,价格随时会变,以供应商官网为准;人民币金额按 1 USD ≈ 7.2 CNY 估算。
如何引用本页
Foreverse Research,《前缀缓存与你的真实聊天成本》,2026-07。 https://foreverse.cn/zh/research/cache-economics
常见问题
我的缓存命中率去哪里看?
看 API 响应的 usage 字段:DeepSeek 是 prompt_cache_hit_tokens,Anthropic 是 cache_read_input_tokens,OpenAI 兼容口径常见 prompt_tokens_details.cached_tokens。Foreverse 的「API 请求记录」里每条请求都逐条显示命中数。什么都看不到时,先解决可观测性:测不到就修不了。
命中率多少算健康?
15 轮角色扮演会话的实测天花板在 88-92% 一带:每轮新增的回复和新输入是结构性 miss,谁也到不了 100%。50% 以下基本说明装配有病,对照四个病例排查。孤立的单轮低谷(新词条首进、你编辑了历史)是正常代谢,不用管。
缓存会影响回复质量吗?
不会。前缀缓存复用的是前文的中间计算结果,模型读到的内容一个字不变;它影响的是账单和首字延迟:四方实测里命中率最高的一方,首 token 也最快(162ms 对 246ms)。
为什么我按计算器算的省率和实际账单对不上?
最常见的原因:你的真实命中率不是你以为的那个数。命中率由客户端行为决定:同模型同脚本下,46.5% 和 91.5% 都是实测值,差距全部来自装配行为。先拿到真实命中数(见第一问),再对照自查清单逐条排。