7 個省 Token 必須知道的秘訣:別再等五小時重置
你的 AI Agent 是不是也常常卡在「等五小時重置」?用 Claude Code 或 Codex 開發,帳單爆掉、額度用完就得等冷卻結束,而且還覺得 AI 越聊越笨。
Token 管理不只是提示詞的問題,更是系統架構的問題。下面七件事都做到,可以省下可觀的 token。
一、警惕「囉嗦複利」
Output token 的單價大約是 input 的 5 倍。更糟的是,這一輪的 output 會變成後面每一輪的 input。
多一句寒暄,後面十輪都在為它付費。
做法:在設定檔裡加上精簡輸出的規則——不寒暄、不重述做過的事、不重印沒改的程式碼。
二、用磁碟當記憶體,不用 Context 當記憶體
把工作流程改成這樣:
Plan → 寫入 task.md → /clear → 照 task.md 實作 → 驗證 → Commit → /clear
進度交給 Git 和檔案系統保管,上下文就能一直維持最高的信噪比。
三、/compact 到底做了什麼?跟 /clear 差在哪?
先講 cache 怎麼運作。API 是無狀態的,Claude Code 每一輪都會把「system prompt + tools + 全部對話」整包送出去。Anthropic 從第一個 token 開始逐一比對,前面完全相同的那段就命中快取(讀取只收 0.1 倍),從第一個不同的 token 開始,後面全部原價重算。
所以每多一輪,前面的內容都命中,只有新增的那段付原價。這就是 Agent 多輪對話還付得起的原因。
/compact 做三件事:
- 額外發一次 API 呼叫,把整段對話丟給模型寫摘要——這一次要讀完整個 context,這才是主要成本
- 把對話歷史刪掉,換成那份摘要
- system prompt + tools 那段沒動,下一輪照樣命中;摘要是新內容,付一次寫入費之後也會命中
/clear 只做一件事: 把對話歷史刪掉。
所以對 cache 來說,兩者的代價一樣,都是「對話那段重來、前綴那段照舊」。差別只有一個:compact 多付一次摘要費,換來任務脈絡不中斷。選哪個要看「還需不需要前面的脈絡」,而不是 cache。
- 同一個任務做到一半、context 快滿了 → 用
/compact,並帶上指令,例如/compact 保留 X 的結論 - 任務做完、要開始不相關的事 → 用
/clear - 別在同一個 session 裡反覆切換模型:cache 綁定模型,每切一次就要重付一次完整的前綴
四、照任務性質分工,不是照「思考 vs 執行」分
我做了一個台股盤後報告工具,流程裡有兩種任務:
- 把 100 檔股票依當日題材歸類——要判斷、要取捨
- 上網抓每檔股票的新聞摘要——照固定流程做
一開始我全部丟給 Haiku(最初階的模型)想省錢,結果歸類品質崩掉,新題材都認不出來;但抓新聞那段卻完全沒問題。
- 需要判斷、歸類、取捨的:用強模型
- 抓資料、跑固定流程的:用輕模型,開 subagent 在獨立環境裡接單
最理想的分工是:強模型寫 SPEC.md,輕模型照 SPEC 實作,主對話只收結論。這個專案實際怎麼分工,可以看拆解台股盤後報告這篇。
五、CLAUDE.md 要 Lazy-Loading
常駐設定雖然有快取折扣,但它會佔掉 context 空間,讓 compact 更早觸發,也會稀釋模型的注意力。
- 主檔控制在 1,000 tokens 以內
- 詳細規範拆成 Skill:只有 description 常駐,內容按需載入
.claude/rules/*.md要加上paths:,才會只在碰到對應檔案時載入——我自己就有一個忘了加,每個 session 都在白載
六、Cache 差 12.5 倍,所以問題要連續問
Anthropic 的 prompt cache 命中只收 0.1 倍,沒命中重新寫入要收 1.25 倍,差了 12.5 倍。
Cache 預設只活 5 分鐘,每次命中會重新倒數(API 也有 1 小時的選項,寫入改收 2 倍,實際用哪一種要看工具與方案)。連續來回時,每輪只付新增的部分;停超過時效再回來,那一輪就得把整段 context 重付一次。
下面這個小工具可以切換兩種情況,看看 10 輪對話的成本差多少:
INTERACTIVE · 相對成本示意
同樣 10 輪對話,成本差在哪?
10 輪總成本:
- 問題湊在一起問,不要一句一句丟:三個小問題分三輪問,是三次 output 加三次增量 input;合成一輪只付一次
- 想清楚再送,不要邊想邊問:你思考的那 10 分鐘,cache 早就過期了
七、離開前先決定:讓誰幫你記
停下來之前,先問自己一句「這段 context 還要不要」,然後三選一:
- 不要了 →
/clear。反正 cache 會過期,沒什麼好可惜的 - 要,而且我知道重點是什麼 → 自己把結論寫進
task.md再/clear。回來照task.md重新開始,這是最便宜的做法 - 要,但脈絡太雜、懶得整理 → 帶指令
/compact,讓模型幫你摘要。多付一次摘要費,換來不用自己動手
結論
自己寫 task.md 是「硬碟 cache」,/compact 是「請模型幫你做 cache」。前者免費但要動手,後者花錢但省事。
最貴的是第四種:什麼都不做,掛著一大包 context 等它過期。
Context 是暫存區,不是硬碟。
你平常都怎麼省 token?歡迎透過聯絡頁跟我分享。