|

掌握 Claude 緩存計費的 3 個關鍵點:爲什麼必須用 Anthropic 原生格式調用

claude-prompt-caching-anthropic-native-format-guide-zh-hant 图示

很多開發者在使用 Claude API 時都會遇到一個困惑:明明開啓了 prompt caching,爲什麼賬單上看不到緩存優惠?

答案往往很簡單——你用的是 OpenAI 兼容模式調用,而 Claude 的緩存計費只支持 Anthropic 原生 Messages API 格式

這不是 bug,而是 Anthropic 官方文檔中明確說明的設計限制。本文將從技術原理、調用方式、定價對比 3 個維度,幫你徹底搞懂 Claude prompt caching 的正確用法,避免踩坑多花冤枉錢。

Claude Prompt Caching 緩存機制核心原理

在深入調用格式差異之前,先理解 Claude prompt caching 的工作原理。

Claude 緩存是如何工作的

當你發送一個啓用了 prompt caching 的請求時,系統會執行以下流程:

  1. 檢查緩存: 系統檢查請求的 prompt 前綴是否已經在最近的查詢中被緩存
  2. 命中緩存: 如果找到匹配,直接使用緩存版本,大幅減少處理時間和成本
  3. 寫入緩存: 如果未命中,處理完整 prompt 並在響應開始後緩存前綴
Claude Prompt Caching 核心參數 說明
緩存類型 ephemeral (短暫緩存,目前唯一支持的類型)
默認 TTL 5 分鐘 (每次命中自動刷新)
可選 TTL 1 小時 (額外付費)
最大緩存斷點 4 個 cache_control 標記
緩存順序 toolssystemmessages
緩存匹配方式 100% 完全一致的 prompt 前綴

Claude Prompt Caching 支持緩存的內容

Claude prompt caching 可以緩存請求中的大部分內容塊:

  • Tools: tools 數組中的工具定義
  • System messages: system 數組中的內容塊
  • Text messages: messages.content 數組中的文本內容塊
  • Images & Documents: 用戶消息中的圖片和文檔
  • Tool use & tool results: 工具調用和結果的內容塊

🎯 技術建議: 對於需要頻繁調用相同系統提示詞的場景,prompt caching 是最有效的成本優化手段。我們建議通過 API易 apiyi.com 平臺使用 Anthropic 原生格式調用 Claude API,充分利用緩存計費優惠。

Anthropic 原生格式 vs OpenAI 兼容模式:Claude 緩存支持差異

這是本文最核心的部分——兩種調用格式在 Claude 緩存功能上的根本差異。

Anthropic 官方明確聲明

根據 Anthropic 官方 OpenAI SDK 兼容性文檔的原文:

"Prompt caching is not supported, but it is supported in the Anthropic SDK"

這意味着,如果你通過 OpenAI 兼容模式 (/v1/chat/completions 端點) 調用 Claude,完全無法使用 prompt caching 功能

claude-prompt-caching-anthropic-native-format-guide-zh-hant 图示

Claude API 兩種調用格式功能對比

功能特性 Anthropic 原生格式 OpenAI 兼容模式
Prompt Caching 緩存 ✅ 完全支持 ❌ 不支持
PDF 文檔處理 ✅ 支持 ❌ 不支持
Citations 引用 ✅ 支持 ❌ 不支持
Extended Thinking 完整輸出 ✅ 支持 ⚠️ 部分支持 (無法查看思考過程)
Streaming 流式輸出 ✅ 支持 ✅ 支持
Tool Use 工具調用 ✅ 支持 ✅ 支持
Vision 圖像理解 ✅ 支持 ✅ 支持
Structured Outputs ✅ 支持 (strict 模式) ❌ strict 參數被忽略

爲什麼 OpenAI 兼容模式不支持 Claude 緩存

OpenAI 兼容模式的設計定位是測試和對比模型能力,而非生產環境使用:

  1. 協議差異: cache_control 參數是 Anthropic Messages API 的原生字段,在 OpenAI chat completions 格式中沒有對應字段
  2. 架構限制: 兼容層需要將 OpenAI 格式轉換爲 Anthropic 格式,這個轉換過程中緩存控制信息會丟失
  3. 優先級考量: Anthropic 官方表示,兼容層的優先級低於原生 Claude API 的可靠性和功能完整性

💡 重要提示: 如果你的業務依賴 prompt caching 來控制成本,必須使用 Anthropic 原生 Messages API 格式,而不是 OpenAI 兼容模式。

Claude Prompt Caching 緩存定價詳解:最高省 90% 成本

Claude prompt caching 的定價結構是它最吸引人的地方——緩存命中的讀取價格僅爲基礎輸入價格的 10%

Claude 全模型緩存價格對比

模型 基礎輸入 5分鐘緩存寫入 1小時緩存寫入 緩存讀取 輸出
Claude Opus 4.6 $5/MTok $6.25/MTok $10/MTok $0.50/MTok $25/MTok
Claude Sonnet 4.6 $3/MTok $3.75/MTok $6/MTok $0.30/MTok $15/MTok
Claude Sonnet 4.5 $3/MTok $3.75/MTok $6/MTok $0.30/MTok $15/MTok
Claude Haiku 4.5 $1/MTok $1.25/MTok $2/MTok $0.10/MTok $5/MTok

MTok = 百萬 Token。數據來源: Anthropic 官方定價頁面 (2026年2月)

Claude 緩存定價計算規則

緩存定價遵循 3 個簡單的乘數規則:

  • 5 分鐘緩存寫入: 基礎輸入價格 × 1.25
  • 1 小時緩存寫入: 基礎輸入價格 × 2.0
  • 緩存讀取 (命中): 基礎輸入價格 × 0.1

以 Claude Sonnet 4.6 爲例,假設你有一個 10 萬 Token 的系統提示詞:

場景 每次請求輸入成本 10,000 次請求總成本
不使用緩存 $0.30 $3,000
首次請求 (緩存寫入) $0.375 一次性成本
後續請求 (緩存命中) $0.03 $300
節省比例 約 90%

💰 成本優化: 對於重複使用相同 system prompt 的場景,通過 API易 apiyi.com 平臺以 Anthropic 原生格式調用 Claude API,可以充分利用 prompt caching 實現最高 90% 的成本節省。

Claude Prompt Caching 實戰代碼:Anthropic 原生格式調用

下面通過具體代碼示例,展示如何正確啓用 Claude prompt caching。

基礎調用示例:Anthropic 原生格式 + Extended Thinking

curl https://api.apiyi.com/v1/messages \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 16000,
    "stream": false,
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "messages": [
      {
        "role": "user",
        "content": "What is 27 * 453?"
      }
    ]
  }'

上面是一個基礎的 Anthropic 原生格式調用,使用了 Extended Thinking 功能。接下來看如何在此基礎上啓用 prompt caching。

自動緩存模式:最簡單的 Claude 緩存啓用方式

自動緩存是啓用 Claude prompt caching 最簡單的方式——只需在請求體頂層添加 cache_control 字段:

curl https://api.apiyi.com/v1/messages \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "cache_control": {"type": "ephemeral"},
    "system": "你是一個專業的技術文檔助手,幫助用戶理解 AI 模型的使用方法和最佳實踐。你的回答應該準確、簡潔、實用。",
    "messages": [
      {"role": "user", "content": "Claude Sonnet 4.6 有哪些主要特性?"},
      {"role": "assistant", "content": "Claude Sonnet 4.6 是 Anthropic 推出的高性能模型..."},
      {"role": "user", "content": "它的上下文窗口有多大?"}
    ]
  }'

自動緩存模式下,系統會自動將緩存斷點放在最後一個可緩存的內容塊上。在多輪對話中,緩存點會隨着對話增長自動前移。

顯式緩存模式:精確控制 Claude 緩存內容

對於需要精細控制緩存行爲的場景,可以在特定內容塊上放置 cache_control:

📄 展開查看完整的顯式緩存代碼示例
curl https://api.apiyi.com/v1/messages \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "system": [
      {
        "type": "text",
        "text": "你是一個法律文檔分析助手,擅長分析合同條款和法律風險。"
      },
      {
        "type": "text",
        "text": "[這裏放入一份 50 頁的法律合同全文...約 10 萬 Token 的內容]",
        "cache_control": {"type": "ephemeral"}
      }
    ],
    "messages": [
      {
        "role": "user",
        "content": "請分析這份合同中的關鍵條款和潛在風險。"
      }
    ]
  }'

在這個示例中,大量的法律文檔被標記爲緩存內容。首次請求會寫入緩存,後續 5 分鐘內對同一文檔的不同問題查詢,都會命中緩存,只需支付 10% 的讀取費用。

1 小時長效緩存:Claude 擴展緩存時長

如果 5 分鐘默認緩存時長不夠用,可以選擇 1 小時緩存:

"cache_control": {"type": "ephemeral", "ttl": "1h"}

1 小時緩存適用於:

  • Agent 工作流中的長時間任務 (超過 5 分鐘)
  • 用戶對話間隔可能超過 5 分鐘的場景
  • 需要更高 rate limit 利用率的場景 (緩存命中不扣減 rate limit)

🚀 快速開始: 推薦使用 API易 apiyi.com 平臺快速測試 Claude prompt caching 功能。該平臺完整支持 Anthropic 原生 Messages API 格式,包括 cache_control 參數,5 分鐘即可完成集成驗證。

Claude Prompt Caching 緩存性能監控與調試

啓用緩存後,需要通過 API 響應中的 usage 字段來監控緩存效果。

Claude 緩存響應中的關鍵字段

{
  "usage": {
    "input_tokens": 50,
    "cache_creation_input_tokens": 100000,
    "cache_read_input_tokens": 0,
    "output_tokens": 500
  }
}
字段 含義
input_tokens 緩存斷點之後的輸入 Token 數
cache_creation_input_tokens 本次寫入緩存的 Token 數
cache_read_input_tokens 從緩存讀取的 Token 數
output_tokens 輸出 Token 數

總輸入 Token 計算公式:

total_input = cache_read_input_tokens + cache_creation_input_tokens + input_tokens

claude-prompt-caching-anthropic-native-format-guide-zh-hant 图示

Claude 緩存未命中的常見原因排查

如果你發現緩存始終未命中,檢查以下問題:

  1. 調用格式錯誤: 使用了 OpenAI 兼容模式而非 Anthropic 原生格式
  2. 內容不一致: 緩存匹配要求 100% 完全一致的 prompt 前綴
  3. Token 不足: 未達到模型的最低緩存 Token 數要求
  4. 超時失效: 超過 5 分鐘未使用導致緩存過期
  5. 參數變更: 修改了 tool_choice、圖片內容或 thinking 參數

Claude 各模型最低緩存 Token 要求

模型系列 最低可緩存 Token 數
Claude Opus 4.6 / Opus 4.5 4,096 tokens
Claude Sonnet 4.6 / Sonnet 4.5 / Sonnet 4 / Opus 4.1 / Opus 4 1,024 tokens
Claude Haiku 4.5 4,096 tokens
Claude Haiku 3.5 / Haiku 3 2,048 tokens

如果你的 prompt 不到最低 Token 數,即使標記了 cache_control 也不會生效——請求會正常處理但不會緩存。

🎯 調試技巧: 在 API易 apiyi.com 平臺調用 Claude API 時,可以通過響應中的 usage 字段快速判斷緩存是否生效。如果 cache_read_input_tokens 爲 0 且 cache_creation_input_tokens 也爲 0,說明緩存功能未正確啓用。

Claude Prompt Caching 緩存常見問題 FAQ

Q1: OpenAI 兼容模式下調用 Claude 能使用緩存嗎?

不能。 這是 Anthropic 官方明確聲明的限制。OpenAI 兼容模式 (/v1/chat/completions 端點) 不支持 prompt caching。你必須使用 Anthropic 原生 Messages API 格式 (/v1/messages 端點) 才能使用緩存功能。

通過 API易 apiyi.com 平臺,你可以同時使用兩種格式調用 Claude API——如果需要緩存功能,選擇 /v1/messages 端點即可。

Q2: Claude 緩存寫入比普通輸入貴,還值得用嗎?

絕對值得。 緩存寫入僅比基礎輸入貴 25% (5 分鐘 TTL),但緩存命中只需要 10% 的費用。只要同一內容被使用 2 次以上,就能回本並開始省錢。以 10 萬 Token 的 system prompt 爲例:

  • 無緩存: 每次 $0.30 (Sonnet 4.6)
  • 緩存寫入: $0.375 (僅首次)
  • 緩存讀取: $0.03 (後續每次)
  • 第 2 次調用就開始省錢

Q3: 如何在代碼中從 OpenAI 格式遷移到 Anthropic 原生格式?

關鍵改動點:

  • 端點: /v1/chat/completions/v1/messages
  • 請求頭: 添加 anthropic-version: 2023-06-01
  • 消息格式: messages 數組結構基本一致
  • System prompt: 從 messages 中提取到獨立的 system 字段
  • 添加 cache_control 參數

API易 apiyi.com 平臺同時支持兩種端點,遷移時只需修改請求路徑和格式即可,無需更換 API Key。

Q4: Claude 緩存可以跨請求共享嗎?

緩存在同一 Workspace 內共享 (2026年2月5日起從組織級改爲 Workspace 級隔離)。不同組織之間絕不共享緩存。

Q5: 緩存和 Batch API 可以疊加使用嗎?

可以。 Batch API 提供 50% 折扣,緩存定價的乘數在此基礎上疊加。兩者結合可以實現最大的成本優化。建議在批量處理場景下使用 1 小時緩存 TTL 以提高命中率。

總結:Claude Prompt Caching 緩存計費的 3 個核心要點

通過本文的分析,關於 Claude prompt caching 緩存計費,你需要記住 3 個關鍵點:

  1. 只支持 Anthropic 原生格式: 緩存功能僅在 /v1/messages 端點可用,OpenAI 兼容模式 (/v1/chat/completions) 不支持
  2. 緩存命中成本僅 10%: 首次寫入多付 25%,但後續每次命中只需基礎價格的十分之一,2 次調用即可回本
  3. 正確的調用方式是關鍵: 使用 cache_control: {"type": "ephemeral"} 參數,確保達到模型最低緩存 Token 要求

推薦通過 API易 apiyi.com 平臺體驗 Claude prompt caching 的完整功能。該平臺完整支持 Anthropic 原生 Messages API,幫助你以最優成本使用 Claude 模型。

claude-prompt-caching-anthropic-native-format-guide-zh-hant 图示

參考資料

  1. Anthropic 官方 Prompt Caching 文檔: Claude API 緩存功能詳解

    • 鏈接: platform.claude.com/docs/en/build-with-claude/prompt-caching
  2. Anthropic 官方定價頁面: Claude 模型和緩存定價

    • 鏈接: platform.claude.com/docs/en/about-claude/pricing
  3. OpenAI SDK 兼容性文檔: 兼容模式功能限制說明

    • 鏈接: platform.claude.com/docs/en/api/openai-sdk

📝 作者: APIYI Team | API易技術團隊,專注 AI 大模型 API 集成與技術分享。訪問 apiyi.com 獲取更多技術教程。

Similar Posts