你的API账单之所以降不下来,不是因为没用省钱技巧——而是你把这些技巧当加法用,而真正省钱的人在用乘法。一篇文档处理流水线,基线3000刀/月,叠加四层正交折扣后只剩300刀。更关键的是:90%的开发者都在死磕"省输入",但输出token才是真正的成本黑洞,而能砍它的折扣,全行业只有一类——批处理(Batch)。
我直接从 BerriAI 维护的 model_prices_and_context_window.json(业界最全的实时定价库)拉了 2026年6月的主流模型定价,这是未经粉饰的原始数据:
| 模型 | 输入 $/M tokens | 输出 $/M tokens | 输出÷输入 | 缓存读 $/M | 缓存读折扣 |
|---|---|---|---|---|---|
| Claude Opus 4.8 | $5.00 | $25.00 | 5× | $0.50 | 90% off |
| Claude Sonnet 4.6 | $3.00 | $15.00 | 5× | $0.30 | 90% off |
| Claude Haiku 4.5 | $1.00 | $5.00 | 5× | $0.10 | 90% off |
| GPT-5 | $1.25 | $10.00 | 8× | $0.12 | ~90% off |
| Gemini 2.5 Pro | $1.25 | $10.00 | 8× | $0.12 | ~90% off |
| DeepSeek Chat | $0.28 | $0.42 | 1.5× | $0.03 | — |
看出门道了吗?两点:
但这里藏着一个绝大多数人没想通的逻辑陷阱——Prompt Caching(上下文缓存)只能帮你省输入,永远省不了输出。因为缓存存的是"前缀"(系统提示、工具定义、固定文档),而输出token是每次重新生成的,独一无二,根本没法缓存。
所以如果你的账单结构是"小输入 + 大输出"(比如代码生成、长文写作),你把缓存玩出花也只能动到账单的一小块。真正吃掉你预算的输出token,必须用另一把刀——Batch API。
这就是本轮信息差的灵魂:不同折扣作用在不同的token上,必须正交叠加,用乘法,不是加法。
我把"省钱"重新拆成四层互相独立的折扣。记住一个原则:层数越多、彼此越正交,相乘后的折扣越恐怖。
flowchart TD
A["原始请求流<br/>每月10万次 × 8000in/400out<br/>基线 = $3,000/月"] --> L1
subgraph L1["第1层 Prompt Caching 上下文缓存"]
A1{"固定前缀是否<br/>命中缓存?"}
A1 -->|"命中:缓存读"| A2["5000 tokens × $0.30/M<br/>而非 $3.00/M<br/>→ 输入省90%"]
A1 -->|"未命中:首写"| A3["一次性缓存写<br/>$3.75/M,5分钟内复用"]
end
L1 --> L2
subgraph L2["第2层 Batch API 异步批处理"]
B1["整单直接半价 50% off<br/>24h内异步返回<br/>⚡ 唯一能砍【输出token】的折扣"]
end
L2 --> L3
subgraph L3["第3层 输出Token瘦身"]
C1["输出贵输入5倍<br/>JSON模式 + max_tokens + 简洁提示<br/>400 → 200 tokens"]
end
L3 --> L4
subgraph L4["第4层 模型分级路由"]
D1{"任务难度评估"}
D1 -->|"简单 60%"| D2["Haiku 4.5<br/>$1 / $5"]
D1 -->|"复杂 40%"| D3["Sonnet / Opus"]
end
L4 --> R["最终账单 ≈ $300/月<br/>vs 基线 $3,000/月<br/>省 90%"]
下面逐层拆解,每层都给你可立刻抄的操作。
这是厂商白送的90%折扣,但很多人要么不知道,要么只知道手动加断点。
官方原文(来自 Anthropic cookbook):Prompt caching 能"reducing latency by >2x and costs by up to 90% for repetitive tasks"。也就是说,它同时降本和提速,这是它比你自己做语义缓存更香的地方——语义缓存省的是钱,但提不了速,还得自己维护向量库;上下文缓存是厂商底层KV缓存复用,零维护。
2026年的新玩法(这是认知差):现在有两种开启方式,自动缓存和显式断点。
cache_control 字段,系统自动帮你判断哪些该缓存。Anthropic官方明确把它标为"(recommended)"。对90%的场景,这就够了。cache_control: {"type": "ephemeral"},单次请求最多4个断点,适合你要精细控制"系统提示、工具定义、few-shot示例"分别缓存的情况。关键参数(已从官方文档核实): - TTL默认5分钟,而且"refreshed on each hit"——每次命中就刷新5分钟倒计时。意思是只要你的流量持续,缓存几乎不会过期。 - 1小时TTL可选,但写入要按 2倍基础输入价收费(trade-off:低频任务才划算)。
代码(自动缓存,Python,3行核心改动):
import anthropic
client = anthropic.Anthropic()
resp = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
extra_headers={"anthropic-beta": "extended-cache-ttl-2025-04-11"}, # 想用1小时TTL再加
system=[{
"type": "text",
"text": SYSTEM_PROMPT, # 你的固定大system + 工具定义 + few-shot
"cache_control": {"type": "ephemeral"} # ← 关键,就这一行
}],
messages=[{"role": "user", "content": user_doc}] # 每次变化的部分
)
适用场景:system prompt很大(带工具/few-shot)、多轮对话、Agent反复调用同一套工具定义、RAG里反复喂同一份长文档。反过来:如果每次请求的输入几乎全不一样(纯一次性任务),缓存帮不了你,别浪费时间。
💡 中国开发者补充:智谱GLM也提供"上下文缓存(Context Caching)",国内可直连、无需翻墙,API兼容,是合规场景下复刻这套打法的首选。OpenAI和Google DeepMind同样在2026年把缓存读价定在标准价的1/10左右,机制一致。
这是被严重低估的一层。 OpenAI和Anthropic都提供Batch API,规则高度一致:
为什么说它是"唯一能砍输出的刀"?回到第一节的表格——输出token贵输入5-8倍,而Prompt Caching救不了输出。Batch API的50%是"全单折扣",输入输出一起砍。 所以对"小输入+大输出"型任务(典型如代码生成评测、长文批量改写),Batch的威力远大于缓存。
操作(Anthropic Message Batches):
# 1. 把请求打包成JSONL,每行一个独立请求
cat > /tmp/requests.jsonl <<EOF
{"custom_id": "req-1", "params": {"model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [{"role":"user","content":"总结文档A..."}]}}
{"custom_id": "req-2", "params": {"model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [{"role":"user","content":"总结文档B..."}]}}
EOF
# 2. 提交批处理任务(异步,24h内返回)
curl https://api.anthropic.com/v1/messages/batches \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"requests": ...}' # 或上传文件
什么时候该用:夜里跑的批处理、T+1报表、离线评测、知识库构建、RAG语料预处理。反过来:实时客服、流式对话、用户等结果的前台请求——不能用,响应太慢。
一个真实组合:第1层的缓存 + 第2层的批处理,叠加在"缓存命中的输入"上,理论价格 = 标准价 × 10%(缓存)× 50%(批处理)= 标准价的5%。这就是标题里"乘法"的威力。
既然输出贵、又没法缓存、批处理也只是半价,那直接少生成输出就是最直接的杠杆。这是认知差最大的一层,因为大家都盯着输入。
具体动作,每个都能立刻落地:
max_tokens 上限:很多人不设,任由模型"想写多少写多少"。给个硬上限,既省token又防失控。"回答不超过50字"、"只输出代码,不要解释"。看似朴素,实测能砍30-50%输出。reasoning.effort、Anthropic的thinking budget都能设上限,别让模型想太久。举个数:把输出从400 token压到200 token,按Sonnet 4.6算,100万次请求直接省 $1,500——这比任何缓存技巧都来得猛。
前面讲过的路由层("七成请求错喂最贵模型")就是这一层。核心:别让Opus做判断"是/否"的活。
和前三层完全正交,可以叠加。
把四层叠起来,算一笔真实的账。场景:客服文档智能摘要,每月10万份文档。
| 优化阶段 | 月账单 | 本层省 | 累计省 |
|---|---|---|---|
| 🔴 基线(裸调API) | $3,000 | — | 0% |
| + 第1层 Prompt Caching (5000固定前缀走缓存读) |
$1,650 | −$1,350 | 45% |
| + 第2层 Batch API半价 (全单×0.5,含输出) |
$825 | −$825 | 73% |
| + 第3层 输出瘦身 (400→200 token) |
$540 | −$285 | 82% |
| + 第4层 模型路由 (60%简单任务下放Haiku) |
≈$300 | −$240 | 90% |
90%。 从3000刀到300刀。而且这2700刀的省法,没有任何一层是"玄学"——每一层都是官方文档写明的功能,互相正交,可以同时开。
xychart-beta
title "四层叠加省钱曲线(月账单 $)"
x-axis ["基线", "+缓存", "+批处理", "+输出瘦身", "+路由"]
y-axis "月账单 USD" 0 --> 3200
bar [3000, 1650, 825, 540, 300]
| 你以为的省钱 | 真正的信息差 |
|---|---|
| Prompt Caching最猛,开就完了 | 缓存只能省输入,输出才是5-8倍成本黑洞 |
| 用一个省钱技巧就够了 | 技巧之间是乘法:90%×50%×70%×80% ≈ 省到3% |
| 缓存要手动加一堆断点 | 2026年有自动缓存,顶层一行cache_control搞定 |
| 实时调用才专业 | 不等结果的活全塞Batch,直接半价 |
| token多少无所谓 | 输出max_tokens不设 = 让模型刷你的信用卡 |
| 贵模型=质量好 | 60%的活Haiku就能干,Opus只留20%硬骨头 |
max_tokens + 加"简洁"提示。零成本改动,输出费用降30%。预算分档推荐: - < $50/月:只做第3层(输出瘦身)+ 用GLM-4.6/DeepSeek等低价模型,几乎零成本。 - $50-500/月:加上第1层缓存 + 第4层路由,覆盖90%场景。 - > $500/月:四层全开,重点压榨第2层Batch,这是大账单里最大的一块肉。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护。 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
