如果你正在用 OpenAI 或 Anthropic 的 API,每月账单上千刀却还在自己搭 Redis 做语义缓存、还在用旗舰模型跑批量任务、还在让推理模型"自由发挥"思考几千个 token——那你大概率漏领了三道厂商白送的官方折扣。这三道折扣不需要你写额外的基础设施、不需要换模型,只需要改几个参数或换一个 endpoint:原厂前缀缓存能白砍九成重复输入费,Batch API 给所有非实时任务直接打五折,思考 token 预算控制能堵住那个"你根本看不见却在计费"的暗洞。今天这篇,把这三张被 90% 开发者错过的优惠券一张张撕开给你看。
先说一个残酷的认知差。海外社区(Reddit 的 r/LocalLLaMA、r/ChatGPTCoding,Hacker News)2026 年讨论最热的省钱话题,已经不是"换便宜模型"了,而是"把厂商已经标在价目表上的折扣领满"。
国内技术圈对省钱的认知还停留在三层:
但真正高 ROI 的三张官方优惠券——原厂前缀缓存(Prompt Caching)、Batch API、思考 token 预算——国内几乎没人系统讲。原因很简单:它们藏在英文官方文档里,价目表上一行小字,国内博客懒得翻译。
而这三张券加起来,对一个典型的 Agent 应用,能把账单从 $300/天砍到 $30/天以内。这不是玄学,下面全是算术。
最大的认知差在这里:很多人把"原厂前缀缓存"和"语义缓存"当成一个东西。
区别有多大?语义缓存省六成,还要自己搭;原厂前缀缓存省九成,还免费。你却在辛辛苦苦造语义缓存,把官方白送的九折券扔在桌上。
| 厂商 | 缓存写入(cache write) | 缓存读取(cache read) | 最低缓存长度 | TTL |
|---|---|---|---|---|
| Anthropic Claude | 输入价 × 1.25 | 输入价 × 0.1(打一折,省 90%) | 1024 token | 5 分钟 / 可延至 1 小时 |
| OpenAI | 正常价 | 输入价 × 0.5(五折) | 1024 token | 自动,约 5–10 分钟 |
关键点:
OpenAI 的缓存是前缀匹配。它只缓存从开头连续相同的部分。所以:
[用户问题] + [5000 token 的系统提示和文档] → 每次前缀都不同,零缓存命中。[5000 token 的系统提示和文档] + [用户问题] → 前缀完全相同,五折自动命中。就这一个顺序调整,OpenAI 上能从全价变五折。 国内很多套壳应用 prompt 模板把用户输入拼在最前面,等于在跟官方对着干,把优惠券主动作废。
假设你的 Agent 带一份 10K token 的系统提示 + 工具说明 + 知识库,每天被调用 1 万次(Claude Sonnet 4.6,输入 $3/百万 token):
而你要付出的成本:在 API 请求里加一行 cache_control 标记。就这。
# Anthropic:标记缓存断点,就这一行
message = client.messages.create(
model="claude-sonnet-4-6",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": BIG_SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"}}, # ← 就加这个
{"type": "text", "text": user_query}
]
}]
)
# 响应里有 usage.cache_read_input_tokens / cache_creation_input_tokens 可监控命中率
适用人群:所有带长系统提示、RAG 检索上下文、few-shot 示例、Agent 工具定义的应用。只要你的 prompt 有超过 1024 token 是"每次都一样"的部分——恭喜,你正在交全价。
如果说前缀缓存是"重复内容的折扣",那 Batch API 就是"不着急的任务的折扣"。
OpenAI 和 Anthropic 都提供了一个批量异步端点:你把一堆请求打包成一个 JSONL 文件上传,厂商在 24 小时内异步处理完,结果再给你。代价是不能秒回,好处是每一条都直接打五折。对,就是字面意义的五折,没有任何套路。
这五折有多隐蔽?一篇海外博客的标题直接叫《大多数开发者忽略的 50% 折扣》。原因有三:
凡是不要求秒级响应的任务,全部该走 Batch:
| 任务 | 是否实时 | 建议走 Batch? | 节省 |
|---|---|---|---|
| 客服对话 / 实时问答 | 是 | ❌ 不能 | — |
| 批量代码 review(PR 合集) | 否(过夜跑) | ✅ | 50% |
| 批量生成单元测试 | 否 | ✅ | 50% |
| 大批量文档摘要 / 分类打标签 | 否 | ✅ | 50% |
| 内容审核 / 情感分析批量跑 | 否 | ✅ | 50% |
| Embedding 批量生成 | 否 | ✅(OpenAI) | 50% |
| 评测集 / 基准测试跑分 | 否 | ✅ | 50% |
对独立开发者和小团队,每天晚上把白天攒下来的非实时任务一股脑 Batch 跑掉,直接砍掉一半成本。这比换便宜模型还实在,因为你不牺牲任何质量——用的是同一个旗舰模型。
一个更狠的组合:Batch API 的请求里照样可以用前缀缓存(共享系统提示)。
# OpenAI Batch:准备一个 JSONL,每个请求带自定义 ID
{"custom_id": "review-1", "method": "POST", "url": "/v1/chat/completions",
"body": {"model": "gpt-4o", "messages": [{"role":"user","content":"review this PR..."}]}}
# 上传 → 创建 batch → 24h 内拿结果,自动五折
适用人群:有任何"攒一批过夜跑"性质任务的人——内容平台、SaaS 后台、数据团队、做评测的开发者。如果你现在还在用同步循环一条条跑批处理,你每天都在扔掉一半的钱。
前两个是"领折扣",这一个是"堵漏洞"。但它属于同一类信息差——厂商不会主动告诉你的计费真相。
o1/o3、Claude Extended Thinking、Gemini thinking 模式、DeepSeek R1 这类推理模型(reasoning model),会先在内部做一段"思考"再输出答案。问题来了:这段思考也算 token,也按输出价计费,而你在响应里根本看不到它。
海外实验室 TokenMix 在 2026 年 4 月的实测里写了一个让人头皮发麻的细节:
给 Gemini 3.1 Pro 设
max_tokens: 10,请求返回了一个空响应——不是模型出错了,而是这 10 个 token 全被内部推理吃掉了,一个字的正式输出都没生成就到上限了。
换句话说:你以为你只请求了 10 个 token 的输出,结果你为模型"脑子里想了一下"付了全款,最后啥也没拿到。 这就是"思考 token 陷阱"。海外数据称,推理模型在高强度任务上能比普通模型贵 5–20 倍,主要就贵在这段你看不见的推理上。
thinking budget / 限制 reasoning token 数。Claude Extended Thinking 可以设 budget_tokens,Gemini 有 thinkingBudget 参数。把无上限的"自由发挥"关掉。usage 字段会把 reasoning token 单列出来(如 OpenAI 的 completion_tokens_details.reasoning_tokens)。把它接进你的监控面板,否则你永远不知道推理烧了多少钱。# Anthropic:给思考设预算上限,别让它无限烧
client.messages.create(
model="claude-opus-4-8",
thinking={"type": "enabled", "budget_tokens": 2000}, # ← 最多想 2000 token
max_tokens=4000,
...
)
# Gemini: generationConfig.thinkingConfig.thinkingBudget = 2000
适用人群:所有在用 o3 / Extended Thinking / Gemini thinking 做生产调用的人。如果你只盯着 max_tokens 和输入长度,却从没看过 reasoning token 计费——你账单里很可能有一块"隐形的大头"。
| 维度 | 你以为的(国内主流认知) | 别人不知道的(本次信息差) |
|---|---|---|
| 重复内容省钱 | 自己搭 Redis 做语义缓存,省六成 | 原厂前缀缓存白砍九成,零基础设施,加一行参数 |
| 批量任务 | 同步循环一条条跑,全价 | Batch API 直接五折,24h 异步,质量零损失 |
| OpenAI 缓存 | 不知道有这回事 | 自动五折,但 prompt 要"静态在前动态在后"才能命中 |
| 推理模型成本 | 比 Sonnet 贵一点 | 可贵 5–20 倍,思考 token 看不见却在计费 |
| 省钱优先级 | 先换便宜模型 | 先把官方三道折扣领满,再谈换模型 |
| 叠加效果 | 单点优化 | 缓存 × Batch × 思考预算三张券叠加,降幅 85%+ |
| ## 六、决策流程图:你的请求该走哪条省钱路径 |
flowchart TD
A[一个 API 请求] --> B{需要实时秒回?}
B -- 否 --> C[✅ 走 Batch API<br/>直接五折]
B -- 是 --> D{prompt 有 1024+ token<br/>每次重复?}
D -- 是 --> E[✅ 开原厂前缀缓存<br/>Anthropic 砍九成 / OpenAI 五折]
D -- 否 --> F{必须用推理模型?}
F -- 否 --> G[✅ 换非推理小模型<br/>Haiku / 4o-mini]
F -- 是 --> H[✅ 设 thinking budget<br/>堵住看不见的计费洞]
C --> I[监控 usage 字段<br/>跟踪命中率与 reasoning token]
E --> I
G --> I
H --> I
I --> J[账单从全价 → 三折以内]
这张图的精髓:先问"急不急"和"重不重复",而不是上来就换便宜模型。前者是白捡的官方折扣,后者要牺牲质量。
cache_control。 找到代码里所有带长上下文的请求,标记缓存断点,部署后观察 cache_read_input_tokens 占比,目标 > 80%。做完这五步,再去算账。对一个中等规模的 Agent 应用,月账单从 $9000 砍到 $1500 以内是正常水平,而且你一行模型都没换、一点质量都没牺牲。
国内技术圈卷"换模型""语义缓存""模型路由",却把厂商明码标价放在价目表上的三张官方券——前缀缓存九折、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 等场景全覆盖。
