Claude API 的 Prompt Caching(提示缓存)和 Batch API(批量处理)是开发者降低费用的两大杀手级功能。单独使用就能省 50%-90%,两者结合最高可降低 95% 费用。本文基于 Anthropic 官方文档(2026年3月最新),用最实战的方式教你如何开启、代码示例和真实成本对比。

掌握后,你的项目月费用能从几十美元轻松降到几美元,尤其适合批量处理、RAG、Agent、多轮对话等重复上下文场景。

一、Prompt Caching(提示缓存)——重复内容省90%费用

核心原理:把系统提示、Few-shot示例、参考文档等“静态内容”缓存起来,后续调用只收取 0.1x 输入价格(即90%折扣)。

缓存类型(2026最新):

  • 5分钟缓存:写入 1.25x,读取 0.1x(适合高频实时调用)
  • 1小时缓存:写入 2x,读取 0.1x(适合批量或稍长间隔)

缓存命中后,结合 Batch API 可进一步打折。

1. 自动缓存方式(最简单,新手推荐)

在 messages.create() 顶部添加 cache_control 字段,系统自动缓存最后一块可缓存内容。

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "这是你的系统提示和长文档...(重复内容)"
                },
                {
                    "type": "text",
                    "text": "用户本次具体问题",
                    "cache_control": {"type": "ephemeral"}   # 关键:开启自动缓存
                }
            ]
        }
    ]
)

2. 显式断点方式(更精准控制)

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "系统提示 + 超长参考文档..."},
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "用户问题"},
                {"type": "text", "text": "", "cache_control": {"type": "ephemeral"}}
            ]
        }
    ]
)

实战建议:把系统提示、工具定义、RAG知识库放在缓存断点前,效果最佳。

二、Batch API(批量处理)——异步任务直接打5折

适合非实时任务(如批量总结、数据提取、评估)。处理时间最长24小时,但费用直接减半,且支持 Prompt Caching 叠加。

Batch API 完整代码示例

import anthropic
import time

client = anthropic.Anthropic()

# 创建批量请求
batch = client.beta.messages.batches.create(
    requests=[
        {
            "custom_id": "req_001",
            "params": {
                "model": "claude-sonnet-4-6",
                "max_tokens": 1024,
                "messages": [{"role": "user", "content": "总结这篇文章..."}]
            }
        },
        # ... 可以一次性加几千条
    ]
)

print("Batch 创建成功,ID:", batch.id)

# 轮询结果(或设置 Webhook 更高效)
while True:
    result = client.beta.messages.batches.retrieve(batch.id)
    if result.processing_status == "ended":
        print("处理完成!")
        break
    time.sleep(60)  # 每分钟检查一次

批量 + 缓存结合:每个 request 里都加上 cache_control,节省效果翻倍。

三、实战组合:Batch + Prompt Caching 最大化省钱

推荐场景:每天批量处理几千条用户反馈总结、RAG 检索、代码审查等。

成本对比示例(Sonnet 4.6,单次输入800 token + 输出400 token):

方式 单次费用(美元) 1000次费用 节省比例
普通调用 ≈0.006 6美元
仅 Prompt Caching ≈0.0012 1.2美元 80%
仅 Batch API ≈0.003 3美元 50%
Batch + Caching ≈0.0006 0.6美元 90%+

四、成本优化最佳实践(直接落地)

  1. 把系统提示、Few-shot示例、工具定义全部放入缓存
  2. 高频重复内容使用5分钟缓存,低频用1小时缓存
  3. 非实时任务全部走 Batch API
  4. 在 Console 设置预算提醒和用量警报
  5. 用 anthropic SDK 的 logging 监控 cache hit rate
  6. 定期清理不用的 Batch 结果,避免存储费用

进阶技巧:把 RAG 知识库拆分成多个小块,只缓存常用部分。

五、总结

Prompt Caching + Batch API 是 Claude API 降低费用的最强组合。新手直接把系统提示缓存 + 非实时任务走 Batch,就能把月费用砍到原来的 1/10。

实战建议:先在测试环境中验证缓存命中率,再大规模上线。掌握这两个技巧后,Claude API 的性价比会远超想象。

现在就去 console.anthropic.com 创建你的第一个 Batch + Caching 请求吧!

欢迎在评论区分享你的实际节省比例或遇到的问题,我可以帮你优化代码。

官方链接:
Prompt Caching 文档:https://platform.claude.com/docs/en/build-with-claude/prompt-caching
Batch Processing 文档:https://platform.claude.com/docs/en/build-with-claude/batch-processing
最新定价:https://platform.claude.com/docs/en/about-claude/pricing
Console 管理中心:https://console.anthropic.com