AI 代理人的 token 費用要怎麼節省呢?

一種方法是善用提示快取。提示快取的機制是,把前一次查詢中開頭相同的部分先保存在提供方的伺服器上,之後再以較低成本讀取。以 Claude Sonnet 5.5 來說,從快取讀取的部分費用通常是一般輸入的 0.05 倍(什麼是提示快取)。

那麼,要怎麼才能善用快取呢?其中一種手段就是 compact。compact(上下文壓縮)是把到目前為止的對話歷史,替換成 AI 撰寫的摘要,並繼續同一段對話的功能。這樣每一輪送出的歷史會變短,放進快取的量也會變少。不過,視用法而定,費用反而會增加。IT 連結地圖編輯部在 Claude Code 上測試時,費用有時會減少 57%,有時卻會增加到 2.75 倍。

先下結論

compact 的使用方式的 5 個結論(IT 連結地圖編輯部的測量・主要是 Claude Code(訂閱版)・Claude Sonnet 5.5)。1. 作業告一段落後,在快取保存時間之前中斷前就先 compact。保存時間(測量):Claude Code(訂閱版)58〜61 分鐘・透過 API 使用的 Claude(在 Antigravity 測量)4〜6 分鐘・Gemini(Antigravity)10〜12 分鐘。超過之後的 1 輪是 6.1〜11 倍。Claude Code 中,在作業告一段落時 compact,重新開始後的費用可減少 57%。 2. compact 也不要過度使用。只要不中斷地持續進行,歷史就能從快取中低價讀取,因此即使摘要了,費用也不會下降。Claude Code 中,在分段時 compact 1 次也會增加 22%,每輪都 compact 則變成 2.75 倍。 3. 若 Context 的 used 達 75% 以上就 compact。Claude Code 的 Context 為 1M token。這之後若還會再繼續 2 輪以上(試算)。50% 時為 3 輪以上,25% 時為 4 輪以上。 4. 自動 compact(auto-compact)請保持啟用。Claude Code・Codex・Antigravity 都會在對話變長時自動摘要。Claude Code 即使在終端機中開著不關而中斷,也會在約 54 分鐘後摘要,費用為沒有摘要時估算值的 32%(若關閉終端機或電腦進入睡眠則不會運作)。 5. 由於 compact 會壓縮對話原文,回答品質也可能下降。本次沒有測量回答品質的影響。3 款產品都會用摘要取代舊對話。摘要中會保留與消失的內容請參考第 6 節。

  1. 作業告一段落,且會中斷比快取保存時間更久之前就 compact(在 Claude Code 中,重新開始後的費用可減少 57%)
  2. compact 也不要過度使用(不中斷持續進行時,每輪 compact 會變成 2.75 倍)
  3. 當 Context 的 used 達 75% 以上就 compact(Claude Code 的 Context 為 1M token。這是之後會再持續 2 輪以上時的試算)
  4. 自動 compact(auto-compact)保持開啟(Claude Code 在終端機中開著不關時,約 54 分鐘後會自動摘要)
  5. 因為 compact 會壓縮對話原文,回答品質也可能下降(本次未測量回答品質)

完整資料、測量方式,以及各產品條件,已整理在 IT 連結地圖的指南「什麼是 compact」中。

1. 使用 compact 能省錢嗎?

依 compact 時機不同,在相隔 65 分鐘後重新開始時的費用(輸入+輸出)分成 4 種費用區分的橫條圖(IT 連結地圖編輯部的測量・Claude Code・Claude Sonnet 5.5)。寫入快取(保留 1 小時)是從快取讀取費用的 40 倍。以約 5.4 萬 token 的對話來說,若直接繼續則為 $0.182(從快取讀取 $0.007・寫入快取 $0.174・快取外 $0.000・輸出 $0.001),在作業告一段落時 /compact 則為 $0.078(從快取讀取 $0.008・寫入快取 $0.046・快取外 $0.004・輸出 $0.020),在作業重新開始後才 /compact 則為 $0.155(從快取讀取 $0.004・寫入快取 $0.048・快取外 $0.088・輸出 $0.016)。若將約 14.4 萬 token 的對話保持在終端機中開著,54.1 分鐘後自動 compact 會啟動並花費 $0.171(從快取讀取 $0.014・寫入快取 $0.099・快取外 $0.038・輸出 $0.019),而沒有摘要時的估算為 $0.538(從快取讀取 $0.001・寫入快取 $0.532・快取外 $0.000・輸出 $0.005)。

能省錢的情況,是在作業告一段落,且在中斷時間長於快取保存時間(Claude Code 訂閱版約 1 小時)之前先 compact 時。

上圖是把約 5.4 萬 token 的對話在相隔 65 分鐘後重新開始時的費用,按費用區分拆開來看。前一輪相同的部分會從快取讀取,費用是一般輸入的 0.05 倍;新的部分則會寫入快取,費用是一般輸入的 2 倍。這 40 倍的差距,造成了費用的差異。

  • 不 compact 就重新開始($0.182):因為快取已消失,所以必須把整段歷史重新寫入快取,費用幾乎都花在這筆寫入上。
  • 在作業告一段落時 compact($0.078・減少 57%):只需要重寫較短的摘要即可。
  • 在作業重新開始後才 compact($0.155・減少 15%):因為消失的歷史會用一般輸入費用重新讀取,所以只省下一點點。
  • 保持終端機開著($0.171):Claude Code 會在快取快要消失前自動 compact,費用只需沒有摘要時估算值的 32%。

也就是說,compact 發揮作用的情況是,能把長篇歷史重新寫入快取,改成寫入較短的摘要。各段數字可參考指南中的「不同時機的費用內含」。

為了精確理解,再補充兩點:

  • 自動 compact 能減少多少:在同樣測試自動 compact 的 suwa_nobu 先生的文章 中,費用約為關閉後再重開情況的 1 成。編輯部測得的是 32%。差異的原因包括比較對象不同(編輯部是估算,那篇文章是實測)、對話大小不同(編輯部約 14.4 萬 token,而且是在將預設條件的 20 萬 token 降到 10 萬 token 後測量;那篇文章約 21 萬 token)、以及摘要後 Claude Code 會重新掛上的工具等清單大小不同。詳情請見指南「中斷作業時自動 compact 的測量」。
  • 保存時間的條件:1 小時保存只適用於方案額度內的主對話。compact 的摘要呼叫與 sub-agent 是 5 分鐘保存;若用 API key,或超出額度以 usage credits 付費時,主對話也只有 5 分鐘保存。本次測量中的對話全部都是 1 小時保存。確認方法與不同使用方式的保存時間,請見指南「快取保存時間」(感謝 @Skillselion 先生的留言提供靈感,IT 連結地圖編輯部也透過官方說明與測量紀錄進行確認)。

那麼,頻繁 compact 會不會更便宜呢?

2. 注意 compact 過度使用!

/compact 次數不同時的費用內含(IT 連結地圖編輯部的測量・Claude Code・約 5.4 萬 token 的對話・不中斷 10 輪)。一次都不做為 $0.244、分段時做 1 次為 $0.298、每輪都做 8 次為 $0.672(2.75 倍)。每輪增加的 $0.428 內含為寫入快取 +$0.198、摘要本文輸出 +$0.161、快取外 +$0.088,而從快取讀取的費用只少了 $0.019。確認問題中,三者都答對了既定的 8/8 與修正過的第 4 段 4/4,而貼上的原文在摘要後的 2 個內容無法寫出來。

在不中斷地持續作業時 compact,費用會增加。將同一段對話不中斷持續 10 輪,並只改變 /compact 次數時,哪怕只是在作業分段時 compact 1 次,費用也會 增加 22%;若每輪都 compact,則會變成 2.75 倍。

每輪都 compact 時,第 10 輪送出的量雖然變成 1/3,但費用卻變成 2.75 倍。增加的 $0.428 內含為:寫入快取 +$0.198、摘要本文輸出 +$0.161、不使用快取的輸入 +$0.088。從快取讀取的費用只減少了 $0.019。

原因如第 1 節的費用前提所示。作業持續進行時,歷史會以快取中輸入的 0.05 倍讀取,因此即使減少送出的量,費用也幾乎不會下降。相反地,每 compact 一次,就會以輸出費用($10/1M token)產生摘要本文,並在下一輪把該摘要以快取輸入 2 倍的費用重新寫入快取。所有不同次數測量的完整數字,可見指南「改變次數的測量數字」。那麼,究竟什麼時候該用 compact 呢?

3. 什麼時候該使用 compact?

Context 的 used(對話大小)如果 compact 之後比較省錢,則在回本之前(試算)compact 的費用(試算)每 1 輪可省下的金額(試算)5%(5 萬 token)若之後還會繼續 20 輪以上19.1 輪$0.0594$0.003110%(10 萬 token)若之後還會繼續 8 輪以上7.9 輪$0.0644$0.008125%(25 萬 token)若之後還會繼續 4 輪以上3.4 輪$0.0794$0.023150%(50 萬 token)若之後還會繼續 3 輪以上2.2 輪$0.1044$0.048175%(75 萬 token)若之後還會繼續 2 輪以上1.8 輪$0.1294$0.0731- 試算前提(測得值):約 5.4 萬 token 的對話做 1 次 /compact —— 除了從快取讀取歷史之外,還有固定費用 $0.0242(例如摘要本文輸出 1,875 token)・下一輪寫入快取 $0.0302・摘要後的 1 次輸入 18,891 token。大型對話的摘要也會更長,因此輪數可能比這裡更多

使用 compact 的時機,是在作業告一段落、準備中斷超過 1 小時之前,以及 Context 的 used 很大、而且之後還會繼續同一項工作時。後者的目安如上表第 2 欄所示。例如 used 為 75% 時,若之後還會繼續 2 輪以上,compact 會比較省;如果只剩 1 輪就完成作業,不 compact 反而更省(試算)。

used 是指 Claude Code 的 Context 欄位中,佔 上下文視窗(1M token)的使用比例。當不中斷地持續作業時,compact 的費用(摘要呼叫與摘要寫入快取)可由之後各輪讀取量減少的部分補回。used 越大,每 1 輪可省下的金額越多,因此回本越快。上表是根據測得值計算出的試算。

情況compact 要不要做作業告一段落,且會中斷超過 1 小時要做。趁快取消失前先摘要,重新開始時的費用可減少 57%**used 達 25% 以上,且之後會繼續同一項工作 4 輪以上在作業分段時做 1 次。若 used 為 75%,則 2 輪以上就能回本(試算)。也能避免自動 compact 在作業中途發生只剩 1 輪就結束作業不要做。表中的任何 used 值都要 1.8 輪以上才回本(試算)used 在 10% 以下,且還會繼續同一項工作不要做。回本需 7.9〜19.1 輪(試算)。每輪 compact 會變成 2.75 倍**作業結束,要開始另一項工作與其 compact,不如用 /clear 或開新對話。前一項工作的歷史對下一項工作不需要剛開始作業不要做。還沒有可摘要的歷史試算是根據約 5.4 萬 token 對話的 1 次 compact(摘要本文輸出 1,875 token、摘要後的 1 次輸入 18,891 token)而來。大型對話的摘要也會更長,因此實際輪數可能比這裡更多。試算公式收錄在指南的「回本所需輪數的試算」中。即使不用手動輸入,Claude Code 也可能自動 compact。

4. 什麼是自動 compact(auto-compact)?

自動 compact 發生時機停止方式・變更方式接近上限時當對話接近上下文視窗上限時。具有 1M token 上下文視窗的模型(例如 Claude Sonnet 5.5)約在 967K token 時會自動 compact。可透過 /config 的 Auto-compact("autoCompactEnabled": false)停止,或用 /autocompact 500k 之類的方式提前(100K〜1M)中斷作業期間終端機開著、距離最後一次查詢約 54 分鐘,且電腦未進入睡眠時。1 小時保存的主對話(訂閱版、方案額度內)預設在 20 萬 token 以上會觸發。可用 "idleCompaction": false 停止,或以 CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS 降低對話大小條件(最多可降到 10 萬 token)自動 compact(auto-compact)是 Claude Code 在上表兩種情況下自動進行 compact 的功能。compact 的時機由 Claude Code 決定。中斷作業期間的自動 compact 會在快取快要消失前啟動,因此編輯部的測量為 減少 68%。另一方面,接近上限時的自動 compact,有時會在作業進行到一半時發生。關閉終端機後,中斷作業期間的自動 compact 就不會運作。Codex 與 Antigravity 也會在對話變長時自動摘要(各產品條件)。設定名稱與數值已整理在指南「設定在哪裡變更」中。那麼,在 Claude Code 畫面上,要怎麼判斷是否該 compact 呢?

5. Claude Code 的範例

將 Claude Code 的 Context 欄位畫面並排的兩張圖。左圖(2026-10-25 09:34)中,對話(Messages)為 650.9k(65.1%),在 1M token 中已使用 738.8k(74%),距離自動 compact 尚餘 220k。將 Messages 這一列與右下角的 Compact session 按鈕(等同於 /compact)框起。這種情況下 compact 有效。右圖(2026-10-18 12:13)中,指示檔(Memory files)為 349.4k(34.9%),已使用 583.9k(58%),距離自動 compact 尚餘 380k。將 Memory files 這一列框起。這種情況下 /compact 不會減少內容,因此要把 AGENTS.md 或 CLAUDE.md 摘要縮短。兩張畫面的自動 compact 緩衝區(Autocompact buffer)皆為 33k。

在 Claude Code 的畫面中,要看 Context 欄位裡,究竟是什麼在占用上下文。如果對話(Messages)很大,compact 就有效;如果指示檔(Memory files)很大,則不是 compact,而是縮短 AGENTS.md/CLAUDE.md。Claude Code 桌面版的「Context」欄位(終端機中為 /context)會顯示是什麼在占用上下文。欄位右下角的 「Compact session」 按鈕,顧名思義就是把對話摘要(compact)的按鈕。在終端機中則輸入 /compact。

右邊畫面 compact 不會生效,是因為指示檔(AGENTS.md・CLAUDE.md)不是對話歷史,而是在摘要後仍會從檔案重新讀取(Claude Code 官方文件)。編輯部將指示檔從 867 KB 摘要縮減到 57 KB,讓 Memory files 從 349.4k token 降到 34.9k token。最後,來看一下使用 compact 時的注意事項。

6. 使用 compact 時的注意事項

Claude Code 的摘要(compact)中會保留與消失的內容(測量)。摘要共取了 12 次,摘要本文為 3,236〜4,006 字的英文。寫作規則、修正過的段落、最新的改寫版本、紀錄全文的位置都保留了下來;貼上的文章原文(39,875 字)則消失了。被摘要的 5 段對話,在被問到原文的一句時,因無法編造而回答說寫不出來。指示檔會在摘要後從檔案重新讀取。

  1. 沒寫進摘要的內容會消失:摘要本文(3,236〜4,006 字・英文)中,寫作規則與修正過的段落都保留下來了,但最初貼上的文章原文(39,875 字)則消失了。被摘要的對話在被問到原文某一句時,沒有編造,而是回答「寫不出來」。會消失但很重要的資料,請不要貼進對話,而是放在檔案裡,並在摘要後再讀取(長篇資料是直接貼上,還是交給檔案)。本次沒有測量摘要對回答品質造成多大影響。當長篇對話導致不再遵守指示時的修正方式,已整理在長篇對話中 AI 代理人不再遵守最初指示時。
  2. 可以指定要保留的內容:在 /compact 後面寫上想保留的內容(例如:/compact 只聚焦於修正認證問題),摘要就會依照該指示選擇保留內容(Claude Code 官方文件)。
  3. 摘要也需要費用:在快取消失後進行摘要,光是摘要呼叫就花了 11 美分(若在作業告一段落時則是 3 美分)。
  4. 中斷作業期間的摘要,若關閉終端機或電腦進入睡眠就不會運作:在終端機關閉期間,以及電腦睡眠期間,即使過了 54 分鐘也不會進行摘要。長時間中斷時,請在關閉前自己先 /compact(第 1 節的 57% 減少)。
  5. 如果修改了指示檔,compact 之後才會生效:摘要後,AGENTS.md・CLAUDE.md 會從檔案重新讀取,因此修改過的指示會被讀到。

摘要本文中保留了哪些內容的評分,可參考指南「摘要之後,哪些內容留下、哪些內容消失」。

最後

將 compact 的各種使用方式費用,以不使用 compact 為 100% 來比較的橫條圖(IT 連結地圖編輯部的測量・Claude Code・Claude Sonnet 5.5)。相隔 65 分鐘時,在作業告一段落時 /compact 為 43%(減少 57%)、在作業重新開始後才 /compact 為 85%(減少 15%)、終端機開著時的自動 compact 為 32%(減少 68%)。在不中斷的 10 輪中,分段時 compact 1 次為 122%(增加 22%)、每輪都 compact 8 次為 275%(增加 175%)。

compact 不用不行,太常用也不行。上圖是把測得的 5 種使用方式費用,以不使用 compact 為 100% 來排列。寫入快取的費用是從快取讀取費用的 40 倍。compact 之所以划算,是因為它能把長篇歷史的重寫,替換成短摘要;也就是在作業告一段落、準備長時間中斷之前,以及 Context 的 used 很高卻還要繼續作業時(若 used 為 75%,則之後至少還會有 2 輪)。當指示檔過大時,則不是 compact,而是把檔案縮短。

完整資料、測量方法與設定列表,已公開在以下指南中。

compact 的前提用語,以及摘要後指示遺失時的修正方法,整理在以下指南中。

本次介紹的產品與模型頁面:Claude Code・Claude

相關文章・參考

讀者問卷進行中
如果你希望我們更深入探討這個主題,請幫文章按「讚」。我們會依照「讚」數較多的主題優先追加調查,並在新文章中公布結果(若追蹤我們,會收到通知)。


原文出處:https://qiita.com/songchong/items/ac9779bb8e8838b546b9


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝4   💬1   ❤️1
190
🥈
boluoji
📝8   💬2   ❤️3
176
🥉
mike
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登