
prompt caching 是什麼?重送的那一段,第二次只收一成
寫進快取多付兩成五,第二次呼叫就回本。
你的 agent 每跑一輪,都會把同一份系統提示、同一份工具定義、同一段對話歷史,原封不動再送一次給模型。跑到第十輪,前九輪講過的話全部重送一次。
這不是誰寫壞了。模型 API 沒有記憶,上下文視窗裡的每一個 token 都要你自己帶去。所以 agent 的帳單跟聊天機器人長得不一樣:聊天是一問一答,agent 是同一段開頭被重送幾十次。
提示快取(prompt caching) 是模型服務提供的一種計費與運算優化:你送出的請求,前綴如果跟先前某次逐字相同,服務端就跳過重算、直接沿用暫存的結果,並以遠低於原價的費率計費。2026 年 8 月,Anthropic、OpenAI、Google 三家的快取讀取價都是各自輸入價的十分之一。它省的是輸入那一格,跟輸出價無關。
為什麼吃到成本的是 agent,不是聊天機器人
一場 30 輪的 agent 任務,假設系統提示加上工具定義是 2 萬 token。這 2 萬 token 每一輪都要重送,30 輪就是 60 萬 token 的輸入——而且對話歷史還會自己長大,這只是不會變的那一半。
用 Claude Opus 5 的官方單價(輸入每百萬 token 5 美元、5 分鐘快取寫入 6.25 美元、快取讀取 0.5 美元)把這 2 萬 token 的那一格算出來:
| 第一輪 | 之後每輪 | 30 輪合計 | |
|---|---|---|---|
| 不快取 | $0.100 | $0.100 | $3.000 |
| 開 5 分鐘快取 | $0.125 | $0.010 | $0.415 |
本刊照官方單價與倍率換算,非官方數字;實際帳單會隨命中率與續期次數浮動。
回本點比多數人以為的早得多。寫進快取要多付兩成五,讀出來只要一成——第二次呼叫就已經比不快取便宜(1.25 + 0.1 = 1.35 倍,對上兩次全價的 2 倍)。選一小時版的寫入是兩倍,第三次呼叫回本。這兩個數字也是本刊照官方倍率換算的。
三家的規則差在哪
讀取價都收斂到一成之後,差別搬到了另外三件事:誰動手、活多久、有沒有別的錢要付。
| Anthropic Claude | OpenAI | Google Gemini | |
|---|---|---|---|
| 誰動手 | 你自己在請求裡標 cache_control,最多 4 個斷點 |
自動比對前綴,不必改程式;GPT-5.6 以後官方要求帶 prompt_cache_key 才穩定命中 |
隱式快取預設開啟;顯式快取要自己建 cache 物件 |
| 最低 token 數 | 依模型 512/1,024/2,048/4,096 | 1,024 | 2,048~4,096(依模型) |
| 讀取價 | 輸入價 0.1 倍 | 輸入價 0.1 倍 | 輸入價 0.1 倍 |
| 寫入價 | 5 分鐘 1.25 倍、1 小時 2 倍 | GPT-5.6 起 1.25 倍;更早的模型不另收 | 不另收寫入費 |
| 活多久 | 5 分鐘或 1 小時,命中會續期 | 預設 30 分鐘 | 隱式自動;顯式自訂 |
| 另外要付的 | 無 | 無 | 顯式快取每百萬 token 每小時 1 美元儲存費 |
三家的設計哲學差在誰負責決定什麼該被快取。OpenAI 幫你決定,代價是你控制不了它決定得對不對;Anthropic 要你自己標,代價是標錯就沒省到;Gemini 兩種都給,但顯式那條多了一根時間軸。
三個會讓你算錯帳的邊界
第一,太短的東西不會被快取,標了也不會。 Anthropic 的文件把話說死:短於門檻的提示「cannot be cached, even if marked with cache_control」。你以為開了,其實一次都沒命中,而帳單上不會有任何地方告訴你這件事——除非你去讀 usage 欄位。
第二,前綴要逐字相同,而「前綴」比你想的長。 系統提示開頭放一句「現在時間是 2026-08-04 09:16」,或是把使用者名稱塞在最前面,就等於每次都是全新前綴,快取永遠不會命中。Anthropic 的失效順序是 tools → system → messages:動一個工具定義,後面整條鏈全部作廢;連開不開網頁搜尋、要不要引用標註,都會把 tools 那一層打掉。
第三,快取要等第一個回應開始才存在。 官方明寫,要等前一個回應開跑,快取項目才可用。也就是說你一次併發送出十個請求,那十個全部是 miss,第十一個才開始省。要省,得先送一個把快取暖起來。
Gemini 的顯式快取還有第四件事:它按小時收儲存費,放著不用也在計費。建了一個 20 萬 token 的快取忘記刪,一天就是 4.8 美元,跟你有沒有讀它無關。
你可以帶走的三件事
第一,先讀 usage 欄位,不要憑感覺。 Anthropic 回 cache_creation_input_tokens 與 cache_read_input_tokens,OpenAI 回 cached_tokens,Gemini 回 usage.total_cached_tokens。這三個欄位是唯一能證明你真的省到錢的東西。命中率算法很簡單:讀取 token 除以輸入 token 總量。
第二,把會變的東西往後排。 順序照 tools → system → messages,愈穩定的愈前面,時間戳、使用者資料、當前狀態一律往後推到斷點之後。這是快取設計唯一真正要動腦的一步,其餘都是照文件填。
第三,快取省輸入,不省輸出。 如果你的 agent 帳單是輸出主導——大量寫程式、長篇生成——快取救不了你,要換的是模型或減少輪數(token 支出裝上限那條路)。先把帳單拆成輸入與輸出兩格再決定要不要花力氣。
還有一件事三家都沒給:命中的保證。快取是 best-effort,沒有 SLA、沒有承諾命中率,服務端隨時可以把你的項目丟掉。所以它適合當成本優化,不適合當架構前提——如果你的系統是「快取沒命中就會超時」,那不是快取的問題,是設計把一個盡力而為的機制當成了保證。
資料來源:Anthropic 官方 prompt caching 文件與定價表、OpenAI 官方 prompt caching 指南與定價頁、Google Gemini API 官方 context caching 文件與定價頁(皆於 2026 年 8 月 4 日上午核對)。本篇是文件檢視,表格內的美元金額為本刊照官方單價換算,本刊未實測各家的實際命中率。
FAQ
常見問題
- prompt caching 是什麼?
- 提示快取是模型服務提供的計費與運算優化:請求的前綴若與先前某次逐字相同,服務端跳過重算、沿用暫存結果,並以遠低於原價的費率計費。2026 年 8 月,Anthropic、OpenAI、Google 三家的快取讀取價都是各自輸入價的十分之一。
- 開快取一定比較省嗎?
- 只要同一段前綴在有效期內會被用到第二次就會省。以 Anthropic 的 5 分鐘快取為例,寫入是輸入價的 1.25 倍、讀取是 0.1 倍,第二次呼叫的累計成本(1.35 倍)就已經低於兩次全價(2 倍)。一小時快取的寫入是 2 倍,第三次呼叫回本。
- 為什麼我開了快取卻沒省到錢?
- 三個常見原因:一是提示長度低於該模型的最低快取門檻(512 到 4,096 token 不等),標了也不會被快取;二是前綴不是逐字相同,例如把時間戳或使用者名稱放在系統提示開頭;三是快取項目要等前一個回應開始後才存在,同時併發送出的第一批請求全部不會命中。
- prompt caching 會降低輸出的費用嗎?
- 不會。提示快取只作用在輸入 token 這一格。如果帳單是輸出主導,要處理的是模型選型或減少互動輪數,不是快取。
- Gemini 的顯式快取要注意什麼?
- 它額外收取每百萬 token 每小時 1 美元的儲存費,而且未被讀取也照樣計費。建立後忘記刪除的快取會持續產生費用。
SOURCES
- APrompt caching — Anthropic 官方文件
- APrompt caching — OpenAI 官方指南
- AOpenAI API 定價頁
- AContext caching — Gemini API 官方文件
- AGemini API 定價頁
來源分級:A = 一手公告/論文/官方文件 · B = 可信媒體 · C = 可參考但需脈絡 · D = 觀察用,不可當事實。
本文由 AI 協助研究與起草,矽基前沿編輯部編修,總編輯廖玄同審閱定稿。 編輯方針與 AI 使用說明


