Claude 中的提示快取運作方式是將訊息上所做的運算工作儲存起來,以便在後續請求中重複使用。這使得使用快取內容的請求既更便宜又更快執行。

此流程遵循一個簡單的模式:您的初始請求會寫入快取,而後續請求則可以從快取中讀取。快取會存在 5 分鐘,因此此功能僅在您重複傳送相同內容時才有用——但這種情況在實際應用中極為常見。
快取斷點
對訊息所做的工作不會自動被快取。我們必須手動在某個區塊加上「快取斷點」。斷點之前的所有工作都會被快取,而且只有在包含斷點在內的內容完全相同時,後續請求才會使用該快取。

當您需要加入快取斷點時,必須使用撰寫文字區塊的完整形式,而不是簡寫形式。以下是兩者的差異:
# 簡寫形式-無法新增快取斷點
user_message = {
"role": "user",
"content": "Hi there!"
}
# 完整形式-快取斷點所需
user_message = {
"role": "user",
"content": [
{
"type": "text",
"text": "Hi there!",
"cache_control": {
"type": "ephemeral"
}
}
]
}快取斷點如何運作
快取斷點可以跨越多則訊息,也可以快取助理訊息。當您放置一個斷點時,該點之前的所有內容都會被快取。請記住,內容必須完全相同才能使用快取!

在後續請求中,Claude 會從快取中讀取先前處理過的工作,而不是重新處理它:

斷點位置
您不僅限於文字區塊!您可以在系統提示和工具定義中加入快取斷點。這些實際上是最常見的快取機會,因為它們在請求之間很少變動。
# 帶有快取斷點的工具定義
tools = [
add_duration_to_datetime_schema,
get_current_datetime_schema,
{
"name": "set_reminder",
"description": "Sets a reminder...",
"input_schema": { ... },
"cache_control": {"type": "ephemeral"}
}
]
# 帶有快取斷點的系統提示
system = [
{
"type": "text",
"text": "You are a senior software...",
"cache_control": {"type": "ephemeral"}
}
]快取順序
在幕後,工具、系統提示和訊息會依照特定順序合併在一起,然後餵入 Claude。這會影響您的快取斷點如何運作。

您最多可以加入四個快取斷點。如果您在最後一個工具上放置斷點,該工具之前的所有內容都會被快取,但系統提示和訊息則不會。這讓您可以根據應用程式中會變動的內容,對要快取的項目進行精細控制。
最小內容長度
快取有一個最小長度限制,且取決於所使用的模型。對於本課程使用的 Claude Haiku 4.5 模型來說,內容必須至少有 4,096 個 token 才能被快取。這是您嘗試快取的所有訊息和區塊的總和,而不是個別區塊的長度。
像「Hi there!」這樣的訊息太短,無法被快取,但一段真正冗長的提示則能達到最小長度。低於最小長度的內容只會被照常處理而不快取,也不會傳回任何錯誤。若要確認,請查看回應的用量資訊:cache_creation_input_tokens 和 cache_read_input_tokens 都會是 0。
有效提示快取的關鍵在於找出您請求中保持一致的部分——通常是您的系統提示和工具定義——並策略性地放置斷點,以最大化快取命中率,同時最小化重新處理。