Claude API Prompt Caching 教學:大幅降低 Anthropic API 費用

作者:阿凱AI 技術編輯監修:Jack Wang
Claude API Prompt Caching 教學:大幅降低 Anthropic API 費用
Claude Prompt Caching發佈 2026-05-024,002

在 AI 應用開發中,Claude Prompt Caching 是降低 Anthropic API 費用最有效的手段之一,能讓你在處理長上下文時節省高達 90% 的輸入 token 成本。

查看相關日報

長上下文處理在企業級 AI 應用中已是常態。問題在於,每次請求都需重新處理龐大的系統提示詞與歷史對話,API 費用因此快速攀升。AnthropicPrompt Caching 功能直接解決這個痛點:把重複使用的提示內容快取起來,後續請求不再重新計算,成本與延遲同步下降。本文從運作原理到進階技巧,提供完整的實作指南。

什麼是 Claude Prompt Caching?核心概念與優勢

傳統上,向 Claude API 發送請求時,模型會對所有輸入 token(系統提示詞、使用者訊息、歷史對話)進行完整的注意力機制計算。即使系統提示詞在 100 次請求中完全相同,每次仍會重新計算嵌入向量與注意力權重。

Claude Prompt Caching 讓開發者把請求中的特定部分標記為「可快取」。Anthropic 伺服器偵測到這些內容與快取完全一致時,直接讀取快取結果,跳過重新計算。費用也隨之降低:快取輸入 token 的定價約為普通輸入的 10%。

這在 2026 年的 AI 開發環境中格外重要。評估與推理成本已超越訓練成本,生產環境中維持長效 AI Agent 的上下文維護費用往往被低估。Prompt Caching 讓開發者能以更低的邊際成本擴展應用規模。

對客服機器人、程式碼助手或內容生成器而言,只要系統提示詞不變,快取命中後的每次請求輸入成本都會大幅下降。

事前準備:環境設定與 API 基礎

取得 API 金鑰

你需要有效的 Anthropic API 帳號與金鑰。請務必用環境變數儲存 API Key,避免硬編碼進程式碼導致外洩。

安裝 Python SDK

Anthropic 提供官方維護的 Python SDK,內建對 Prompt Caching 的支援,無需手動處理 HTTP Header:

pip install anthropic

使用 Node.js、Java 或 Go 的開發者,請確認使用最新版本的官方 SDK——舊版本可能不支援 cache_control 參數。

確認模型支援

Prompt Caching 目前支援 Claude 3.5 Sonnet、Claude 3.5 Haiku 以及 Claude 4 系列模型。建議開發階段先用 Claude 3.5 Sonnet 測試,其長上下文與快取支援最為成熟。

Step 1:啟用 Prompt Caching 的基本設定

啟用 Prompt Caching 的核心是正確使用 cache_control 參數,告訴 Anthropic 伺服器哪些內容應該被快取。

哪些內容適合放入快取

最適合快取的是靜態且重複使用的內容:

  • 系統提示詞:定義 AI 角色、行為準則、輸出格式
  • 前置對話歷史:長對話中早期、不再頻繁修改的紀錄
  • 參考資料:產品手冊、程式碼庫片段等靜態知識

動態變化的內容(使用者當下的輸入、隨機生成的變數)不要放入快取,否則快取會持續失效,徒增複雜度。

基礎程式碼範例

import anthropic

client = anthropic.Anthropic()

system_prompt = """你是一位專業的程式設計師助手。

請始終使用繁體中文回答。

請在回答程式碼時,加上詳細的註解。"""

message = client.messages.create(

model="claude-sonnet-4-20250514",

system=[{"text": system_prompt, "type": "text", "cache_control": {"type": "ephemeral"}}],

messages=[

{"role": "user", "content": "請解釋 Python 中的裝飾器是什麼?"}

],

max_tokens=1024

)

print(message.content[0].text)

"cache_control": {"type": "ephemeral"} 是關鍵。ephemeral 表示臨時快取,適合大多數場景。Anthropic 自動管理快取過期時間,通常為數分鐘到數小時,取決於快取大小與使用頻率,開發者無需手動介入。

Step 2:實作範例與費用對比分析

完整範例:長上下文場景

以程式碼助手為例——專案結構說明是靜態的,使用者問題是動態的:

import anthropic

client = anthropic.Anthropic()

靜態的專案結構說明(適合快取)

project_context = """

專案結構:

  • src/
  • main.py
  • utils.py
  • tests/
  • test_main.py

... (假設這裡有數千字的專案說明)

"""

動態的使用者問題

user_question = "請幫我修改 main.py 中的 login 函數,增加錯誤處理機制。"

message = client.messages.create(

model="claude-sonnet-4-20250514",

system=[{"text": "你是一位資深後端工程師。", "type": "text", "cache_control": {"type": "ephemeral"}}],

messages=[

{"role": "user", "content": [

{"text": project_context, "type": "text", "cache_control": {"type": "ephemeral"}},

{"text": user_question, "type": "text"}

]}

],

max_tokens=2048

)

print(message.content[0].text)

解讀 usage 欄位

Anthropic 在回應的 usage 欄位提供詳細的 token 計數,有三個欄位需要重點關注:

  • cache_creation_input_tokens:首次請求時建立快取,按普通輸入 token 計費
  • cache_read_input_tokens:後續請求快取命中,費用僅為普通輸入的約 10%
  • input_tokens:總輸入 token 數,等於上述兩者加上非快取輸入

費用對比

假設系統提示詞與專案上下文合計 10,000 個 token,普通輸入定價 $3/1M tokens、快取輸入定價 $0.3/1M tokens:

| 情境 | 每次費用 |

|------|---------|

| 未啟用快取 | $0.030 |

| 快取命中(第二次起) | $0.003 |

每天 10,000 次請求,每月可節省約 $810 的輸入成本。對企業級應用,這個差距會進一步擴大。

首次請求需要建立快取,費用與未啟用時相同。快取效益從第二次請求開始才會體現。

Step 3:進階技巧與最佳實踐

最大化快取命中率

快取命中的前提是內容完全一致。一個額外的空格、換行符號或標點符號差異,都會讓快取失效。

核心策略只有一個:嚴格分離靜態與動態內容。把角色定義、格式規則、靜態知識放進快取區塊;使用者輸入、即時資料一律放在快取區塊之外。在程式碼中將系統提示詞定義為常數,避免每次請求時重新生成字串。

避免常見陷阱

快取區塊不是越大越好。過大的區塊可能導致快取更快過期,目前建議控制在 100k tokens 以內。

另一個常見失誤是把含有動態變數的字串(如使用者名稱、當天日期)放入快取區塊。這樣做的結果是每次請求都會建立新快取、快取命中率趨近於零,白白支付了快取建立費用。

結合 Stream 模式

需要即時回饋的應用可以同時啟用 Stream 模式與 Prompt Caching。快取預先處理靜態內容,Stream 模式讓模型更快開始輸出,兩者結合能同時降低費用與首字延遲(TTFT)。使用 Stream 模式時請確認 cache_control 參數已正確設定,否則快取不會生效。

常見問題 FAQ

Prompt Caching 支援哪些 Claude 模型?

目前支援 Claude 3.5 Sonnet、Claude 3.5 Haiku 以及 Claude 4 系列。Claude 2.1 等舊版模型不支援此功能。開發前請查閱 Anthropic 官方文件確認模型版本。

快取會保留多久?

Anthropic 使用 ephemeral 類型管理快取,保留時間依快取大小與使用頻率動態調整,通常在數分鐘到數小時之間。快取過期後,下次請求會重新建立快取,費用與首次相同。

如何監控快取命中率?

解析 API 回應的 usage 欄位即可計算:

快取命中率 = cache_read_input_tokens / (cache_read_input_tokens + cache_creation_input_tokens)

命中率接近 100% 表示快取策略有效。Anthropic 控制台也提供費用分析功能,可逐請求查看 token 計數。

下一步

Claude Prompt Caching 是控制 AI 應用成本的基礎工具。掌握之後,可以進一步研究 thinking 模式的精確控制,或結合本地快取策略減少 API 呼叫次數。Anthropic 官方文件會持續更新模型定價與功能異動,建議定期確認,避免用了過時的參數設定。

常見問題 FAQ

Prompt Caching 支援哪些 Claude 模型?
目前支援 Claude 3.5 Sonnet、Claude 3.5 Haiku 以及 Claude 4 系列。Claude 2.1 等舊版模型不支援此功能。開發前請查閱 [Anthropic 官方文件](https://docs.anthropic.com)確認模型版本。
快取會保留多久?
Anthropic 使用 `ephemeral` 類型管理快取,保留時間依快取大小與使用頻率動態調整,通常在數分鐘到數小時之間。快取過期後,下次請求會重新建立快取,費用與首次相同。
如何監控快取命中率?
解析 API 回應的 `usage` 欄位即可計算: ``` 快取命中率 = cache_read_input_tokens / (cache_read_input_tokens + cache_creation_input_tokens) ``` 命中率接近 100% 表示快取策略有效。Anthropic 控制台也提供費用分析功能,可逐請求查看 token 計數。

相關日報

延伸閱讀

🤖 本指南由 AI 輔助撰寫,經編輯團隊審核校對。如有疑慮,請參閱關於我們

喜歡這篇?每天早晨還有更多。

訂閱 5min AI,讓 AI 替你追蹤整個 AI 世界。