caveman 介紹:讓 Claude Code、Codex 和更多 Agent 少說廢話

介紹 JuliusBrussee/caveman 的定位、安裝方式、壓縮等級、命令、benchmark、MCP middleware、OpenClaw 接入和適用邊界,幫助開發者判斷這類 Agent 輸出壓縮工具是否值得使用。

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 風格會壓成類似:

1
New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`.

同一個結論,更少鋪墊。對熟悉上下文的開發者來說,這種密度更高。

它也強調「保留語言」。如果你用中文提問,回答應該壓縮成中文;如果你用葡萄牙語、西班牙語或法語,壓縮的是表達風格,不是把語言變成英文。程式碼、命令、錯誤字串應保持精確。

安裝方式

官方提供一行安裝腳本,會自動尋找可用 Agent 並安裝到對應位置。

macOS / Linux / WSL / Git Bash:

1
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash

Windows PowerShell 5.1+:

1
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex

專案說明裡提到安裝通常約 30 秒,需要 Node.js 18 或更高版本。腳本會跳過本機沒有安裝的 Agent,並且可以安全重複執行。

如果只想看更完整的安裝矩陣,可以讀專案裡的:

1
INSTALL.md

怎麼觸發和退出

安裝後,通常可以在會話裡輸入:

1
/caveman

或者直接說:

1
talk like caveman

退出時說:

1
normal mode

它支援不同壓縮等級:

1
2
3
4
/caveman lite
/caveman full
/caveman ultra
/caveman wenyan

大致可以這樣理解:

  • lite:主要刪除空話和重複;
  • full:預設壓縮風格;
  • ultra:更接近電報式表達;
  • wenyan:用文言風格進一步壓縮中文表達。

實際使用時,建議先從 litefull 開始。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.mdproject-notes.mdclaude-md-project.mdtodo-list.mdmixed-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:

1
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash -s -- --only openclaw

Windows 下可以用:

1
npx -y github:JuliusBrussee/caveman -- --only openclaw

安裝後大致做兩件事:

  1. 把 skill 放到:
1
~/.openclaw/workspace/skills/caveman/SKILL.md
  1. 在:
1
~/.openclaw/workspace/SOUL.md

裡追加一個 marker 包裹的小塊,讓 OpenClaw 每輪自動注入簡潔表達規則。

如果你有自訂 workspace,可以先設定:

1
OPENCLAW_WORKSPACE=/your/path

卸載時用同一個安裝命令加 --uninstall,腳本會移除 skill 資料夾,並清掉 SOUL.md 裡的 marker block。

適合哪些場景

caveman 最適合這些任務:

  • 日常程式碼修改;
  • bug 定位;
  • commit message;
  • PR review;
  • 簡短命令解釋;
  • 已經有明確上下文的協作會話;
  • Agent 輸出太囉嗦、你只想要結論和改法的場景。

它不太適合:

  • 寫教學;
  • 寫面向初學者的解釋;
  • 做產品或架構長文件;
  • 需要完整推理鏈路的複雜決策;
  • 法務、醫療、金融等需要充分限定條件的高風險建議;
  • 你還不確定問題本身、需要大量釐清的問題。

簡單說,caveman 適合「我懂背景,直接告訴我該改哪裡」;不適合「我第一次學,請從概念講起」。

使用建議

如果你打算試用,可以按這個順序來:

  1. 先在個人 Agent 環境安裝,不要馬上推廣到團隊預設配置。
  2. litefull 跑幾天,觀察 bug 修復、review、commit message 的品質。
  3. 對複雜任務手動切回 normal mode
  4. 再考慮 /caveman-compress <file>,從低風險筆記檔案開始。
  5. 如果要壓縮 MCP tool descriptions,先在非生產環境對比工具呼叫準確率。

最好的狀態不是所有回答都極短,而是 Agent 能在「短、準、夠用」和「需要展開解釋」之間切換。

小結

caveman 是一個很有意思的小工具:它不試圖增強模型能力,而是管住模型的表達密度。對每天大量使用 Claude Code、Codex、Gemini、Cursor 這類工具的人來說,輸出 token 少一點、廢話少一點、結論更靠前,確實會讓工作流更輕。

但它也不是萬能預設值。壓縮回答適合執行型開發任務,不一定適合教學、架構討論和高風險決策。真正值得採用的方式,是把它當成一種可切換的工作模式:需要快和密度時開,需要解釋和上下文時關。

记录并分享
使用 Hugo 建立
主題 StackJimmy 設計