先理解 Sonnet 5 的三个成本变化
- 新 tokenizer:官方称同一文本相对 Sonnet 4.6 大约多 30% token,实际取决于内容。
- adaptive thinking 默认开启:思考 token 也占输出预算和费用。
- 价格阶段变化: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月价格估算:
| 方案 | 约计成本 | 说明 |
|---|---|---|
| 不缓存 | $124 | 52M 输入 × $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 模型选择指南。