Synthorai 上的 Claude Opus 4.8:缓存与 TTL 对比 4.7/4.6

目录
  1. 可用性
  2. 缓存行为:与 4.7/4.6 相同
  3. TTL 行为:与 4.7/4.6 相同
  4. 首 token 时延:整个系列持平
  5. 唯一真正的变化:分词(自 4.7 起)
  6. 迁移清单(4.6/4.7 → 4.8)
  7. 总结
  8. 常见问题

claude-opus-4-8 现已在 Synthorai 网关上可用。如果你已经在 Opus 系列上运行提示缓存,那么头条消息既令人安心又略显平淡:缓存和 TTL 的契约相比 4.7 或 4.6 没有任何变化。 相同的 cache_control 标记,相同的 5 分钟和 1 小时 TTL,相同的读取折扣,相同的写入溢价。你的缓存代码可以直接沿用,无需改动。

确实有一件事发生了变化——而且是在 4.7 时就变了,不是 4.8——它会影响你的 token 预算。本文已经替你把它测量出来了。

下面所有数字均于 2026-05-29 针对 https://synthorai.io/(Anthropic 原生 /v1/messages)测得,使用约 8K 字符的英文系统提示,max_tokens 设得较小,单次顺序运行。引用前请针对你自己的提示重新复现。


可用性

import os
from anthropic import Anthropic

anth = Anthropic(
    api_key=os.environ["SYNTHORAI_KEY"],
    base_url="https://synthorai.io/",   # SDK appends /v1/messages
)

msg = anth.messages.create(
    model="claude-opus-4-8",            # the only line that changes
    max_tokens=512,
    system=[
        {"type": "text", "text": SYSTEM_PROMPT,
         "cache_control": {"type": "ephemeral"}},
    ],
    messages=[{"role": "user", "content": question}],
)
print(msg.usage)   # cache_creation_input_tokens, cache_read_input_tokens, cost

claude-opus-4-7claude-opus-4-8 一换,缓存路径里其他任何东西都不需要动。cache_control 背后的机制详见缓存教程;至于缓存为何存在的架构原理,请看系列文章第 1 部分


缓存行为:与 4.7/4.6 相同

我们在近期的 Opus 系列上运行了相同的缓存写入 / 缓存读取 / 无缓存序列。折扣结构从头到尾完全一致。

模型无缓存成本5m 缓存写入缓存读取读取折扣
claude-opus-4-5$0.0364$0.0452$0.004188.8%
claude-opus-4-6$0.0364$0.0452$0.004188.7%
claude-opus-4-7$0.0522$0.0654$0.005988.7%
claude-opus-4-8$0.0520$0.0654$0.005988.6%

四个版本上有两条不变量成立:

  • 读取折扣 ≈ 89%。 一次命中缓存的读取成本约为无缓存输入价格的 11%。这就是 Anthropic 文档中记录的 10% 缓存读取费率,保持不变。
  • 写入溢价 ≈ 25%。 第一次(冷)调用为了填充缓存,成本约为无缓存价格的 1.25 倍。命中一次即可回本。

4.7 和 4.8 的绝对美元数字高于 4.5/4.6,但稍后我们会看到,这是一个 token 数量的问题,而非缓存经济性的问题——百分比是平的。


TTL 行为:与 4.7/4.6 相同

Opus 4.8 遵循与系列其余成员相同的两个 TTL:一个 5 分钟的滑动默认值,以及一个可选的 1 小时窗口。我们用每次调用唯一的前缀隔离 TTL 路径(这样就不会有过期缓存项污染结果),并测量了每个 TTL 的写入溢价:

模型TTL缓存写入写入溢价(相对无缓存)
claude-opus-4-75m$0.0650~1.25×
claude-opus-4-71h$0.1036~2×
claude-opus-4-85m$0.0650~1.25×
claude-opus-4-81h$0.1036~2×
# 1-hour TTL — same marker syntax on 4.8 as on 4.7/4.6
"cache_control": {"type": "ephemeral", "ttl": "1h"}

usage 对象报告 TTL 桶的方式与以前完全一样——cache_creation.ephemeral_5m_input_tokensephemeral_1h_input_tokens。1 小时写入成本约为无缓存的 2 倍(相比 5 分钟写入的约 1.25 倍),而读取无论 TTL 如何都保持在约 11%。与 4.7 完全相同。如果你在 4.7 上为实时聊天选了 5m、为有人工介入暂停的智能体选了 1h,那么在 4.8 上保持这些选择即可。


首 token 时延:整个系列持平

我们用流式调用测量了热读取的 TTFT(每个模型在网关预热后采样 5 次,报告中位数)。在这个约 8–11K token 的提示上,TTFT 落在约 2.2–2.8 秒的区间内,没有实质性的逐版本趋势——样本区间相互重叠,所以差异是抖动,而非版本效应。

模型热读取 TTFT(中位数)区间(n=5)
claude-opus-4-52.72 s2.58 – 2.78 s
claude-opus-4-62.76 s2.65 – 3.01 s
claude-opus-4-72.21 s1.98 – 2.97 s
claude-opus-4-82.47 s2.23 – 4.38 s

有两点需要明确说清:

  • 不要从中读出排名。 区间大幅重叠(4.8 的高值样本是个 4.38 秒的离群点);在这个提示规模下,TTFT 由网络和排队抖动主导,而非模型版本。把约 2.2–2.8 秒视为四者共同的热区间即可。
  • 缓存带来的 TTFT 收益随提示长度而扩大。 在约 8–11K token 时,缓存命中所节省的预填充很小,所以冷启动和热启动的 TTFT 很接近(在预热过的网关上都约 2–3 秒)。当达到 100K+ token、预填充占主导时,差距会显著拉大——这时一次热缓存能把数秒的等待变成快速的首 token。机制详见第 1 部分:KV 缓存与 TTL 如何运作

唯一真正的变化:分词(自 4.7 起)

这才是你迁移前要重新核对的事情。相同的系统文本在 4.7/4.8 上报告的输入 token 比 4.5/4.6 多约 43%。

模型输入 token(相同文本)无缓存成本
claude-opus-4-5~7,976$0.0364
claude-opus-4-6~7,977$0.0364
claude-opus-4-7~11,393$0.0522
claude-opus-4-8~11,394$0.0520

token 数量在 4.7 这一代跳升,并延续到 4.8。成本几乎精确地跟随 token 数量:成本比(4.8 / 4.5)是 1.43,token 比是 1.429。换句话说,整个系列的每 token 价格是相同的——4.7/4.8 上更高的账单完全来自同样的文本被计为更多的 token。

两个实际后果:

  1. 按绝对成本重新做预算,而不是按折扣。 你的缓存折扣没变(约 89% 读取),但同样一段英文提示在 4.7/4.8 上的绝对成本比在 4.6 上贵约 43%。如果你曾按 4.6 的 token 数为单次调用设定预算,那它会算偏。
  2. 重新核对 1,024 token 的缓存资格下限。 Anthropic 只缓存达到或超过某个最小尺寸的前缀。一个在 4.6 上刚好低于下限的提示,可能在 4.7/4.8 上越过了它(token 更多),而一个按旧分词器以 token 计量的提示需要重新测量。请始终从实时响应中读取 cache_creation_input_tokens / cache_read_input_tokens,而不要依赖一个可能不匹配的本地分词器去估算。

我们描述的是一个实测观察——相同文本在 4.7/4.8 上报告的输入 token 多约 43%——这与 4.7 这一代发生的分词器/词表更新最为吻合。但结论不依赖于根本原因:迁移时请重新测量 token 数,因为缓存的计算是基于 token 的。


迁移清单(4.6/4.7 → 4.8)

  • 缓存代码原样沿用。 cache_control 标记、断点数量(最多 4 个)、ttl: "1h"、usage 字段名——全部相同。
  • TTL 选择沿用。 实时/会话型负载用 5m,突发型/带暂停的智能体用 1h。
  • 折扣经济性沿用。 约 89% 读取,约 1.25× 写入(5m),约 2× 写入(1h)。
  • ⚠️ 重新测量 token 数。 如果你从 4.5/4.6 过来,对相同文本预期会多出约 40%+ 的输入 token(这发生在 4.7)。从 4.7 过来则预期持平。
  • ⚠️ 重新验证成本仪表盘。 信任实时响应中的 usage.cost*_input_tokens 字段,而不是来自旧版本的缓存估算。

总结

对于一个已经在 Opus 上做缓存的工程团队来说,claude-opus-4-8 是那种轻松的升级:整个缓存和 TTL 面都很稳定,所以没什么要重新学,也没有代码要重写。如果你是从 4.6 或更早跳过来,为分词器的变化做好预算,对照实时 usage 对象确认你的数字,然后发布。

要看完整的缓存攻略——提示结构、命中率调试、TTL 感知模式——请看从KV 缓存与 TTL 如何运作开始的四部分系列,以及可运行的 Python 教程


常见问题

使用 Opus 4.8 需要改我的 cache_control 代码吗? 不需要。标记语法、断点上限和 TTL 选项与 4.7/4.6 完全相同。改一下 model 字段,其他都不用动。

缓存读取折扣在 4.8 上变了吗? 没有。一次热读取约为无缓存输入价格的 11%(约九折优惠),4.5 到 4.8 都是如此,与 Anthropic 文档记录的费率一致。

1 小时 TTL 的溢价变了吗? 没有。1 小时写入成本约为无缓存输入价格的 2 倍;5 分钟写入约为 1.25 倍。无论 TTL 如何,读取约为 11%。与 4.7 相同。

为什么同样的提示在 4.8 上比 4.6 上贵? 每 token 的价格是一样的——只是提示被计为更多的 token。在我们的测量中,相同文本在 4.5/4.6 上报告约 8.0K token,在 4.7/4.8 上约 11.4K token(增加约 43%),这与 4.7 这一代的分词器变化最为吻合。缓存折扣未变。

4.8 是 4.7 的直接替代品吗? 在缓存/TTL 这一面,是的——token 数和经济性早在 4.7 时就已是该水平,所以从 4.7 迁移是持平的。我们不发布自己没跑过的能力基准测试;关于质量和推理方面的论断,请参阅 Anthropic 的模型卡。


验证说明:所有缓存、TTL、token 数、成本和 TTFT 数字均于 2026-05-29 针对 https://synthorai.io/、使用官方 anthropic SDK、单租户测得。成本/token 数字为单次顺序运行;TTFT 为每个模型在网关预热后的 5 次采样中位数。折扣/溢价比率已与 Anthropic 提示缓存文档交叉核对。你的数字会随提示、区域和负载而变化。

← 返回博客