生活分享

Claude API 省錢:提示快取與批次處理怎麼用

用 Claude API 做小工具,帳單多半是被同一段長前綴重送幾千次吃掉的。這篇依 2026 年 10 月 5 日重新查證的 Anthropic 官方文件,講三個省錢手段:提示快取讓重複的前綴只算一次,讀取只收基礎輸入價的 0.1 倍、寫入 1.25 倍;批次處理的輸入與輸出照標價的 50% 計費;簡單的工作換輕一階的模型。含主控台看用量分佈、參數寫法、每天呼叫 200 次的試算與四個常見錯誤。

更新日期: 閱讀時間約 12 分鐘

兩疊高度不同的方塊並排放在同一條地面線上,左邊那疊有七層、右邊那疊只有兩層,矮的那疊旁邊有一個粗的向下箭頭,底下一行字寫著 API 帳單瘦身
圖片:Mokaair (© Mokaair)

用 Claude API 寫一個小工具,第一個月的帳單常常比預期高一截。原因多半只有一個:模型沒有記憶,每次呼叫都要把整段系統提示與背景知識重送一遍,輸入 token 一天就累積幾百萬個。結論可以先講:先到主控台看用量分佈,找出被重送最多次的那段長前綴,標成提示快取。依 Anthropic 官方文件,快取讀取只收基礎輸入價的 0.1 倍,寫入 1.25 倍,讀一次就回本;不急的工作再丟批次,輸入與輸出照標價的 50% 計費。

這篇依 Anthropic 官方文件(價格、快取與批次規則 2026 年 10 月 5 日查證,主控台畫面 9 月 14 日查證),把三個省錢手段由易到難講一遍:提示快取、批次處理、選對模型。每一個都寫清楚它砍掉帳單的哪一塊、代價是什麼、什麼情況反而更貴,名稱照官方文件。最後用一個每天呼叫 200 次的小工具做試算,看三個手段各砍掉多少,再列四個常見錯誤。價格與規則換得很快,動手前以官網當下的頁面為準。

帳單為什麼會高:同一段前綴被重送幾千次

API 的計價單位是 token,而且每一次呼叫都是獨立的:系統提示、工具定義、背景文件、前面的對話要整包重送,模型才知道上下文是什麼。一個問答式的小工具,系統提示加上一份固定的產品說明可能就有 20,000 個 token,使用者真正打的那句話只有 200 個。也就是說,每次呼叫有 99% 的輸入是「上次送過、這次一模一樣」的內容,而這份重複的內容預設每次都照基礎輸入價重算。三個手段都在這一塊上做文章。

動手前先看用量分佈,不要憑感覺猜。Claude 主控台左邊的導覽有 Usage 與 Cost 兩頁,開發者、帳務與管理員三種角色看得到。Usage 頁把輸入與輸出 token 畫成長條圖,可按小時或分鐘看,能依 workspace、模型、API 金鑰與日期篩選,還有一張標題是 Rate Limit Use + Caching - Input Tokens 的圖,直接顯示每小時未快取的輸入 token 尖峰與目前的快取率;Cost 頁是每日花費圖。兩頁都能匯出 CSV,但說明中心註明目前沒辦法把用量拆到個別使用者。

要更細的數字,每一次呼叫的回應裡都有一個 usage 物件:input_tokens 是沒被快取的輸入,cache_creation_input_tokens 是這次寫進快取的量,cache_read_input_tokens 是從快取讀回來的量,三個相加才是總輸入。組織層級另有 Usage and Cost Admin API,可以用 1 分鐘、1 小時或 1 天的區間,依模型與 API 金鑰分組拉出同一份數字。

手段一:提示快取,重複的前綴只算一次

提示快取的原理是在提示詞前面切一刀:斷點以前的內容如果和前一次呼叫一字不差,模型就直接讀已經算好的結果,不重算。可以快取的東西有三類,順序固定是工具定義、系統提示、訊息,官方文件寫成 tools、system、messages,比對照這個順序從頭往後比,前面有一個位元不同,後面全部算沒中。這也是為什麼要快取的東西得放在提示詞最前面。

價錢分三種。寫進快取的那一次,5 分鐘版收基礎輸入價的 1.25 倍,1 小時版收 2 倍;之後每次讀到快取只收 0.1 倍,Opus 5.5 只收 0.05 倍,Fable 5.1 更只收 0.025 倍。官方文件直接把回本點寫出來:5 分鐘版讀一次就回本,1 小時版讀兩次回本。存活時間預設 5 分鐘,每讀一次就免費續命,所以只要呼叫沒斷超過 5 分鐘,同一份前綴可以一直接力用下去。要注意這段時間是從發出請求那一刻算起,不是從回答結束算。想撐久一點就用 1 小時的選項,寫法是在 cache_control 裡多一個 ttl 欄位、值填 1h;官方文件寫明沒有更長的選項。

最小可快取長度依模型不同:Opus 5.5、Sonnet 5.5、Opus 5 與 Fable 5.1 是 512 個 token,Sonnet 5 與 Opus 4.8 是 1,024,Opus 4.7 是 2,048,Haiku 4.5 與 Opus 4.6、4.5 是 4,096。不到門檻不會報錯,只是靜靜地不快取,要確認有沒有中,就看回應裡的 cache_creation_input_tokens 與 cache_read_input_tokens 是不是都是 0。用的參數叫 cache_control,值是一個物件,type 填 ephemeral。有兩種用法:放在請求最上層是自動快取,系統會把斷點放在最後一個可快取的區塊,對話變長時自動往後移,官方建議多數情況從這個開始;放在個別內容區塊上是明確斷點,一個請求最多 4 個,超過會回 400 錯誤。快取不會跨組織共用,在 Claude API 上還按 workspace 隔離。

  • 最划算:同一份長文件被問很多次。整本手冊、整份規格、整張資料表放進系統提示,斷點放在文件結尾,之後每一個問題都只付 0.1 倍。
  • 最划算:固定不動的長系統提示。角色設定、輸出格式、20 個以上的範例,官方文件把這幾樣列為最適合快取的內容,還有常用的工具定義。
  • 划算:多輪對話。前面的對話會一路往後累積,用最上層的自動快取,斷點會自己跟著往後移,不用自己算位置。
  • 不划算:每次內容都不同。前綴只要有一個字不一樣就算沒中,你付了 1.25 倍的寫入價,卻連一次讀取都拿不到,比不快取還貴。
  • 不划算:間隔太久。呼叫零零星星、一小時才一次,5 分鐘的快取早就過期,等於每次都在付寫入價;這種情況要嘛改用 1 小時版,要嘛乾脆不快取。
  • 不用試:前綴太短。不到模型的最小可快取長度就是不會快取,標了也沒用,而且系統不會提醒你。

手段二:批次處理,不急的工作打五折

Message Batches API 是把一疊請求包成一包送出去、晚點再回來拿結果。所有用量照標價的 50% 計費,輸入與輸出都算。送出的格式是一個 requests 陣列,每一筆有自己的 custom_id 與一個 params 物件,裡面就是平常 Messages API 的參數;送出後輪詢批次的 processing_status,從 in_progress 變成 ended 就可以下載結果。每一筆結果有四種狀態:succeeded、errored、canceled、expired。幾乎所有平常能送的東西都能放進批次,同一包裡也可以混不同類型的請求。

代價是等待與幾條限制。官方文件寫多數批次一小時內跑完,但正式的說法是:全部跑完或滿 24 小時,以先到的為準,才能取結果;24 小時內沒跑完的請求會過期,過期的不收費。一個批次最多 100,000 筆請求或 256 MB,結果保留 29 天。所有現役模型都支援批次,但有三個參數不能用:stream 設成 true、快速模式的 speed,以及 max_tokens 設成 0。官方另外提醒,批次可能跑超過 5 分鐘,同一批共用前綴時建議搭 1 小時的快取,命中率才高。

  • 適合:整批分類貼標籤、整批摘要、離線的資料處理、大規模的評測。官方文件給的例子就是內容審核、資料分析與大量產生文案。
  • 適合:每天固定跑一次的排程工作,反正結果隔天早上才要看。
  • 不適合:要即時回覆的聊天介面,或使用者按了按鈕站在畫面前等的功能。
  • 不適合:要逐字串流出來的畫面,批次的結果是一個檔案,不是串流。
  • 不適合:一次就要跑滿的高風險工作。先用一小批試過再放大,不然整批跑完才發現提示詞寫錯。

手段三:選對模型,長對話定期重開

前兩個手段是把同一件事做得便宜,第三個是換一個更便宜的人來做。官方的成本建議第一條就是選對模型:簡單的工作用 Haiku、多數線上工作用 Sonnet、最複雜的推理才用 Opus。以每百萬 token 的標價看,Sonnet 5.5 是輸入 2 美元、輸出 10 美元,Haiku 4.5 是輸入 1 美元、輸出 5 美元,正好是一半;Opus 5.5 則是 4 與 20 美元。分類、抽欄位、判斷格式這種每次都很簡單的工作,換成輕一階的模型,那一塊的帳單直接砍半,品質常看不出差別。

另一個容易忽略的是對話長度。每送一則訊息,模型都要把前面整段對話重讀一次,對話越長每一則越貴,而思考用掉的 token 還是按輸出計價。換了主題就開新對話,或把前面的內容濃縮成一段摘要再接下去,比一路聊到底便宜很多。要注意換模型會讓快取失效:官方的快取診斷把 model_changed 列為第一種沒中的原因,快取按模型隔離,同一段對話中途換模型,前綴得整段重寫。

圖解:左半部上下對比同一次呼叫在沒快取與有快取時各算多少,下方是四階段的試算;右半部三格列出提示快取、批次處理、選對模型三個手段省在哪與適合的情況
左上與左中是同一次呼叫的兩種算法,左下是四個階段的每日費用推算;右邊三格由上到下是三個手段的倍率、適合與不適合的情況。 · 圖片:Mokaair (© Mokaair)
閱讀完整文字說明

左半邊上下兩塊是同一次呼叫的兩種算法。上面那塊是沒有快取:一段 20,000 token 的前綴照基礎輸入價整段重算,後面再加上使用者打的 200 個 token,每次呼叫都重算一遍。下面那塊是有快取:同一段 20,000 token 的前綴改成讀快取,只收 0.1 倍,後面一樣加上 200 個 token;第一次寫進快取收 1.25 倍,1 小時版收 2 倍;快取存活 5 分鐘,每讀一次免費續命,1 小時是另一個選項。左下方是一個每天呼叫 200 次的小工具試算,四個方塊由左到右是什麼都不做 9.08 美元、加提示快取 2.64 美元、再加批次處理 0.98 美元、再換輕一階的模型 0.49 美元,單位都是美元每天,全部依官網標價推算,不是官方公布的數字。右半邊由上到下是三個手段。第一個是提示快取,省的是重複的長前綴:讀取 0.1 倍、寫入 1.25 倍、1 小時版 2 倍;適合同一份長文件被問很多次與固定的長系統提示;不適合每次內容都不同或間隔超過存活時間。第二個是批次處理,整張帳單打五折:輸入與輸出都收 50%,多數一小時內完成;適合整批分類、整批摘要與離線的資料處理;不適合要即時回覆的情況,最長要等 24 小時,逾時過期。第三個是選對模型,把單價降一階:簡單的工作換輕一階的模型,單價大約砍半;適合分類、抽欄位、判斷格式這種每次都簡單的事;長對話也要定期重開,因為前面整段每次都要重讀。三個可以疊起來用,批次折扣與快取折扣會相乘,順序是先做快取、再搬批次、最後才檢討模型。最底下提醒先看主控台的用量分佈,帳單多半是被同一段長前綴重送幾千次吃掉的。價格與規則依 2026 年 9 月 14 日的 Anthropic 官方文件。

實際試算:每天 200 次、前綴 20,000 token 的小工具

假設一個工具每天被呼叫 200 次,每次都送同一段 20,000 token 的系統提示與知識,使用者輸入 200 token,回答 500 token,模型用 Sonnet 5.5。快取那幾列假設用 1 小時版、一天寫 10 次讀 190 次;批次那列假設整批在同一包裡跑,寫 1 次讀 199 次。下面的金額是拿官網標價推算的,不是官方公布的數字,換成自己的長度與次數,方向不會變。

依 2026 年 10 月 5 日 Anthropic 官網標價推算(Sonnet 5.5 輸入 2、輸出 10 美元;Haiku 4.5 輸入 1、輸出 5 美元;1 小時寫入 2 倍、讀取 0.1 倍、批次五折),非官方公布數字。
做法每天輸入端每天輸出端每天合計和基準比
什麼都不做,全部照標價8.08 美元1.00 美元9.08 美元基準
加 1 小時提示快取1.64 美元1.00 美元2.64 美元約省 71%
只丟批次、不快取4.04 美元0.50 美元4.54 美元省 50%
批次加 1 小時快取0.48 美元0.50 美元0.98 美元約省 89%
再把模型換成 Haiku 4.50.24 美元0.25 美元0.49 美元約省 95%

三個手段各砍掉不同的一塊。快取砍的是「重複的長前綴」那一塊輸入,輸入端從 8.08 美元掉到 1.64 美元,輸出完全沒動;批次是整張帳單對半砍,輸入與輸出都算,但它一個 token 也不會幫你少送;換模型是把每個單價降一階。三個可以疊起來,官方文件寫明批次折扣與快取折扣可以合併計算,疊完每天從 9.08 美元掉到 0.49 美元。要注意 Haiku 4.5 的最小可快取長度是 4,096 個 token,這例子的 20,000 token 前綴過得了門檻,前綴短的工具換到 Haiku 就可能快取不到。

四個把快取弄丟的常見錯誤

  1. 把斷點標在會變動的內容上。系統提示裡插了目前時間、請求編號或使用者名字,前綴每次都不一樣,於是你每次都在付 1.25 倍的寫入價、永遠讀不到。官方的修法是把系統提示做成一個字都不會動的常數,會變的資料移到斷點後面的第一則使用者訊息。
  2. 把使用者輸入放進快取前綴。使用者打的字每次都不同,放在斷點以前等於自己把快取砸掉。斷點要放在「每次都一模一樣的最後一塊」,不是整段提示詞的最後一塊。官方文件點名這個誤解:快取不會往回找穩定的內容,它只找得到前一次在斷點寫下的那份。
  3. 以為快取永久有效。預設只有 5 分鐘,最長的選項是 1 小時,沒有更久的;呼叫間隔比存活時間長,快取就是過期,而且那段時間是從發出請求開始算,不是從你收到回答開始算。
  4. 其他讓前綴對不上的小動作。中途換模型、工具清單加減或換順序、某些語言序列化 JSON 時鍵的順序是隨機的、改了思考或 effort 設定、多送或少送一張圖片,都會讓快取整段失效。查不出原因時,官方有一個 beta 的快取診斷:帶上 cache-diagnosis-2026-04-07 這個 beta 標頭,並在請求裡傳 diagnostics 的 previous_message_id,回應會告訴你 cache_miss_reason 是 model_changed、system_changed、tools_changed 還是 messages_changed。

三個手段的順序也是建議的順序:先看用量、再做快取,把不急的搬去批次,最後才檢討模型選得對不對。要再往下壓可以回頭比各家的單價,但換供應商之前,先確認那段長前綴沒有被重送幾千次,通常這一步就夠了。

  • 生活分享

    Claude Code、Codex 搭本機模型:兩種接法怎麼選

    Claude Code 與 Codex 搭配本機模型有兩種接法:代理照常連雲端、把大量雜務交給腳本或 MCP 工具去問本機模型,或是把代理的模型整個換成本機模型。這篇用資料能不能出門、上下文開得夠不夠長、工作的類型三個問題幫你選,並對照 Ollama、LM Studio、Anthropic 與 OpenAI 的官方文件,分清楚本機權重、Ollama 的 cloud 標籤與供應商端點是三種不同的東西。

  • 生活分享

    把本機模型包成 MCP 工具,Claude Code 與 Codex 共用一支伺服器

    用官方 Python SDK 寫一支 stdio 的 MCP 伺服器,把本機的 Ollama 模型包成工具,Claude Code 與 Codex 就能共用:工具只收 inbox 底下的路徑,只回分類結果與結果檔路徑,不回信件原文。文中列出兩邊的登記指令、逾時與輸出上限的官方預設值,以及換成別家本機模型只改環境變數 LOCAL_MODEL 的做法,步驟都來自官方文件。

  • 生活分享

    把 Claude Code、Codex 整個換成本機模型:Ollama 與 LM Studio 設定與還原

    Ollama、LM Studio 與 Codex 的文件寫了把 Claude Code、Codex 整個換成本機模型的接法:Ollama 用 ollama launch 一行指令或手動設定,LM Studio 先開本機伺服器再設環境變數或加 --oss。這篇把四種組合的指令、兩家文件建議的上下文長度、Claude Code 用 /status 確認連到誰的方法,以及用完怎麼還原整理在一起;需要先裝好 Ollama 或 LM Studio,並且已有 Claude Code 或 Codex。

  • 生活分享

    Claude Code、Codex 搭本機模型的注意事項:開工前的檢查清單

    Claude Code 或 Codex 搭本機模型之前,先照一張表逐項核對:代理讀不讀得到原始檔、現在連的是誰、標籤是不是 :cloud、上下文實際開多長、逾時與輸出量、怎麼驗收。每一項寫怎麼檢查,並指出詳見同組哪一篇,另外收進供應商端點、條款與授權、繁體中文用字檢查;檢查方法取自 Anthropic、OpenAI、Ollama 與 DeepSeek 的官方文件。

最新旅遊情報攻略

資料來源

生活分享