先理解 Sonnet 5 的三个成本变化

  1. 新 tokenizer:官方称同一文本相对 Sonnet 4.6 大约多 30% token,实际取决于内容。
  2. adaptive thinking 默认开启:思考 token 也占输出预算和费用。
  3. 价格阶段变化:8 月 31 日前为 $2 输入 / $10 输出;9 月 1 日起为 $3 / $15,均按 1M tokens。

迁移参数、1M 上下文和 128K 最大输出的完整说明见 Sonnet 5 平台文档

第一杠杆:把 effort 当成产品配置

任务建议 effort原因
分类、字段抽取、短客服low / medium延迟和一致性优先
常规代码、分析、工具调用high默认的质量与成本平衡
复杂调试、长任务规划xhigh值得投入更多推理 token
最高难度一次性研究max只在质量价值明显高于成本时使用

官方建议复杂 Agent 使用更高 effort,延迟敏感任务用 low 或 medium;不要通过冗长提示词间接逼模型思考。详见 Prompting Sonnet 5

第二杠杆:缓存稳定前缀

Prompt Caching 按 tools → system → messages 的顺序缓存前缀。因此工具定义、业务规则、few-shot 示例和稳定知识库应该放前面;时间、用户问题和本轮检索结果放后面。

system: [
  {
    type: "text",
    text: stableKnowledgeBase,
    cache_control: { type: "ephemeral" }
  }
]
messages: [{ role: "user", content: currentQuestion }]

Sonnet 5 的缓存读取价格在8月优惠期为 $0.20 / MTok,9月起为 $0.30 / MTok,约为基础输入价格的十分之一。5分钟写入为基础输入的1.25倍,1小时写入为2倍。完整规则见 Prompt Caching 文档

一个1000次客服请求的成本算例

假设每次请求含 50K 稳定知识库、2K 动态输入和2K输出,按8月价格估算:

方案约计成本说明
不缓存$12452M 输入 × $2 + 2M 输出 × $10
高命中缓存约 $34稳定前缀大多按缓存读取计费
缓存 + Batch理论上可进一步接近一半只适合不要求实时返回的任务

这是便于决策的估算,不是账单承诺;首个缓存写入、命中率、思考 token、工具结果和失败重试都会改变实际金额。

第三杠杆:把离线工作移到 Message Batches

批量评测、历史工单分类、内容审核和大规模摘要不需要占用同步连接。Message Batches 对标准 token 价格提供50%折扣,且支持大多数 Messages API 能力。结果顺序不保证一致,应使用稳定的 custom_id 对齐。官方限制与示例见 Batch processing

常见的“假降本”

  • max_tokens 压得太低,导致答案截断后重试,总成本反而更高。
  • 动态时间戳放在缓存前缀顶部,每次请求都让后续缓存失效。
  • 所有任务统一使用 xhigh,简单任务为无用思考付费。
  • 只统计输入输出,不统计工具循环、失败重试与缓存写入。
  • 为了省 token 删除关键安全规则,造成错误执行和人工返工。

上线前应该观察哪些指标

至少记录 P50/P95 延迟、输入/输出/思考 token、缓存创建与读取 token、每类任务成功率、重试率和人工接管率。先用一周真实流量做基线,再逐项启用 effort 路由、缓存和 Batch,才能知道节省来自哪里。

还没确定应该用 Sonnet 还是 Opus,可以先看 Claude 5 模型选择指南