跳至主要內容
project.case-study

Token 壓縮模組(Context Budget)

在 Claude Code 介面產出 compact 指令

直接加在 Claude Code 介面上的 mod。context 過了門檻,輸入框上方會出現一排按鈕,按一下就產出 /compact 指令:用預設的保留/丟棄指示,或讓 AI 讀當下的對話寫一份量身的指示,按 Enter 才執行。MIT 授權開源。

Claude Code ModsTypeScriptuserConfigclaude-code/testingPlugin Marketplace

01 問題

Claude Code 的長 session 有兩個地方特別花錢。第一個是 context,它會一路長大,等想起來要 compact 往往已經很大;就算想起來,也得自己打一長串指示,說明要保留什麼、丟掉什麼。

第二個是 prompt cache,休息超過一小時回來,cache 已經過期,送出的第一句話會把整段 context 重送一次。這兩件事都不會報錯,只看得到用量變高。

02 解法

操作都在 Claude Code 的介面裡完成。mod 在輸入框上方畫一條按鈕列,按 Compact 會產出 /compact 指令,連同預設的保留/丟棄指示一起填進輸入框;按「量身指令」則由 AI 讀當下這段對話,寫一份專屬的指示。指令產出後由使用者按 Enter 執行,送出前也能先改。

只填不送有一個實測踩到的原因:mod 自己呼叫 compact 不會經過 session.compact hook,狀態列拿不到 compact 後的大小。閒置攔截一樣只攔一次,原文放回輸入框。

子代理分級依據 2026 年 10 月的一次 A/B 測試(effort high,每題只跑一次):定位和追流程兩題 Haiku 與 Sonnet 都全對、用量相近,Explore 就交給 Haiku;查文件那題 Haiku 漏了兩個欄位的確認,claude-code-guide 留在 Sonnet。預設值來自我自己的用法,9 個設定都能在 /config 改,介面也會依 language 設定切換繁中或英文。

03 成果

2026-10-10 開源在 GitHub,MIT 授權,目前是 v0.2.0。claude plugin validate 通過;20 個測試釘住提醒門檻、閒置攔截、compact 後放回草稿、子代理分級、effort 下限、設定與語言切換,提示列在終端機和 Desktop 兩種介面都測過。資料只留在本機的 plugin store(最多 200 筆事件紀錄),不往外送;唯一會呼叫模型的是「量身指令」,它在使用者自己的 session 裡執行。

04 功能特色

  • ▸ context 過 500k(之後每 +150k),輸入框上方出現按鈕列
  • ▸ 按 Compact,自動產出 /compact 指令與保留/丟棄指示
  • ▸ 按「量身指令」,由 AI 讀當下對話寫一份 compact 指示
  • ▸ 指令填進輸入框,送出前可以先改,按 Enter 才執行
  • ▸ 用過瀏覽器工具時,指示會多一句丟掉 snapshot 和截圖
  • ▸ 閒置 60 分鐘、context 至少 200k 時先攔一次,按鈕列多一顆 Clear
  • ▸ 狀態列顯示 context 用量與最近 12 次讀數的走勢
  • ▸ 子代理自動分級(haiku/sonnet/opus),effort 下限 high