AGENTIC COMMONSAI 產業簡報

繁中EN

標籤Amazon Bedrock出版

返回文章列表

用 Amazon Bedrock prompt caching 把重複的 context 成本壓低 90%

本頁內容7 個段落
  1. 問題:重複的 context 正在吃掉你的預算
  2. 解法:在基礎設施層快取 prompt 前綴
  3. 四個關鍵參數決定快取行為
  4. 成本結構:寫入貴一點,讀取便宜很多
  5. 實作模式:從基本到進階
  6. 何時該用、何時該避開
  7. 參考來源

摘要: Amazon Bedrock 的 prompt caching 會在首次請求後快取 cachePoint 前的穩定內容,後續命中時輸入 token 單價比標準輸入低 90%。快取寫入成本高 25%,一小時 TTL 更是兩倍,因此效益取決於 TTL 內是否重複命中。功能還受到單一帳戶與 Region 範圍,以及模型最低 token 門檻限制。

問題:重複的 context 正在吃掉你的預算

設想在 Amazon Bedrock 上,你手上有份 10,000 token 的合約,要拿它去問 50 個不同的問題。帳單上出現的會是 500,000 個輸入 token 的全額費用——儘管模型每一次看到的幾乎都是同一段文字。這個浪費模式,是 AWS Machine Learning Blog 在 2026 年 9 月 15 日的文章裡提出來的。

過去幾種省錢做法都各有代價:把 prompt 縮短,context 的品質可能跟著下滑;把 context window 調小,模型能用來推理的完整資訊就受限;至於應用層的 response caching,唯有查詢一字不差時才派得上用場,同一份 context 換上不同問題就完全幫不上忙。

解法:在基礎設施層快取 prompt 前綴

Bedrock 的 prompt caching 把這件事拉到基礎設施層解決。請求中放入一個 cachePoint 標記,Bedrock 就會比對標記之前那段內容與既有快取條目是否一致。命中的情況下(cache hit),這些 token 不必再重新處理一遍,生成直接從快取狀態接續下去;若未命中(cache miss),模型照常處理完整內容,並把結果寫進快取,留給之後的請求取用。

由此得到兩項直接好處:快取讀取的輸入 token,單價比標準輸入少了 90%;而 time-to-first-token(TTFT)也會縮短,因為模型無須從頭把整段前綴再跑一次。

四個關鍵參數決定快取行為

實際上線之前,有四個概念得先弄清楚:

  • 快取範圍:快取條目只存在於單一 AWS 帳戶與單一 AWS Region 之內。
  • Token 門檻:每個 cache checkpoint 都要跨過最低 token 數才會啟用。以 Anthropic Claude Sonnet 4.5 和 Sonnet 4.6 來說,每個 checkpoint 至少需要 1,024 token;Opus 模型的要求則是至少 4,096 token。
  • TTL:快取條目會依請求中指定的 TTL 到期。預設值為 5 分鐘,部分模型可支援到最長 1 小時。
  • 模型無關的語法:Converse API 的 cachePoint 寫法在支援的模型系列之間完全一致,Anthropic Claude 與 Amazon Nova 皆然。

成本結構:寫入貴一點,讀取便宜很多

在標準的輸入與輸出 token 之外,prompt caching 另外切出了兩種 token 類別:

Token 類型 說明 與標準輸入相比的成本
cacheWriteInputTokens 寫入快取的 token(來自第一次請求) 高 25%
cacheReadInputTokens 由快取讀出的 token(後續請求) 低 90%
cacheWriteInputTokens(1 小時 TTL) 以 1 小時 TTL 寫入快取的 token 高 100%(2 倍)

當工作負載會反覆使用同一段 context,輸入 token 成本大致能省下 75%。舉個例子:一份 10,000 token 的文件搭配 10 個不同問題送出,第一次請求付的是快取寫入的價錢,接下來九次則每次都享有低 90% 的讀取價,如此一來,該份文件 context 的輸入 token 成本淨省約 75%。這裡有個前提——所有後續請求都必須落在 TTL 時窗之內;一旦請求在過期之後才送出,就會產生新的快取寫入,淨省幅度也隨之被拉低。

實作模式:從基本到進階

AWS 那篇文章用 Converse API 展示了六種情境,由簡入繁:

  1. 訊息內容快取:把長文件快取起來,供多問題分析使用。
  2. 系統提示快取:讓 persona 定義與指令跨對話共用同一份快取。
  3. 工具定義快取:替 agentic 工作流快取 tool schema。
  4. 混合 TTL 快取:針對不同內容層級給定不同的快取生命週期。
  5. 租戶隔離:在多租戶應用中做到每個租戶各自獨立的快取分離。
  6. LangChain 整合:於 LangChain 框架中套用 prompt caching。

最基本的一種做法,就是把 cachePoint 擺在靜態文件與動態問題之間:

content = [
    {"text": "<static document content>"},
    {"cachePoint": {"type": "default"}},   # 快取以上所有內容
    {"text": "<user question>"}             # 動態,每次請求不同
]

這種模式對 RAG 應用、需要翻查大型 codebase 的程式碼助理,或任何得反覆查詢同一份參考資料的情境,都特別合適。

何時該用、何時該避開

Prompt caching 並不是萬靈丹。假設你的請求每次都換一份 context,命中率自然低落,結果反而是你得多付第一次寫入的 25%。此外,跨 Region 的 inference profile 也可能讓快取寫入變得更頻繁,因為請求會被自動導向不同的 Region。

但反過來說,如果你正在打造多輪對話、agent 工作流,或任何會重複用到同一份 system prompt、工具定義、知識庫文件的產品,這項功能就很值得認真評估。它讓你在不必犧牲 prompt 品質、也無須壓縮 context 的前提下,把基礎設施成本直接往下壓。

規劃這類快取策略時,不妨回顧我們先前的流程編排執行模型討論——先釐清哪些內容屬於靜態、哪些屬於動態,cachePoint 才可能擺在正確的位置上。

參考來源

AGENTIC COMMONS由 PHLEGON LABS 經營
分享X電郵
支持我們

相關閱讀

  1. Pydantic AI:動態 system prompt 不再打壞 prompt cache

    Pydantic AI 改為把動態 system prompt 的變更附加到對話歷史,保留前綴讓 prompt cache 繼續命中。

    AI SDK

  2. Cloudflare 把 AI 程式碼審查成本砍 68% 的具體拆法

    Cloudflare 詳解 AI code reviewer 每次審查成本從 2.43 美元降到 0.77 美元:前綴快取、減少呼叫與模型實驗各佔多少。

    Cloudflare

  3. Prompt Caching 原理、成本與命中率實戰

    Firecrawl 整理三大 API 的 prompt caching 定價與失效原因,並用 77% 對 24% 的命中率差距說明設定才是關鍵。

    Cache