Day 313 · 2026-11-08

快取只活五分鐘

Day 313 快取只活五分鐘 — 投影片 1Day 313 快取只活五分鐘 — 投影片 2Day 313 快取只活五分鐘 — 投影片 3Day 313 快取只活五分鐘 — 投影片 4Day 313 快取只活五分鐘 — 投影片 5
1 / 5

這週 Claude 的週額度掉得特別快,今天下午兩點,單日用量就已經是這 8 天來最高。我請 Claude Code 把自己最近 8 天的使用紀錄翻出來,查查錢花到哪裡去。

查到最後,有 26% 的用量花在同一件事:AI 把已經讀過的對話,整份重新寫進快取。原因是我的 Claude Code 沒有直連 Anthropic,提示快取只能保留 5 分鐘;訂閱使用者本來應該有 1 小時。

這篇分享:額度實際花在哪裡、怎麼證明快取只活 5 分鐘,以及我加了哪一行設定。

額度花在重讀,輸出只佔 9%

先解釋兩個名詞。Token 是 AI 處理文字和計費的單位。提示快取(prompt cache)是 Anthropic 那邊的機制:同一段對話,前面讀過的部分會先存起來,下一輪直接拿來用,價格比重新讀便宜很多。

把 8 天、12,545 次對 Claude 的請求加總起來,用量的組成是:

類型 佔比
從快取讀出來 56%
寫進快取 35%
AI 實際寫出來的回覆 9%

AI 回話本身只佔不到一成。真正吃額度的,是每一次請求都要把很長的對話整份帶過去。一次請求帶的內容,中位數是 17.2 萬 token,最大的一次帶了 94.2 萬。

其中 80% 左右的用量來自同一個專案 Micdrop。我在這個專案用 firstmate(Day 234 介紹過的開源工具,一個 AI 當主管,派工給好幾個 AI 員工)同時跑好幾個任務。高峰時,同一個小時裡有 20 到 28 個 Claude 視窗在跑。

走代理伺服器,Claude Code 就把我當成 API 使用者

我的 Claude Code 沒有直連 Anthropic,中間接了 cc-switch,一個讓我在 Claude 和 Codex 之間切換的代理伺服器(proxy)。

Claude Code 的程式裡寫著:沒特別設定時,Claude 訂閱使用者主視窗的快取保留 1 小時,用 API 金鑰的保留 5 分鐘。走代理伺服器之後,Claude Code 看到的是代理伺服器給的金鑰,就把我當成 API 使用者,給了 5 分鐘。

5 分鐘很短。我隔一陣子才回覆、AI 在等一個比較久的指令跑完、firstmate 的員工每隔 7 到 9 分鐘回頭看一次進度,只要中間隔超過 5 分鐘,快取就過期,下一輪得把十幾萬到幾十萬 token 的對話整份重寫進快取。

最誇張的是一個做圖示動畫的 AI 員工。它等 7 到 9 分鐘才回來數一次算好的圖,每次都剛好超過 5 分鐘。每回來看一次,就重寫 25 萬到 70 萬 token,只為了數一下圖出來幾張。光這一個任務,就用掉這 8 天總用量的 7.7%。

firstmate 的主管也一樣。它一半以上的用量,來自系統自動把它叫醒檢查進度。11 月 8 日凌晨兩點多到快四點,它被叫醒 6 次,每次重寫 31 萬多 token 進快取,回覆只有 230 個 token 左右。

我怎麼確定是 5 分鐘,又怎麼改成 1 小時

我請 Claude Code 拿出證據,它給了三種。

第一種是實測。透過同一個代理伺服器,送同一段內容給 Claude,隔 6 分半再送一次:

設定 第二次送出時從快取讀到 第二次送出時重新寫入
預設 0 39,567 token(快取已過期)
改成 1 小時 39,466 token 0(快取還在)

第二種是過去 8 天的紀錄:1 億 2,980 萬 token 寫成 5 分鐘那種快取,1 小時的是 0。

第三種是看重寫發生的時機。在帶了 5 萬 token 以上的請求中,隔不到 5 分鐘的,只有 0.5% 左右要整份重寫;隔 6 到 10 分鐘的有 87%;隔 10 分鐘以上的是 98.5%。

改法是在 ~/.claude/settings.json 的 env 區塊加一行:

"CLAUDE_CODE_PROMPT_CACHE_TTL": "1h"

流量照樣走代理伺服器,只是快取變成保留 1 小時。實測發現,代理伺服器會把這個要求原封不動傳給 Anthropic。

1 小時的快取寫入比較貴,價格是 5 分鐘那種的 1.6 倍(1 小時是基本價的 2 倍,5 分鐘是 1.25 倍)。拿過去 8 天的紀錄模擬,主視窗會省 9.9%;但子代理人(主視窗用 Agent 工具叫出來幫忙的小 AI)會多花 9.1%,因為它們很少停下來等,本來就不太會碰到快取過期。所以我只改主視窗,子代理人的設定留著不動。

firstmate 的 AI 員工也歸在主視窗那一邊。每個員工都是獨立開的 Claude Code 視窗,不是用 Agent 工具叫出來的子代理人,所以同一行設定對它們也有效。

我原本以為改完要把當時開著的十幾個視窗全部重開。結果 Claude Code 跑著的時候就會重新讀這個設定,改完幾秒內,每個開著的視窗都開始寫 1 小時的快取。

這行設定預估省 10% 左右。Claude Code 查到的另一個更大的問題,是我目前的設定要等對話累積到 75 萬 token 左右才會自動壓縮,大部分視窗根本撐不到那裡;提早到 20 萬到 30 萬就壓縮,估計最多能再省 30%。這一項我還沒改。

額度掉得快的時候,先查 AI 每一輪重讀了多少。


Day 234 幫你的 subagent 們找一個老大:https://www.dawsonwang.com/day/234