JuliusBrussee/caveman 是一個面向 Claude Code、Codex、Gemini、Cursor、Windsurf、Cline、Copilot 等 Agent 工具的輸出壓縮 skill / plugin。它的目標很明確:讓 Agent 少說廢話,保留技術要點,減少輸出 token。
專案 README 裡的口號是 “why use many token when few do trick”。翻成正常技術語言,就是把模型回答從禮貌鋪墊、解釋性長句、重複確認裡壓縮出來,只留下結論、原因、改法和必要程式碼。它不會減少模型的 reasoning / thinking token,也不會讓模型「腦子變小」;它主要影響最終回覆的可見輸出。
這類工具有點反直覺。很多人習慣把「詳細」當成「可靠」,但在程式開發場景裡,過長回覆經常會稀釋重點。caveman 的思路是:技術判斷要準,表達可以短。
caveman 解決什麼問題
在日常使用 Agent 寫程式碼時,常見問題不是模型不會答,而是它答得太長:
- 先重複你的問題;
- 再給一段禮貌開場;
- 再解釋很多你已經知道的背景;
- 最後才給出真正需要的命令、檔案、bug 點或修改建議。
這些內容會消耗輸出 token,也會拖慢閱讀。對長會話來說,還會讓上下文裡塞進大量低密度文字。
caveman 透過一套 skill 規則告訴 Agent:
- 去掉 filler;
- 保留技術實質;
- 多用短句和片段;
- 程式碼、命令、路徑、錯誤訊息保持原樣;
- 按目前語言壓縮表達,而不是強行切換語言。
所以它不是「讓 Agent 裝傻」,而是讓 Agent 用更短的句子交付同樣的資訊。
一個典型對比
README 給了一個 React 重渲染的例子。普通回答會解釋「元件重渲染可能是因為每次 render 都建立了新物件引用,React shallow comparison 看到 prop 變化,所以觸發重渲染,建議用 useMemo」。caveman 風格會壓成類似:
|
|
同一個結論,更少鋪墊。對熟悉上下文的開發者來說,這種密度更高。
它也強調「保留語言」。如果你用中文提問,回答應該壓縮成中文;如果你用葡萄牙語、西班牙語或法語,壓縮的是表達風格,不是把語言變成英文。程式碼、命令、錯誤字串應保持精確。
安裝方式
官方提供一行安裝腳本,會自動尋找可用 Agent 並安裝到對應位置。
macOS / Linux / WSL / Git Bash:
|
|
Windows PowerShell 5.1+:
|
|
專案說明裡提到安裝通常約 30 秒,需要 Node.js 18 或更高版本。腳本會跳過本機沒有安裝的 Agent,並且可以安全重複執行。
如果只想看更完整的安裝矩陣,可以讀專案裡的:
|
|
怎麼觸發和退出
安裝後,通常可以在會話裡輸入:
|
|
或者直接說:
|
|
退出時說:
|
|
它支援不同壓縮等級:
|
|
大致可以這樣理解:
lite:主要刪除空話和重複;full:預設壓縮風格;ultra:更接近電報式表達;wenyan:用文言風格進一步壓縮中文表達。
實際使用時,建議先從 lite 或 full 開始。ultra 雖然更短,但對複雜任務可能會損失可讀性。
安裝後能得到什麼
README 列出的主要能力包括:
| 功能 | 用途 |
|---|---|
| `/caveman [lite | full |
/caveman-commit |
生成 Conventional Commit 訊息,subject 控制在 50 字元以內 |
/caveman-review |
生成一行式 PR review 評論,例如 L42: bug: user null. Add guard. |
/caveman-stats |
統計真實會話 token 使用、累計節省和估算成本 |
/caveman-compress <file> |
壓縮 CLAUDE.md、專案筆記等記憶檔案,保留程式碼、URL 和路徑 |
caveman-shrink |
MCP middleware,用來壓縮 MCP server 的 tool descriptions |
cavecrew-* |
壓縮風格的 investigator / builder / reviewer subagents |
其中 /caveman-compress <file> 值得單獨看。很多 Agent 專案的長期成本不只來自輸出,還來自每次會話啟動時塞進上下文的說明檔案、偏好、專案筆記。把這些檔案壓縮後,每次會話都會少帶一部分低密度文字。
Benchmark 怎麼看
專案 README 聲稱,基於 Claude API 的真實 token 統計,10 個提示詞平均輸出減少 65%,範圍在 22% 到 87% 之間。範例任務包括:
- 解釋 React re-render bug;
- 修復 auth middleware token expiry;
- 設定 PostgreSQL connection pool;
- 解釋 git rebase vs merge;
- Review PR security issues;
- Debug PostgreSQL race condition;
- Implement React error boundary。
README 還說明 eval harness 是三組對比:baseline、terse、skill。也就是說,它不是只拿「預設囉嗦回覆」當靶子,而是和 Answer concisely. 這種簡潔提示做對比。這一點比較關鍵,因為很多「省 token」工具如果只和預設長回答比較,數字會顯得過於好看。
不過這些 benchmark 仍然要謹慎解讀。輸出變短不等於所有任務都更好。簡單 bug 定位、PR review、commit message、命令解釋通常適合壓縮;需求釐清、架構取捨、教學文章、複雜故障復盤可能仍然需要更完整的說明。
caveman-compress:壓縮長期上下文
README 裡還給了 memory file 的壓縮結果,例如 claude-md-preferences.md、project-notes.md、claude-md-project.md、todo-list.md、mixed-with-code.md 等檔案,平均壓縮約 46%。
這類壓縮比單條回覆更有意義。因為 CLAUDE.md、專案規則、偏好說明往往會在每次會話都進入上下文。如果裡面有大量冗餘表達,長期消耗會很明顯。
但壓縮規則檔案時要謹慎:
- 程式碼、URL、路徑、命令必須位元組級保留;
- 不能刪掉安全約束、權限邊界和測試要求;
- 不能把「必須做」的流程壓成含糊建議;
- 壓縮後要人工複讀一遍,確認沒有改變規則語義。
對於團隊專案,建議先壓縮個人偏好和專案筆記,不要馬上壓縮關鍵安全規範。
MCP middleware:caveman-shrink
caveman-shrink 是一個 MCP middleware,用來壓縮 MCP server 的 tool descriptions。這個點很實用,因為 MCP 工具描述通常會被反覆注入給模型。如果工具很多、描述很長,輸入 token 會迅速膨脹。
適合使用的場景:
- MCP server 暴露了大量工具;
- 工具描述重複、格式臃腫;
- Agent 經常需要讀取完整 tool list;
- 你希望在不改原 MCP server 的情況下減少工具描述 token。
不適合的場景:
- 工具描述本來就很短;
- 描述裡有嚴格參數約束,不能壓縮;
- 你還沒驗證壓縮後模型是否會誤用工具。
MCP 工具描述的壓縮要比普通回答更謹慎,因為它會影響模型如何選擇和呼叫工具。
OpenClaw 接入
README 還專門介紹了 OpenClaw 接入。安裝命令可以限定只安裝到 OpenClaw:
|
|
Windows 下可以用:
|
|
安裝後大致做兩件事:
- 把 skill 放到:
|
|
- 在:
|
|
裡追加一個 marker 包裹的小塊,讓 OpenClaw 每輪自動注入簡潔表達規則。
如果你有自訂 workspace,可以先設定:
|
|
卸載時用同一個安裝命令加 --uninstall,腳本會移除 skill 資料夾,並清掉 SOUL.md 裡的 marker block。
適合哪些場景
caveman 最適合這些任務:
- 日常程式碼修改;
- bug 定位;
- commit message;
- PR review;
- 簡短命令解釋;
- 已經有明確上下文的協作會話;
- Agent 輸出太囉嗦、你只想要結論和改法的場景。
它不太適合:
- 寫教學;
- 寫面向初學者的解釋;
- 做產品或架構長文件;
- 需要完整推理鏈路的複雜決策;
- 法務、醫療、金融等需要充分限定條件的高風險建議;
- 你還不確定問題本身、需要大量釐清的問題。
簡單說,caveman 適合「我懂背景,直接告訴我該改哪裡」;不適合「我第一次學,請從概念講起」。
使用建議
如果你打算試用,可以按這個順序來:
- 先在個人 Agent 環境安裝,不要馬上推廣到團隊預設配置。
- 用
lite或full跑幾天,觀察 bug 修復、review、commit message 的品質。 - 對複雜任務手動切回
normal mode。 - 再考慮
/caveman-compress <file>,從低風險筆記檔案開始。 - 如果要壓縮 MCP tool descriptions,先在非生產環境對比工具呼叫準確率。
最好的狀態不是所有回答都極短,而是 Agent 能在「短、準、夠用」和「需要展開解釋」之間切換。
小結
caveman 是一個很有意思的小工具:它不試圖增強模型能力,而是管住模型的表達密度。對每天大量使用 Claude Code、Codex、Gemini、Cursor 這類工具的人來說,輸出 token 少一點、廢話少一點、結論更靠前,確實會讓工作流更輕。
但它也不是萬能預設值。壓縮回答適合執行型開發任務,不一定適合教學、架構討論和高風險決策。真正值得採用的方式,是把它當成一種可切換的工作模式:需要快和密度時開,需要解釋和上下文時關。