使用 AI 應用時,最貴的往往不是答案本身,而是每次重複送入的那段完全相同的開場白。系統提示、工具定義、背景資料、產品目錄,來來去去都是同樣數千字,但每問一次就計費一次。Prompt caching(提示快取)正是針對這項痛點而設:同一段前綴經模型處理一次後即可重用,之後再呼叫便無須從頭計算。
Prompt caching 將提示開頭一段固定內容快取起來,之後相同前綴即無須重算。寫入成本略高,但讀取成本可低至原本一成,重複使用越多次,節省越明顯。
一、這項技術實際上節省了什麼?
Prompt caching 節省的是模型重複處理相同前綴的運算量,價格與速度同步改善。讀取成本可降至原價一成;快取的是運算狀態而非文字,模型仍會即時生成新回應。
要理解它節省了什麼,先要了解模型如何讀取提示。模型收到文字後,會逐個 token 計算一組內部狀態(行內稱為 KV state),計算完成才開始生成答案。這組狀態原本用完即棄,下次再送入相同文字時,仍需從頭計算一次。
Prompt caching 所做的,就是把「開頭一段不會變動的文字」所計算出的狀態保存起來。下次請求若前綴完全相同,模型即可直接取回該組狀態,無須重算,只集中處理新增的內容。由於節省的是運算,因此同時反映在價格與速度兩方面:官方數字為讀取成本可降至原價一成,延遲亦明顯縮短。
須留意一點:快取儲存的是「狀態」而非「文字」,因此不會因為快取而取得舊答案;模型同樣須即時生成新回應,只是無須重複消化同一段背景。
二、何時適合使用,何時不適合?
判斷原則很簡單:同一段前綴預計使用超過一次,就值得快取。固定系統提示、大量工具定義、大型參考資料皆適合;反之,一次性短提示無法命中快取,甚至得不償失。
| 場景 | 適合快取? | 原因 |
|---|---|---|
| 固定系統提示(角色、語氣、格式) | 非常適合 | 每次開場都相同,命中率最高 |
| 大量工具定義(function schema) | 適合 | 每次請求都要重貼,快取後即省 |
| 大型參考資料(手冊、法規、知識庫) | 適合 | 同一批文件被反覆引用 |
| 純一次性問答、提示很短 | 不值得 | 用不到快取,甚至得不償失 |
判斷原則很簡單:同一段前綴,若預計會使用超過一次,就值得快取。
三、Anthropic 如何手動設定 cache_control?
Anthropic 由使用者指定快取斷點:不變內容排前,結尾加 cache_control 標記並指定 ephemeral,變動內容排其後;之後相同前綴按讀取價計費。
Anthropic 的做法是由使用者指定「快取斷點」,概念上分為三步:
- 排位:把不會變動的內容(系統提示、工具定義、大型文件)排在最前面。
- 落斷點:在其結尾加上
cache_control標記,指定使用ephemeral類型。 - 收尾:把會變動的內容(例如使用者本次問題)排在斷點之後。
第一次請求會產生寫入費用(比普通輸入貴約兩成半),之後相同前綴的請求則按快取讀取價計費,便宜許多。須記得:一旦斷點之前的任何一個字改動,該段及其後內容就會失效,需要重新寫入。
另外,Anthropic 有一項貼心設計:即使未特別設定斷點,部分情況系統也會自動在合理位置快取,但不宜依賴它,主動控制才穩定。
官方文件(有齊參數同範例):【點擊前往】

四、OpenAI 如何運作快取?
OpenAI 預設自動快取:相同前綴達到最低長度門檻(新模型約一千 token),系統自動保存並在下次自動命中,無須修改程式碼。寫入略貴,讀取大幅折讓。
OpenAI 的取向不同,採取預設自動快取。只要相同前綴達到最低長度門檻(新模型約一千個 token 起),系統就會自動保存,之後相同前綴自動命中,無須修改任何程式碼。收費模式類似:寫入略貴,讀取大幅折讓。
想用得更盡,可刻意把穩定內容排前面、易變內容排後面,提高命中率。須留意工具清單、模型選擇、輸出格式設定這幾項都會影響前綴:改了其中一項,之前快取就可能對不上。因此若經常更改這些設定,最好集中在開發階段測試,不要在正式環境頻繁切換。
OpenAI 官方文件:【點擊前往】

五、實務上最常遇到哪些陷阱?
實務上常見三類陷阱:快取有時限,隔太久需重新寫入;內容順序一經調換,前綴便不再匹配;易變內容置於最前,整段快取即報廢。將提示分層排列,可同時提高命中率並易排查。
- 快取有時間限制:大部分平台的快取屬短暫保存,不會永久留住,隔太久再呼叫便要重新寫入。
- 順序很重要:明明內容相同,但調換了段落次序,前綴便不再匹配。
- 不要放易變內容在前面:時間戳、用戶名、隨機 ID 擺在開頭,整段快取即刻報廢。
實務做法是將提示分三層:最底層是永遠不變的系統設定與工具定義,中間層是一段時間內不變的參考資料,最上層才是本次請求。如此命中率最高,也最易排查為何沒有命中快取。
六、值得採用嗎?
每日只執行數次者,節省未必夠抵修改時間。但屬代理、客服機械人、內容生成等「同一段背景反覆使用」場景,快取幾乎零成本減費,改動小、回報直接,成本可由十倍降至兩倍。
若應用每日只執行數次,節省的費用未必夠抵修改程式的時間。但只要屬代理、客服機械人、內容生成這類「同一段背景會反覆使用」的場景,快取幾乎是免費的減成本手法,改動量小、回報直接。實測同一段長背景連續詢問十次,成本可由原本的十倍降至兩倍左右,效果相當明顯。
記住一句:穩定的內容排前面,會變的內容排最後。記住這句,就已掌握快取九成精髓。