Claude 提示詞緩存(Prompt Caching)入門:緩存時間、價格倍率與命中率

Claude API 的提示詞緩存能把重複的長前綴(系統提示、工具定義、長文檔、對話歷史)緩存起來,讀緩存只收少量費用。本文講自動緩存與斷點寫法、5 分鐘和 1 小時兩種時長、價格倍率、最短長度、怎麼看命中率以及命中率低的原因。

NNathaniel bigo··原創首發·AI 輔助撰寫
10 分鐘讀完
資料核對於 2026-10-07 · 依據官方文檔與公開資料整理 其他 帳號
本文根據 Claude API 官方文檔《Prompt caching》整理,核對日期 2026-10-07。價格以倍率說明為主,各模型的具體單價見官方定價頁。

適用於誰

  • 用 Claude API 做客服機器人、文檔問答、代碼助手,每次請求都帶着一大段相同的系統提示或資料,想省錢提速的開發者;
  • 搜「claude prompt caching」「claude 緩存時間」「緩存命中率低」「緩存價格」的人;
  • 想看懂 API 返回裏 cache_read_input_tokens 這些字段的人。

結論先說

  1. 緩存的是「前綴」:按 tools → system → messages 的順序,從開頭一直到你標記 cache_control 的那個內容塊為止。下次請求的這段前綴一字不差,就能直接讀緩存。
  2. 兩種開法:在請求頂層加一個 "cache_control": {"type": "ephemeral"} 就是自動緩存(多輪對話最省事);也可以在具體內容塊上打斷點精細控制,一次請求最多 4 個斷點。
  3. 時長:預設 5 分鐘,每次命中會免費續期;也可以選 1 小時("ttl": "1h")。
  4. 價格倍率(官方):5 分鐘緩存寫入 = 基礎輸入價 × 1.25;1 小時緩存寫入 = × 2;讀緩存 = × 0.1(個別模型更低:Opus 5.5 為 × 0.05,Fable 5.1 為 × 0.025)。斷點本身不收費。
  5. 太短不緩存:不同模型有最短可緩存長度(512~4096 token 不等),不夠長時靜默不緩存、也不報錯——這是「命中率為 0」最常見的原因。

一、它是怎麼省錢的

發送帶緩存設定的請求時:

  1. 系統先檢查這段前綴最近是否緩存過;
  2. 緩存過就直接用,處理更快、費用更低;
  3. 沒緩存過就完整處理一遍,並在回覆開始時把前綴寫進緩存。

適合的場景:提示詞裏有大量示例、很長的背景資料、重複執行的固定指令、長篇多輪對話、帶很多工具的智能體。官方還提到一個用法:有了緩存,可以在提示詞裏放 20 個以上高質素示例,而不用擔心每次都付全價。

緩存不影響輸出:用不用緩存,模型給出的回答是一樣的;緩存只作用於輸入部分。

二、最簡單的寫法:自動緩存

在請求頂層加 cache_control,系統會自動把斷點放在最後一個可緩存的內容塊上,對話變長時斷點也會自動後移:

python
import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    cache_control={"type": "ephemeral"},          # 開啟自動緩存
    system="你是公司的客服助手。以下是完整的產品手冊:……(很長的內容)",
    messages=[
        {"role": "user", "content": "退貨流程是什麼?"},
    ],
)
print(response.usage)

多輪對話時的效果(官方示意):

請求內容緩存行為
第 1 次系統 + 用戶 1 + 助手 1 + 用戶 2全部寫入緩存
第 2 次系統 + … + 用戶 2 + 助手 2 + 用戶 3系統到用戶 2 讀緩存;助手 2 + 用戶 3 寫入
第 3 次系統 + … + 用戶 3 + 助手 3 + 用戶 4系統到用戶 3 讀緩存;助手 3 + 用戶 4 寫入

想用 1 小時緩存:cache_control={"type": "ephemeral", "ttl": "1h"}。

三、精細控制:在內容塊上打斷點

當不同部分變化頻率不同(比如工具定義幾乎不變、產品手冊每天變、對話每輪都變),可以在具體內容塊上放 cache_control:

python
response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    system=[
        {"type": "text", "text": "你是公司的客服助手。"},
        {
            "type": "text",
            "text": "(很長的產品手冊全文……)",
            "cache_control": {"type": "ephemeral"},   # 緩存到這裏為止
        },
    ],
    messages=[{"role": "user", "content": "保修期多久?"}],
)

要點:

  • 把不變的內容放前面:工具定義、系統指令、背景資料、示例在前,每次都變的內容(時間戳、用戶問題)在後;
  • 斷點要放在「每次都相同」的最後一個塊上,而不是放在會變的塊上——官方特別指出,斷點放在含時間戳或用戶新消息的塊上,前綴永遠對不上,緩存永遠寫不進去也讀不出來;
  • 一次請求最多 4 個斷點(自動緩存會佔用其中 1 個);斷點多不會多收錢,你只為實際寫入和讀取的內容付費。

四、價格倍率

項目相對基礎輸入單價
5 分鐘緩存寫入× 1.25
1 小時緩存寫入× 2
緩存讀取(命中及續期)× 0.1(Opus 5.5 為 × 0.05;Fable 5.1、Mythos 5.1 為 × 0.025)
斷點本身不收費

這些倍率會和批量處理(Batch API)折扣等其他價格因素疊加。各模型的基礎單價見官方定價頁。簡單理解:同一段前綴只要被讀取一次以上,通常就比不緩存划算。

5 分鐘還是 1 小時?官方建議:如果這段提示詞使用頻率高於每 5 分鐘一次,用 5 分鐘緩存就行(每次命中免費續期);1 小時緩存適合「隔幾分鐘到一小時才會再用一次」的情況,比如子任務運行超過 5 分鐘、用戶可能過一會兒才回復。另外,緩存命中不計入速率限制,長緩存也有助於提高速率限制的利用率。同一請求裏混用兩種時,1 小時的緩存條目必須排在 5 分鐘的前面。

注意計時方式:有效期從寫入或讀取緩存的那次請求開始時算起,生成回覆的時間也計入。比如一次回覆流式輸出了 4 分鐘,下一次複用請求要在回覆結束後約 1 分鐘內發出,才趕得上 5 分鐘的有效期。

五、怎麼看有沒有命中

看響應裏的 usage(流式輸出時在 message_start 事件裏):

字段含義
cache_creation_input_tokens本次寫入緩存的 token 數
cache_read_input_tokens本次從緩存讀取的 token 數
input_tokens最後一個斷點之後、沒有參與緩存的 token 數

總輸入 = cache_read + cache_creation + input_tokens。所以開了緩存後 input_tokens 往往很小,這不是少算了,而是大部分輸入走了緩存。

如果 cache_creation_input_tokens 和 cache_read_input_tokens 都是 0,說明這次根本沒緩存——最可能是沒達到最短長度。

六、最短可緩存長度(Claude API)

模型最短長度
Fable 5.1、Fable 5、Opus 5.5、Opus 5、Sonnet 5.5512 token
Opus 4.8、Sonnet 5、Sonnet 4.6、Sonnet 4.51024 token
Opus 4.72048 token
Opus 4.6、Opus 4.5、Haiku 4.54096 token

不夠長時,官方建議:如果只差一點,把可緩存的內容補到門檻以上通常是值得的,因為讀緩存比普通輸入便宜得多。

七、命中率低的原因排查

官方清單:

  1. 前綴不完全一致:哪怕差一個字、一張圖都不行;用顯式斷點時,cache_control 的位置每次也要相同;
  2. 超過有效期:兩次請求間隔超過 5 分鐘(或 1 小時);
  3. 改了會讓緩存失效的參數:
  • 修改工具定義 → 整個緩存失效;
  • 開關網頁搜尋、引用功能、fast 模式 → system 和 messages 緩存失效;
  • 修改 tool_choice、增刪圖片、修改思考(thinking)配置、修改 effort → messages 緩存失效;
  1. 沒達到最短長度;
  2. 斷點放在了會變的塊上(見第三節);
  3. JSON 鍵順序不穩定:某些語言(如 Swift、Go)把對象轉 JSON 時會打亂鍵順序,導致工具調用塊每次都不一樣;
  4. 並發請求:緩存條目要等第一個請求的回覆開始後才可用,並行發出的請求拿不到;需要命中就等第一個請求開始返回後再發後續請求;
  5. 跨工作區:在 Claude API 上緩存按工作區隔離,不同工作區之間不共享。

官方還提供了「緩存診斷(Cache diagnostics)」功能,讓 API 對比連續兩次請求,告訴你前綴從哪裏開始不一致。

另外,在部分新模型上,想在對話中途追加系統指令又不破壞緩存,可以在 messages 末尾追加一條 role: "system" 消息,而不是修改頂層 system 字段(具體支持哪些模型見官方文檔)。

常見問題

Q:緩存會不會泄露給別人?

不會。官方說明緩存在組織之間完全隔離,即使提示詞一模一樣也不共享;在 Claude API 上還按工作區隔離。

Q:哪些內容能緩存?

工具定義、system 內容塊、用戶和助手的文本消息、用戶消息裏的圖片和文檔、工具調用和工具結果都可以。思考塊不能直接打 cache_control,但可以隨之前的助手消息一起被緩存;空文本塊不能緩存。

Q:Claude Code 也用提示詞緩存嗎?

用,而且是自動的。Claude Code 的緩存機制(訂閱用戶的緩存時長、什麼操作會讓緩存失效)見官方《How Claude Code uses prompt caching》,省 token 的做法詳見本站《Claude Code 上下文滿了怎麼辦:/compact、/clear 與省 token 技巧》。

Q:Python SDK 怎麼寫多輪對話?

詳見本站《Claude API Python 入門:安裝 SDK、第一個請求、流式輸出與多輪對話》,在 messages.create 裏加上 cache_control 即可。

參考資料

  • Prompt caching(官方):https://platform.claude.com/docs/en/build-with-claude/prompt-caching
  • Cache diagnostics(官方):https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics
  • Pricing(官方):https://platform.claude.com/docs/en/about-claude/pricing
  • How Claude Code uses prompt caching(官方):https://code.claude.com/docs/en/prompt-caching
需要開通或續費?Claude Pro 充值 →

Nathaniel 的更多內容

  1. 01

    AI 學習路線:零基礎從哪開始,6 個階段、每階段該讀哪幾篇教學(2026)

    AI 學習路線怎麼走?給零基礎的人一條循序漸進的路徑:先選一個助手用順,再學提問,再用進日常工作,按需學做圖做影片,守住私隱與版權,最後進階自動化和編程。每個階段都配了本站對應的教學。

    其他 AI 工具0
  2. 02

    AI 瀏覽器有哪些:Perplexity Comet、Opera Neon、Dia、Brave Leo 與 Edge Copilot 的官方說法對照

    AI 瀏覽器有哪些?按官方頁面整理 Perplexity Comet、Opera Neon、Dia、Brave Leo 和 Edge 裏的 Copilot:官方自述的定位、支持的平台、免費還是訂閱,以及 Gemini、Claude 的 Chrome 方案和已停用的 ChatGPT Atlas。

    其他 AI 工具0
  3. 03

    即夢國際版 Dreamina 是什麼:官方站入口、能生成什麼、免費積分和模型(2026)

    即夢國際版 Dreamina 是什麼?官方站是 dreamina.capcut.com,是一個圖片、影片和數字人一體的 AI 創作平台。按官方首頁和 FAQ 講:能生成什麼、免費用戶每天 120 積分、列出的 Seedance 與 Seedream 模型,以及和國內即夢怎麼區分。

    其他 AI 工具0
  4. 04

    Kimi K3 Coding Plan 是什麼、怎麼用:Kimi Code 會員、模型 ID、套餐價格和額度規則

    Kimi K3 Coding Plan 是什麼?按 Kimi 官方文檔核對:官方現在叫 Kimi Code,是 Kimi 會員權益裏的編程服務,Plus 及以上才有;講 K3 等模型 ID、國內新套餐價格、三種客戶端、第三方工具接入和額度規則。

    Kimi0
  5. 05

    DeepSeek V4 Pro 和 Flash 的區別與 API 價格:官方價格頁逐項對照(高峰與空閒時段)

    DeepSeek V4 Pro 和 Flash 有什麼區別、API 怎麼收費?按 DeepSeek 官方價格頁(2026-10-19 查詢)列出兩個模型的版本、上下文、圖像理解、並發和每百萬 token 價格,說明高峰與空閒時段的計費差別和舊模型名怎麼處理。

    其他 AI 工具0
  6. 06

    GPT-6 Pro(Astra)怎麼用、哪些套餐有:怎麼選到 Pro 檔、用量限制和 Pro 三檔價格

    GPT-6 Pro(Astra)怎麼用、哪些套餐有?按 OpenAI 幫助中心核對:聊天裏 Pro 檔給 Pro 100、Pro 200、Business 和 Enterprise;Plus 在 Work 和 Codex 裏含 Astra。講怎麼選到、用量上限和官方 Pro 價格。

    ChatGPT0

同產品的其他教學

  1. 01

    Claude Pro 和 Max 的區別:用量、價格、Fable 模型和每月 API 額度怎麼選

    Claude Pro 和 Max 有什麼區別?按官方定價頁和幫助中心核對:Max 有 5x、20x 兩檔用量,Pro 與 Max 在價格、Fable 模型、每月 API 額度和計費週期上的差別,以及什麼情況下 Pro 夠用、什麼情況下該升 Max。

    Claude0
  2. 02

    Claude 登入不了、用不了、打不開怎麼辦:按官方幫助中心逐條排查

    Claude 無法登入、無法使用、無法打開怎麼辦?按官方幫助中心的順序排查:收不到登入電郵、登入報錯、Google 登入出問題、系統繁忙、額度用完、官方故障,以及所在地區是否在官方支持名單裏。

    Claude0
  3. 03

    Claude 怎麼註冊:官方註冊流程、手機驗證要求,以及提示無法註冊時官方怎麼說

    Claude 怎麼註冊?打開 claude.ai,用 Google 或電郵登入連結創建帳號,再用支持地區的手機號收短訊驗證碼。講清官方的註冊條件、手機驗證的限制,以及收不到驗證碼、號碼被用過多次時官方的處理辦法。

    Claude0
  4. 04

    Claude 怎麼用:新手入門,從打開聊天到寫出第一個好問題

    Claude 怎麼用?按官方幫助中心整理的新手路徑:在網頁、桌面版或手機 App 打開聊天,像對同事一樣寫需求,用輸入框的「+」和「/」找功能,點模型名換模型,免費版有每 5 小時重置的上限。

    Claude0
  5. 05

    Claude 怎麼設定成中文:介面語言、回答語言和語音語言分別怎麼設

    Claude 怎麼設定中文?官方幫助中心列出的 11 種介面語言裏目前沒有中文,但 Claude 會用你提問的語言回答,直接用中文問即可;想固定用中文,可在設定的 Instructions for Claude 裏寫一句。語音模式的語言要單獨選。

    Claude0
  6. 06

    MCP Inspector 怎麼用:安裝、啟動命令、調試 MCP 伺服器與 v2 的變化

    MCP Inspector 是什麼、怎麼安裝和使用?按 MCP 官方文檔講清網頁、命令行、終端介面三種模式的啟動命令,怎麼連本地和遠程伺服器、怎麼傳環境變量,密鑰存在哪,以及 v2 相比舊教學在端口、令牌變量名和 Node 版本上的變化。

    Claude其他 AI 工具0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~