Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
探索AI智慧的思維邊界
claude-me.com
最新
2026 Claude 模型全家族解析:新模型強在哪、什麼時候該換、換了要付多少  ·  Claude API 生產環境部署實戰:從原型到穩定上線的工程清單  ·  新手最常犯的五個 Claude 使用錯誤(以及怎麼改)  ·  Claude Enterprise vs Team:你的公司到底需要哪個方案?超過這個規模就必須升級  ·  用 Claude 做深度研究與知識合成:從多來源資訊到有觀點的分析報告  ·  Mechanistic Interpretability:Anthropic 為什麼要拆解 Claude 的「大腦」——AI 可解釋性的前沿研究
名詞解析 · claude-tools

Message Batches API

批次訊息 API
claude-tools 中級

30 秒版 · 給沒耐心的人
Anthropic 提供的異步批次處理 API,費用是標準即時 API 的 50%,代價是不保證即時回應(通常在 24 小時內完成)。適合不需要即時反饋的大量任務:每夜定時跑的資料分析、大批量文件摘要生成、離線的內容生成。和 Prompt Caching 搭配使用,可以把實際費用壓到面表價的 5-15%,是費用優化空間最大的 Claude API 使用方式。
完整解說 +
01 · 這是什麼?

Message Batches API 是 Anthropic 提供的異步 API,讓你一次提交大量請求,系統在後台處理完後讓你下載結果,而不是每個請求即時等待回應。

工作流程

  1. 把多個 API 請求打包成一個 JSONL 文件,每行是一個獨立的請求(JSON 格式,包含 custom_idmodelmessages 等)
  2. 通過 API 提交這個 JSONL 文件,獲得一個 batch_id
  3. 定期輪詢這個 batch 的狀態(in_progress / ended
  4. 狀態變為 ended 後,下載結果文件(JSONL 格式,每行是一個請求的結果)
  5. custom_id 對應每個結果和你的原始請求

費用優勢:標準 Messages API 的 50%。沒有最低請求數量要求,一個 batch 可以只有一個請求(雖然這樣做顯然沒有意義)。

時間承諾:Anthropic 保證在 24 小時內完成,但通常更快(幾分鐘到幾小時,取決於當前的系統負載和 batch 大小)。如果你有 SLA 要求(如「必須在 2 小時內完成」),用標準即時 API 更可靠。

支援的模型:目前 Batch API 支援主流的 Claude 模型,包括 Fable 5、Opus 4.8、Sonnet 4.6、Haiku 4.5 等。

02 · 為什麼存在?

Batch API 和 Prompt Caching 怎麼搭配使用,實際費用能省多少?

這是費用優化空間最大的組合:

Batch API 的省錢邏輯:把標準 API 費用直接砍半。原本 $15/M 的 Sonnet 4.6 輸出,用 Batch API 變成 $7.5/M。

Prompt Caching 的省錢邏輯:對固定的 System Prompt(超過 1,024 Token),快取命中時輸入費用降低 90%。假設你的 System Prompt 是 3,000 Token,每次呼叫的合約文本是 5,000 Token:

  • 不用快取:輸入計費是 8,000 Token
  • 用快取(命中率 85%):實際輸入計費 ≈ 3,000 × 10% × 85% + 3,000 × 1 × 15% + 5,000 = 255 + 450 + 5,000 = 5,705 Token

疊加效果計算(Sonnet 4.6 為例)

標準即時 API:$3/M 輸入 + $15/M 輸出 Batch API:$1.5/M 輸入 + $7.5/M 輸出 Batch + Prompt Caching(System Prompt 部分省 90%):有效輸入費用進一步大幅降低

假設每次請求:System Prompt 3,000 Token + 文件 5,000 Token + 輸出 1,000 Token:

  • 標準 API:(8,000 × $3 + 1,000 × $15) / 1,000,000 = $0.039/次
  • Batch + 快取(85% 命中):約 $0.012/次,省了 69%
  • 按月 10,000 次計算:標準 API $390/月 → Batch + 快取 $120/月,每月省 $270。
03 · 如何影響你的決策?

Batch API 有哪些使用限制和注意事項?什麼情況下不適合用?

技術限制

每個 JSONL 文件最多支援 100,000 個請求或 256MB,超過的需要拆成多個 batch。Batch 的結果文件只保留一段時間(目前約 29 天),需要在保留期內下載,否則可能遺失。如果 batch 裡某些請求失敗,成功的請求仍然計費,失敗的不計費——需要對失敗的請求做重新提交的機制。

特殊功能的支援:部分 beta 功能在 Batch API 裡需要特殊處理。例如 300K 輸出 Token 的擴展輸出功能(Opus 4.8、Opus 4.7、Opus 4.6 和 Sonnet 4.6 支援),需要在 batch 請求裡加入 output-300k-2026-03-24 beta 標頭。

絕對不適合 Batch API 的場景

任何需要用戶在畫面前等待的互動——聊天介面、即時問答、用戶觸發的任何操作,用標準 API。需要確定 SLA 的任務(如「必須在 10 分鐘內完成」),Batch API 的 24 小時 SLA 完全無法滿足。需要根據前一步的結果決定下一步的串行工作流,Batch API 的異步特性讓它不適合。

最適合 Batch API 的場景特徵:任務和任務之間完全獨立(每個文件的分析和其他文件無關);任務結果不需要在觸發後幾分鐘內就能看到;任務量大(幾十到幾萬個請求)。

04 · 你該怎麼辦?

實際上怎麼用 Python 實作 Batch API 的完整流程?

一個完整的 Python 實作範例:

import anthropic
import json
import time

client = anthropic.Anthropic()

# 步驟一:準備 batch 請求(通常從文件或資料庫讀取)
requests = []
for i, document in enumerate(documents_to_analyze):
    requests.append({
        "custom_id": f"doc-{i}",
        "params": {
            "model": "claude-sonnet-4-6",
            "max_tokens": 1024,
            "system": [
                {
                    "type": "text",
                    "text": "你是一個合約分析助手...",
                    "cache_control": {"type": "ephemeral"}  # 啟用 Prompt Caching
                }
            ],
            "messages": [{"role": "user", "content": document}]
        }
    })

# 步驟二:提交 batch
batch = client.messages.batches.create(requests=requests)
batch_id = batch.id
print(f"Batch {batch_id} submitted, {len(requests)} requests")

# 步驟三:輪詢狀態(生產環境建議用 webhook 或排程而不是忙等)
while True:
    status = client.messages.batches.retrieve(batch_id)
    if status.processing_status == "ended":
        break
    print(f"Status: {status.processing_status}, "
          f"succeeded: {status.request_counts.succeeded}")
    time.sleep(60)  # 每分鐘查一次

# 步驟四:下載並處理結果
results = {}
for result in client.messages.batches.results(batch_id):
    if result.result.type == "succeeded":
        results[result.custom_id] = result.result.message.content[0].text
    else:
        print(f"Request {result.custom_id} failed: {result.result.error}")

print(f"Done. {len(results)} successful results.")

注意事項client.messages.batches.results() 是串流式的,適合結果文件很大的情況,不需要一次把所有結果載入記憶體。生產環境裡,用 webhook 通知(而不是輪詢)讓你的系統在 batch 完成後被通知,而不是一直查詢。

實際例子 +

一家市場調查公司每週需要分析 5,000 份消費者調查問卷(開放式問題),提取主題分類、情感傾向、關鍵詞。說明 Batch API 如何讓這個任務的成本和效率同時提升:

以前的方式(標準 API 即時處理): 5,000 份問卷,每份平均 500 Token 輸入 + 200 Token 輸出,用 Sonnet 4.6: (5,000 × 500 × $3 + 5,000 × 200 × $15) / 1,000,000 = $22.5/週

但更大的問題是:5,000 次串行的 API 呼叫,加上速率限制,可能需要幾個小時。他們的分析工程師週一早上要等到中午才能拿到結果開始分析。

改用 Batch API + Prompt Caching

System Prompt(分析框架 1,500 Token)啟用 Prompt Caching,加入批次請求。

  • Batch API 費用:即時 API 的 50%
  • Prompt Caching 命中(假設 90%):System Prompt 部分省 90%
  • 實際費用:約 $8/週,省了 64%
  • 時間:週日晚上 10 點提交,週一早上 7 點結果就緒——分析師一上班就能開始工作

雙重好處:費用降低 64%,同時把「等待時間」從影響工作效率的因素變成「後台處理,完全不感知」。

常見誤解 +
✕ 誤解1
× 誤解一:Batch API 只適合超大量的任務(幾萬次請求以上),小批量不划算。Batch API 沒有最低請求數量要求——哪怕只有 10 個請求,只要這 10 個請求不需要即時回應,用 Batch API 就能節省 50% 費用。「批次」這個詞容易讓人聯想到「一定要很多才值得」,但實際上任何不需要即時回應的任務都可以受益,不管量大量小。
✕ 誤解2
× 誤解二:Batch API 的 24 小時 SLA 太慢,很少有業務場景適合。24 小時聽起來很長,但很多業務任務根本不需要即時完成——每日定時報告(第二天早上就能用)、文件批次分類(下午批次處理、隔天查看)、離線的內容生成(今天提交、明天用)。實際上,對這些定時批次任務,Batch API 不只便宜,還讓你能把計算需求集中在離峰時段,避免因為大量即時請求觸發速率限制。
這件事跟你有什麼關係 +
直接影響

Batch API 的核心取捨是「費用 vs 時效性」。50% 的費用優惠換來的是「最長 24 小時」的處理時間承諾——對需要即時回應的場景完全不適用。這個取捨的設計邏輯很清晰:Anthropic 用時效性換取了讓用戶在離峰時段使用資源的靈活性,對雙方都有好處。對開發者,評估 Batch API 適用性的核心問題只有一個:「這個任務的結果,需要在幾分鐘內用到,還是幾小時甚至明天用到都沒關係?」如果是後者,Batch API 幾乎是零風險的費用優化選擇。

提問
請至少輸入 10 個字