Claude API 的账单就是 token 数量乘以单价,所以想让它变小只有两条路:少发 token,或者每个 token 付得更少。多数文章只讲第一条,这篇两条都讲,并按通常的见效顺序排好,你可以在账单不再成问题的那一步停下。每一步都会说明要改什么、怎么验证改对了。
1. 用能通过测试的最小模型
最大的节省通常来自换模型,而不是各种优化。准备十到二十条真实输入,写好你认可的答案,先在小模型上跑,不行再往上换。分类、抽取、路由和简短摘要,用最小的 Claude 一般就够了。最大的模型留给答错代价高的活:棘手的代码改动、长篇分析、智能体无法撤销的操作。Opus、Sonnet 与 Haiku 怎么选里有一张决策表,价格表则能看出它们之间的差距。
2. 缓存一切重复的内容
每次请求都会重复发送的内容,比如工具定义、系统提示词、规则文档或者此前的对话,都可以按输入价的一小部分从缓存中读取。在稳定前缀的最后一个块上加 cache_control 即可:
response = client.messages.create(
model="claude-sonnet-5.5",
max_tokens=1024,
system=[{"type": "text", "text": LONG_INSTRUCTIONS, "cache_control": {"type": "ephemeral"}}],
messages=messages,
)
print(response.usage.cache_read_input_tokens)如果第二次调用时 cache_read_input_tokens 为零,说明前缀变了,或者长度没达到最低要求。提示缓存列出了常见原因。对智能体和长对话来说,这是最值得做的一项。
3. 限制输出长度
输出 token 的单价是输入的好几倍,所以长回答是模型最贵的动作。把 max_tokens 设成任务实际需要的值,直接要求你要解析的格式(一个标签、一个 JSON 对象、三条要点),不想要开场白就明说“不要开场白”。留意 stop_reason:如果经常是 max_tokens,说明回答被截断了,应该调高上限或缩短要求,而不是置之不理。
4. 调低思考强度
扩展思考按输出计费。不需要长推理的任务,关掉思考,或者选较低的强度,再用测试集对比答案。思考 token 不管你看不看,都要付钱。
5. 少发输入
- 检索三段相关内容,而不是整本手册。
- 对话历史到一定长度后裁剪,或把早期轮次换成简短摘要。
- 去掉本次请求用不上的工具定义。
- 图片先压缩再发送:图片 token 随分辨率增长。
POST /v1/messages/count_tokens 能在你付费之前告诉你请求有多大。参见 Anthropic API 指南。
6. 批处理可以等的任务
不需要马上出结果的任务,比如夜间对积压数据做分类,就放到闲时批量跑,别一条条交互式调用。同时让整批请求的公共前缀保持完全一致,这样第一次之后的每次调用都能从缓存读取。
7. 按官方价的一半付费
常见问题
最便宜的 Claude 模型是哪个?+
家族里最小的那个模型,也就是实时价格表里排在最底部的。它是否对你最便宜,要看它能否通过你的测试用例:一个要重试三次的便宜模型,比一次做对的中档模型更贵。
提示缓存能降低 Claude Code 的费用吗?+
会,而且在这里比任何场景都重要。编码会话每一轮都会重发完整历史,所以大部分输入都是缓存读取。Claude Code 要花多少钱说明了其余的钱花在哪。
用 Claude API 比订阅 Claude 更便宜吗?+
取决于你用多少。轻度、间歇的使用走 API 更便宜;每天重度使用,包月套餐可能更划算。Claude Pro 与 API 对比分析了各自在什么情况下占优。
半价还能得到同样的回答吗?+
模型相同、API 相同:请求按厂商自己的格式透传,不做转换,所以 cache_control、thinking 这类功能的行为和 Anthropic 文档所述一致。