AI coding agent 的快取成本:不是切模型,是你離開座位
4,300 個真實 session 的實測顯示,coding agent 的快取命中率高達 95.8%,但掉下來的那幾個百分點幾乎全部集中在人類發呆的空檔。這篇算清楚錢怎麼分桶、漏在哪,以及同一次失效在五個工具上是五種不同的東西。
目錄(17 節)
- 快取的錢分四個桶,每個 token 只進一個
- 典型的一輪長這樣
- 輸出永遠全價,這是快取能幫你省的天花板
- 實測:命中率 95.8%,但掉下來的全在你發呆的時候
- 這條改變了該優先做什麼
- 保溫工具超過一小時就不划算
- 切模型是真的,只是沒有你想的那麼大條
- 同一次失效,在五個工具上是五種不同的東西
- Copilot 從六月起把 cached token 算進帳單
- Gemini CLI 用免費 Google 帳號登入完全沒有快取
- Anthropic 的快取寫入一律加價,OpenAI 到 GPT-5.6 才開始收
- MCP 斷線在標準環境不用擔心,走 gateway 才要
- subagent 一律 5 分鐘,agent team 約 7 倍
- 怎麼確認你的快取有沒有在工作
- 三個跨工具通用的習慣
- 這篇的限制
- 資料來源
網路上關於 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 顯示的金額是本地用公開牌價算的估計值,不是你的帳單。訂閱該看的是同一畫面上的額度用量條。
三個跨工具通用的習慣
- 離開之前先收尾。 這是實測資料指向的最大一條,也是最少人做的。開會前判斷等一下還用不用得到這段對話,用不到就開新的
- 別為了不重要的理由切模型,尤其不要切走再切回來。 但也不必把它當禁忌,換到便宜一階的模型三輪左右就回本,真正該避免的是來回換
- 壓縮留給任務之間的自然斷點,不要等自動壓縮在任務中途觸發。在 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 日實查
資料來源
- TraceLab:43 位開發者八個月的 coding agent 真實軌跡(arXiv:2606.30560)
- Anthropic 官方 API 提示詞快取機制
- Anthropic 官方 Claude Code 提示詞快取文件
- Anthropic 官方 Claude Code 成本管理文件
- Anthropic 官方 MCP 工具搜尋說明
- Anthropic 官方 subagent 文件
- OpenAI 官方提示詞快取文件
- Cursor 官方定價頁(逐模型列出 cache write 與 cache read)
- MixRoute 官方網站(smart routing 與 failover 說明)
- MixRoute 官方 API 文件
- GitHub 官方公告:Copilot 改為用量計費
- Gemini CLI 官方 token 快取文件
- Google 官方 Gemini 快取文件