Pick Model

成本分析

AI coding agent 的快取成本:不是切模型,是你離開座位

4,300 個真實 session 的實測顯示,coding agent 的快取命中率高達 95.8%,但掉下來的那幾個百分點幾乎全部集中在人類發呆的空檔。這篇算清楚錢怎麼分桶、漏在哪,以及同一次失效在五個工具上是五種不同的東西。

目錄(17 節)
  1. 快取的錢分四個桶,每個 token 只進一個
  2. 典型的一輪長這樣
  3. 輸出永遠全價,這是快取能幫你省的天花板
  4. 實測:命中率 95.8%,但掉下來的全在你發呆的時候
  5. 這條改變了該優先做什麼
  6. 保溫工具超過一小時就不划算
  7. 切模型是真的,只是沒有你想的那麼大條
  8. 同一次失效,在五個工具上是五種不同的東西
  9. Copilot 從六月起把 cached token 算進帳單
  10. Gemini CLI 用免費 Google 帳號登入完全沒有快取
  11. Anthropic 的快取寫入一律加價,OpenAI 到 GPT-5.6 才開始收
  12. MCP 斷線在標準環境不用擔心,走 gateway 才要
  13. subagent 一律 5 分鐘,agent team 約 7 倍
  14. 怎麼確認你的快取有沒有在工作
  15. 三個跨工具通用的習慣
  16. 這篇的限制
  17. 資料來源

網路上關於 AI coding agent 快取成本的建議,幾乎都在講同一件事:不要中途切模型。

這條不算錯,但它既不是最大的那條,算下來也沒有那麼貴。華盛頓大學 SyFI Lab 的 TraceLab 收集了 43 位開發者八個月、約 4,300 個 session、35 萬個 LLM step 的 Claude Code 與 Codex 真實軌跡,量出來的整體命中率是 95.8%,但只看「使用者發話」那一步就掉到 86.9%。

掉下來的那幾個百分點幾乎全部集中在人類思考的空檔。切模型可觀、可控,但相對罕見;你去開一小時的會才是主要成本。

這篇算三件事:錢是怎麼分桶的、實測告訴我們漏在哪,以及同一次失效在五個工具上為什麼是五種不同的東西。快取的運作原理不在這裡重講,那在原理那篇。

先講結論

  • 快取讀取 0.1 倍、寫入 1.25 倍、輸出永遠全價,而且每個 token 只進一個桶子收一次錢,所以一次失效不是 2.25 倍
  • 實測命中率 95.8%,漏掉的那部分幾乎全在你離開座位的空檔,論文估算完全消除可省約 12.8%
  • 切模型比傳說中便宜:從 Opus 5 換到 Sonnet 5,三輪多就把失效成本賺回來,換到 Haiku 4.5 是當輪回本
  • 同一次失效在五個工具上是五種不同的東西:Cursor 記在帳單、Claude Code 訂閱吃額度、免費的 Gemini CLI 根本沒有快取

快取的錢分四個桶,每個 token 只進一個

先把價格擺出來,後面每一段都要用到它。以下倍率出自 Anthropic 官方定價,基準是該模型的標準輸入價:

桶子 裝什麼 單價
快取讀取 命中的歷史 0.1 倍
快取寫入 沒命中、被寫進快取的 1.25 倍(1 小時 TTL 為 2 倍)
一般輸入 沒命中、也沒進快取的 1 倍
輸出 模型寫出來的字,含 reasoning 全價,永遠不打折

關鍵在於每個 token 只會落進其中一個桶子,收一次錢。所以快取寫入只比正常讀取貴 25%,那 25% 就是租金。

這也是最常見的那個算錯的答案:很多人以為一次沒命中等於全價重讀(1 倍)再加上寫入(1.25 倍),合計 2.25 倍。不會,那兩個桶子不會同時對同一批 token 收費。

租金要靠後續命中賺回來,大約再用到一次就回本。這推導出一個反直覺的結論:短對話反而不該快取。 一次性請求開快取是純虧,這也是各家都設了最小前綴長度的原因(三家的門檻在原理那篇),而且低於門檻時不會報錯,只是靜靜地沒有快取。

典型的一輪長這樣

桶子 內容 token 單價
讀取 從系統提示詞到上上輪的全部歷史 約 100,000 0.1 倍
寫入 上一輪的回覆加上你這輪的新訊息 約 2,000 1.25 倍
輸出 這一輪的回覆 約 2,000 全價

一次失效改變的是第一列:那 10 萬個 token 從 0.1 倍變成 1.25 倍。所以失效的成本等於前綴大小乘以價差,前綴越大越痛。TraceLab 量到 Claude Code 每步的前綴中位數是 126,180 個 token,新增只有 857 個,這就是那個放大倍數的來源。

輸出永遠全價,這是快取能幫你省的天花板

輸入從 1 倍掉到 0.1 倍是十倍的差距,但你的帳單不會掉十倍,因為輸出那一桶完全沒動。

實際的省幅取決於你的輸入輸出比。純算術推一下:如果某個工作型態的輸出佔了總成本的一半,輸入那一半就算全部命中、掉到十分之一,總帳單也只掉 45%。輸出佔比越高,快取的效果越稀釋。

這裡有一條會讓很多人吃虧的細節:reasoning 或 thinking token 算輸出價。 一個看起來只回兩百字的請求,背後可能燒了三千個 reasoning token,而且照最貴的那一檔算。跟上一條疊起來就是:effort 開越高,快取能幫你省的比例越低。

好消息是 coding agent 的形態對快取極度有利。TraceLab 整份 trace 讀了 525.6 億個快取輸入 token、prefill 了 23.4 億個新的,卻只產出 1.869 億個 output token,輸入對輸出的比高達 294 倍。這種工作型態下,快取幾乎決定了帳單。

實測:命中率 95.8%,但掉下來的全在你發呆的時候

TraceLab 是目前唯一一份能拿來講「實際上快取到底命中多少」的公開資料。它的核心數字是四個:

指標 Claude Code Codex
token 加權前綴快取命中率 95.8% 95.7%
只看「工具結果回填」那一步 97.9% 97.2%
只看「使用者發話」那一步 86.9% 78.2%

三列擺在一起,故事就出來了。工具觸發的步驟幾乎不會失效,因為 agent 跑指令、讀檔、搜尋都是連續的,中間沒有空檔。掉下來的全部是模型講完最後一句話、到你下一次發話之間的那一段。

論文的觀察是:空檔大於 5 分鐘就開始出現低命中率的步驟,超過 1 小時幾乎全部失效。而使用者思考空檔的中位數只有約 1.4 分鐘,平均卻高達 46.7 分鐘。這個長尾就是成本破口。

論文估算,如果能完全消除人類思考造成的失效,可以省下約 12.8% 的成本與 10.7 億個重複 prefill 的 token。

12.8% 是一個上限,不是你今天就能拿到的折扣。 但它給了這件事一個量級:比多數人花力氣去調的東西都大。

這條改變了該優先做什麼

如果你只能記一件事,記這個:離開之前先把手上的收個尾,比在對話中途小心翼翼有用得多。

具體來說,開會前、下班前、要去做別的事之前,判斷一下等一下回來還用不用得到這段對話。用得到就讓它留著(訂閱是 1 小時 TTL,短會議撐得過去);用不到就直接開新的,反正回來一定失效,小前綴的失效比大前綴便宜。

保溫工具超過一小時就不划算

既然失效主要來自空檔,社群的解法是在空檔裡定期戳一下,原理是一次快取讀取會讓 TTL 重新計算。Aider 內建 --cache-keepalive-pings,Claude Code 與 Cline 有社群做的等價工具。

但每次 ping 要付整份前綴的 0.1 倍,粗略算下來超過 12 次 ping 就不如讓它過期重建(1.25 倍一次),也就是保溫超過一小時左右就沒有意義。而且訂閱使用者根本不該用,那等於拿方案額度去換一個你本來就不用付的成本。(這幾個工具本文未實測,功能描述來自各自的專案說明。)

切模型是真的,只是沒有你想的那麼大條

前面說模型是快取的鍵,切一次就重付整段前綴。這條常常被講成不可碰的禁忌,但把數字算出來會發現,它是一筆很快就回本的支出。

用 TraceLab 量到的前綴中位數 126,180 token、每輪輸出抓 2,000 token,看從 Opus 5 換到同一家的便宜模型會發生什麼事:

換到 切換那輪多付 之後每輪省 幾輪回本
Claude Sonnet 5 $0.222 $0.068 3.3
Claude Haiku 4.5 $0.055 $0.091 0.6

留在 Opus 5 是每輪 $0.113。牌價取自本站的價格對照表。Sonnet 5 的 $2 / $10 原是到 2026 年 8 月 31 日為止的 introductory 價,官方後來改列為標準價,這張表不會在 9 月變動。

換到 Haiku 那一輪就回本了,換到 Sonnet 也只要三輪多。原因是失效是一次性的,單價差卻是每一輪都在收。所以對話越長,換過去越划算,這跟「長對話不要動模型」的直覺剛好相反。

「不要切模型」精確的說法是:不要為了不重要的理由切,也不要切走再切回來(那是兩次重算,不會抵銷)。但只要換過去這件事本身有價值,失效成本通常不是攔你的那個理由。

這張表也是 smart routing 這類功能的立論基礎:它賭的是單價差大於失效成本,而在長對話裡這個賭注通常會贏。 MixRoute 這類 AI gateway 把決定往上游搬了一層,一把 key 後面接所有供應商,依速度、成本、品質決定這次請求送去哪家,另外提供供應商掛掉時的自動 failover 與繞開單一帳號 429 的保留容量。

failover 那一項尤其划算:被擋在 429 外面的時候,原本的結果是整段工作停在那裡,換一家繼續只是重付一次前綴。

同一次失效,在五個工具上是五種不同的東西

機制五家通用,但成本以什麼形態落到你頭上差很多。這決定了你該花多少力氣管它。

工具 快取以什麼形態影響你 你看得到嗎
Claude Code(訂閱) 吃用量額度,不進帳單 /usage 會歸因到 skill、subagent、MCP
Claude Code(API key) 直接進帳單,寫入加價、讀取一折 API 回應的 token 欄位
Codex(ChatGPT 方案) 吃方案額度 官方未揭露快取歸因
Cursor 逐 token 計費,帳單上就有兩欄 看得最清楚
GitHub Copilot 改吃 AI Credits,cached token 照牌價計 用量頁
Gemini CLI(免費 Google 帳號) 沒有快取可言 /stats
Gemini CLI(API key 或 Vertex AI) 進 API 帳單 /stats

同一次失效,在 Cursor 上是一筆你看得到的錢,在 Claude Code 訂閱上是一格你看不到的額度,在免費的 Gemini CLI 上則根本不存在快取這回事。

Copilot 從六月起把 cached token 算進帳單

GitHub 在 2026 年 6 月 1 日把 Copilot 全面改成用量計費,用 AI Credits 取代原本的 premium requests。官方公告寫得很直接:credits 依 token 用量扣,包含 input、output 和 cached tokens,照各模型公布的 API 牌價計算。程式碼補全與 Next Edit Suggestions 不扣。

這是形態上的轉變。在 premium requests 時代,一次請求就是一次請求,背後重算了多少 context 跟你無關;改成 token 計費之後,快取有沒有命中直接反映在數字上。習慣按請求數估算 Copilot 成本的人,這條要重新算過。

Gemini CLI 用免費 Google 帳號登入完全沒有快取

這條是五個工具裡最反直覺的一個。

Gemini CLI 官方文件把支援情況列得很清楚:用 Gemini API key 或 Vertex AI 驗證時有 token 快取,用 OAuth 登入時沒有,因為 Code Assist API 目前不支援建立快取內容。而 OAuth 就是一般人裝完直接用 Google 帳號登入的那條路。

免費仍然是免費,所以這裡付出的不是錢,是每一輪都重跑完整 context 的延遲,以及更快撞到用量上限。如果你拿免費的 Gemini CLI 跟付費工具比「同樣一個任務跑起來多順」,這是一個沒被算進去的變數。

五家裡揭露最透明的是 Cursor,它的定價頁逐個模型列出 cache write 與 cache read 兩欄。各家模型的完整牌價我們整理在價格對照表,含每一筆的官方來源連結。

Anthropic 的快取寫入一律加價,OpenAI 到 GPT-5.6 才開始收

往下一層看 API,三家的機制大同小異(要不要手動開、最短多少 token 才值得快取,原理那篇有對照),成本結構卻不同。

Anthropic OpenAI Gemini
寫入成本 5 分鐘 1.25 倍、1 小時 2 倍 GPT-5.6 之前免費,5.6 起 1.25 倍 官方文件未列
讀取成本 0.1 倍 官方未列百分比 官方文件未列
存活時間 5 分鐘或 1 小時 GPT-5.6 只支援 30 分鐘 官方文件未列

真正會影響選型的是第一列。對於前綴頻繁變動的使用形態,Anthropic 的一次失效是「以 1.25 倍價重寫」,在舊的 OpenAI 模型上那一段完全免費。第三列則是很多人沒注意到的:GPT-5.6 的上限是 30 分鐘,Anthropic 的 1 小時買不到對等的東西。

MCP 斷線在標準環境不用擔心,走 gateway 才要

這條最容易判斷錯,因為工具定義確實在系統提示詞層,直覺會推論成「MCP 一斷,快取就死」。

實際上取決於那些工具有沒有被載進前綴。官方的 MCP 說明把兩種情況分得很清楚:

  • 工具延後載入(支援的模型上是預設值):伺服器連上、斷開或改變工具清單,都只是在後面追加內容,已經快取的部分不受影響
  • 工具載進前綴:任何變動都會作廢整份快取

會落到第二種的情況包括 tool search 不支援或被停用、伺服器被標記為 alwaysLoad,以及用門檻設定保留在前面的定義。而 tool search 被停用的典型情境,就是走自訂 ANTHROPIC_BASE_URL 的 gateway 或部分雲端供應商部署。

所以這條要反過來讀:在標準環境下你不用擔心 MCP 斷線,但如果你走的是 gateway 或雲端供應商,那些你控制不了的自動重連就是實實在在的成本,而且你查不出原因。 stdio 伺服器的 process 結束、HTTP session 過期、暫時失敗後自動重連,都會在你沒動手的情況下發生。

順帶一提,改 MCP 設定檔本身不會影響快取,它要重啟才生效,而重啟才是伺服器連上或斷開的那一刻。

subagent 一律 5 分鐘,agent team 約 7 倍

subagent 會開一段自己的對話,帶自己的系統提示詞和工具集,跟父對話是分開的。它建自己的快取,第一次呼叫零命中,然後在自己的幾輪之間慢慢暖起來。關鍵的一條:subagent 一律使用 5 分鐘 TTL,即使你在訂閱上也一樣。 訂閱自動套用的 1 小時只給主對話。

父對話這邊不受影響,從父的角度看,subagent 的呼叫和結果就是追加在後面,前綴完好。

fork 則是另一回事:它完整繼承父的系統提示詞、工具和對話歷史,所以第一次請求讀的是父的快取。要委派一件需要完整脈絡的工作,fork 的起手成本低於 subagent;要隔離一批吵雜的輸出(跑測試、抓文件、處理 log),subagent 才是對的工具,因為重點就是讓那些輸出留在別的 context 裡。

官方成本文件還給了一個具體數字:agent team 在成員跑 plan mode 時,token 用量約為一般 session 的 7 倍,因為每個成員都維持自己的 context window。實務上的三個控制點是成員用 Sonnet 而不是 Opus、團隊人數壓小、工作完成的成員要收掉。

怎麼確認你的快取有沒有在工作

底層都是同兩個數字,只是各家包裝不同。API 每次回應會回報 cache_creation_input_tokens(這一輪寫進快取的)與 cache_read_input_tokens(這一輪從快取讀的)。

判斷方式很直接:讀取對建立的比值高就是快取在工作。如果建立量一輪接一輪都很高,就是你的前綴裡有東西一直在變。

各家看這兩個數字的入口就是上面那張表的最後一欄。Claude Code 的 /usage 還會把用量歸因到 skill、subagent、plugin 和個別 MCP 伺服器,並在某個行為佔 10% 以上時標出來,是五家裡歸因最細的。

只有一個陷阱要提:訂閱端 /usage 顯示的金額是本地用公開牌價算的估計值,不是你的帳單。訂閱該看的是同一畫面上的額度用量條。

三個跨工具通用的習慣

  1. 離開之前先收尾。 這是實測資料指向的最大一條,也是最少人做的。開會前判斷等一下還用不用得到這段對話,用不到就開新的
  2. 別為了不重要的理由切模型,尤其不要切走再切回來。 但也不必把它當禁忌,換到便宜一階的模型三輪左右就回本,真正該避免的是來回換
  3. 壓縮留給任務之間的自然斷點,不要等自動壓縮在任務中途觸發。在 Claude Code 上想放棄一條路就用 /rewind 而不是 /compact

這三件事的效果通常大於換工具。我們在另一篇實測裡量過,一句過時的規則檔指令讓同一個任務的成本變成 2.26 倍,而品質完全一樣。至於訂閱和 API 該怎麼選,在月費實算那篇。

這篇的限制

  • TraceLab 的 43 位開發者不是隨機樣本,且資料涵蓋的是 Claude Code 與 Codex,不含 Cursor、Copilot 與 Gemini CLI。12.8% 是論文的估算上限,不是你能拿到的折扣
  • 保溫的損益平衡點是照公布倍率推算的,不是官方數字,也未實測。它回答的是門檻在哪個量級,不能當帳單預測
  • 那張切換回本表是照公布牌價算的,不是實測帳單。 它假設前綴等於 TraceLab 的中位數、每輪輸出 2,000 token、換模型之後品質可以接受。前綴更小或輸出更長,回本輪數就會變;品質夠不夠是這張表回答不了的問題
  • 本文未實測任何 gateway 或 router 產品的快取行為。 對這類產品的描述取自各自的官方公開說明,實際的路由決策如何影響前綴命中率,各家揭露程度不一
  • 五個工具的揭露程度差很多。 本文對各家的描述深度不對等,這反映的是文件狀況,不是實際機制的複雜度差異
  • Gemini 的快取寫入成本與存活時間、OpenAI 的快取讀取折扣百分比,官方頁面當時都沒有列出具體數字,表格留白而非估算
  • Cursor 與 Copilot 的內部前綴組成沒有公開,本文對這兩家的判斷建立在它們使用同一批底層模型與 API 快取機制之上
  • 未涵蓋 Bedrock、Vertex AI 與 Microsoft Foundry 的差異,那幾邊的快取支援、最小長度與 1 小時 TTL 可用性依模型和區域而異
  • 本文數字為 2026 年 8 月 8 日實查

資料來源

  1. TraceLab:43 位開發者八個月的 coding agent 真實軌跡(arXiv:2606.30560)
  2. Anthropic 官方 API 提示詞快取機制
  3. Anthropic 官方 Claude Code 提示詞快取文件
  4. Anthropic 官方 Claude Code 成本管理文件
  5. Anthropic 官方 MCP 工具搜尋說明
  6. Anthropic 官方 subagent 文件
  7. OpenAI 官方提示詞快取文件
  8. Cursor 官方定價頁(逐模型列出 cache write 與 cache read)
  9. MixRoute 官方網站(smart routing 與 failover 說明)
  10. MixRoute 官方 API 文件
  11. GitHub 官方公告:Copilot 改為用量計費
  12. Gemini CLI 官方 token 快取文件
  13. Google 官方 Gemini 快取文件