今天發點適合讓 AI Agent 簡潔輸出的東西。
平時我們用 AI Agent 時,輸出的內容不管對不對都會有一些囉裏八嗦的廢話,讀起來很浪費我們的時間和精力,用起來也浪費 Token。
只要給你的 AI Agent 裝上這個叫 Caveman 的GitHub項目之後,輸出的內容立馬變得簡潔起來,只有在重點,沒有廢話。

01. 項目簡介
Caveman 是一個給 AI Agent 用的壓縮表達插件。
項目地址:https://github.com/JuliusBrussee/caveman
Caveman能讓 Claude Code、Codex、Gemini、Cursor、Windsurf、Cline、Copilot 等少說鋪墊話、場面話,多給有效信息。
重點是壓縮“表達方式”,不是壓縮模型思考、上下文、文件內容或工具調用本身。官方說的 65% 節省,指的是輸出 token 平均減少,不等於總賬單直接減少 65%。
Caveman 的思路是把語言習慣寫成強規則,持續塞給代理。包括刪除冠詞、寒暄、弱化語、連接廢話,允許句子碎片化,保留代碼、命令、錯誤、API 名稱和技術術語。
核心技能包括 caveman、caveman-commit、caveman-review、caveman-stats、caveman-compress、caveman-shrink。
- /caveman:開啓輸出壓縮。支持 lite、full、ultra、wenyan 等強度。full 是默認模式。
- /caveman-commit:生成短 Conventional Commit 信息,強調爲什麼改,而不是流水賬描述改了什麼。
- /caveman-review:做代碼 review 時輸出一行式意見,跳過客套和無用表揚。
- /caveman-stats:讀取 Claude Code 本地會話日誌,估算 token 使用和節省情況。
- /caveman-compress <file>:壓縮 CLAUDE.md、偏好、項目筆記這類自然語言記憶文件。
- caveman-shrink:作爲 MCP proxy 包一層上游 MCP server,壓縮 tools/list、prompts/list、resources/list 裏的描述字段。

Caveman 幾個模式的差異:
- lite:只是去掉廢話,句子仍然比較正常。
- full:默認模式。句子更短,允許 fragment。
- ultra:更壓縮,省掉更多連接詞。
- wenyan:文言壓縮模式,主要面向中文,因爲中文字符承載信息密度更高。這個模式很有趣,但不適合所有場景,尤其不適合需要面向團隊協作、PR 評論或新手解釋的內容。
caveman-compress 有一套謹慎的文件規則:
- 只處理自然語言文件,比如 .md、.txt、.tex
- 不處理 .py、.js、.json、.yaml、.env、.sql、.sh
- 代碼塊、inline code、URL、路徑、命令、技術名詞必須原樣保留
- 原文件會備份成 FILE.original.md
- 如果驗證失敗,不覆蓋原文件
這個設計說明作者知道“壓縮記憶文件”有破壞信息的風險,所以做了文件類型限制和驗證流程。
02. 項目實測
case 1 Bug 解釋
提示詞:
解釋一下爲什麼這個 React 組件會重複渲染,並給出最小修復方案:
function UserCard({ user }) {
const options = { showEmail: true };
return <Profile user={user} options={options} />;
}
const Profile = React.memo(function Profile({ user, options }) {
console.log(“render profile”);
return <div>{user.name}</div>;
});
不用Caveman:

用Caveman:

Caveman 明顯更短,大概砍掉三分之一到一半內容,且沒有明顯錯誤。
case 2 Debug 修復
提示詞:
幫我排查這個 Node.js 登錄中間件的問題。用戶 token 已經過期,但有時仍然能通過校驗。請指出 bug,並給出修復代碼。function auth(req, res, next) { const token = parseToken(req.headers.authorization); if (!token) return res.status(401).send(“missing token”); if (token.exp < Date.now() / 1000) { return res.status(401).send(“expired”); } req.user = token.user; next();}
不用Caveman:

用Caveman:

Caveman 版輸出 Token 少很多,正文和代碼都更短,兩版都指出 exp 缺失/非法會放行、邊界判斷應按 now >= exp、JWT 需要驗籤。
case 3 架構權衡
提示詞:我們正在做一個 B2B SaaS,團隊 8 個工程師,當前是單體 Rails 應用。現在有 3 個模塊:計費、通知、報表。老闆想拆微服務。請分析是否應該拆,給出建議和遷移路徑。
不用Caveman:

用Caveman:

普通版約 1400 到 1600 token,Caveman 版約 650 到 800 token,減少大約 50%,掃讀成本明顯低。而且重點內容:不建議全面拆、先做模塊化單體、通知/報表優先、計費最後拆,這些判斷都保住了。
case 4 PR Review
提示詞:
請 review 下面這段代碼,重點看安全、併發和邊界條件。只指出真實問題,不需要表揚。
async function transfer(fromUserId, toUserId, amount) {
const from = await db.users.findById(fromUserId);
const to = await db.users.findById(toUserId);
if (from.balance < amount) {
throw new Error(“insufficient funds”);
}
from.balance -= amount;
to.balance += amount;
await db.users.update(fromUserId, { balance: from.balance });
await db.users.update(toUserId, { balance: to.balance });
return true;
}
不用Caveman:

用Caveman:

這次兩版差距沒有前幾組大,Caveman 粗略少 10% 到 15%,原因是 Caveman 多補了“冪等”問題。
而且代碼 review 場景,不用 Caveman 已經是問題清單式寫法,壓縮空間有限。
case 5 Docker 優化
提示詞:
幫我優化這個 Dockerfile,目標是減少鏡像體積、提高構建緩存命中率,並避免把敏感文件帶進鏡像。
FROM node:20
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
CMD [“npm”, “start”]
不用Caveman:

用Caveman:

Caveman 版減少大約 35% 到 45% Token的。差異在基礎鏡像:普通版用 bookworm-slim,兼容性更穩;Caveman 用 alpine,體積更小。
case 6 數據庫問題
提示詞:
解釋這個 PostgreSQL 查詢爲什麼慢,並給出排查和優化方案。
表 orders 有 8000 萬行,字段包括 id, user_id, status, created_at, total_amount。
常見查詢:
SELECT *
FROM orders
WHERE user_id = $1
AND status = ‘paid’
ORDER BY created_at DESC
LIMIT 20;
不用Caveman:

用Caveman:

不用 Caveman 約 1000 到 1200 token;Caveman 版約 500 到 650 token,減少大約 45% 到 50%。
普通版多了穩定排序 created_at, id,這是 Caveman 漏掉的實用細節。
case 7 重構任務
function loadUser(id, callback) {
db.findUser(id, function(err, user) {
if (err) return callback(err);
api.fetchProfile(user.profileId, function(err, profile) {
if (err) return callback(err);
cache.set(id, profile, function(err) {
if (err) return callback(err);
callback(null, { user, profile });
});
});
});
}
不用Caveman:

用Caveman:

不用 Caveman 約 850 到 1000 token;Caveman 約 650 到 800 token,減少大約 20% 到 30%。
Caveman Token稍低,但優勢不大。因爲這題天然需要代碼塊,token 主要花在代碼上,風格壓縮空間有限。
case 8 新功能設計
提示詞:設計一個“導出報表爲 CSV”的後端接口。要求支持大數據量、權限校驗、異步任務、下載鏈接過期。請給出 API 設計、數據流和主要表結構。
不用Caveman:

用Caveman:

不用 Caveman 約 1300 到 1600 token;Caveman 約 900 到 1100 token,減少大約 25% 到 35%。
普通版多了 Idempotency-Key、report_export_files 獨立表、CSV 注入防護細節。
case 9 事故覆盤
提示詞:我們線上服務昨天 10:05 到 10:27 出現大量 500。初步發現 Redis 連接池耗盡,應用不斷重試,數據庫 QPS 同時升高。請寫一份工程內部事故覆盤,包含時間線、根因、影響、修復、後續行動。
不用Caveman:

用Caveman:

不用 Caveman 約 900 到 1100 token;Caveman 約 550 到 700 token,減少大約 35% 到 45%。
普通版多了佔位符提示、數據一致性覈查、單飛機制;Caveman 多強調 retry budget、jitter、熔斷和保護 DB。
case 10 代碼解釋
提示詞:請給剛入職的後端新人解釋什麼是數據庫連接池,爲什麼不能每個請求都新建連接,並舉一個實際服務裏的例子。
不用Caveman:

用Caveman:

不用 Caveman 約 700 到 850 token;Caveman 約 300 到 400 token,減少大約 50% 到 60%。
兩版都命中連接複用、建連成本、連接數限制、池大小不能亂配。普通版多了完整代碼例子和“第 21 個請求等待”的直觀說明。
這 10 個 case 跑下來,Caveman 沒有出現明顯技術錯誤,核心判斷都保住了,但 Caveman 會犧牲一部分細節,在明確問題和熟手場景裏,收益很高。
最後還要給大家說幾個需要注意的點:
- Caveman 只減少輸出 token,輸入 token 不會自動減少
- skill 本身每輪會增加約 1k 到 1.5k input tokens
- 如果普通回答本來只有 150 output tokens,啓用 Caveman 可能反而更貴
- 如果平台按請求計費,而不是按 token 計費,短回答不會降低請求數
03. 挖一挖
Caveman 這類工不是省幾個 token的小需求,而是 AI Agent 進入我們的日常開發後,對輸出效率、閱讀成本和協作質量的要求變高了。
這次 10 個 case 測下來,Caveman 的價值也比較清楚。架構權衡、數據庫優化、事故覆盤、概念解釋這類容易展開的任務,輸出大多能減少 35% 到 60%;代碼塊佔比高的任務,壓縮幅度會降到 10% 到 30%。很適合處理模型容易囉嗦,但工程師只想看結論的場景。

對我們來說,Caveman 能減少每天讀 AI 回覆的時間;讓 review、debug、方案討論更像工程溝通,幫助統一輸出風格,降低來回確認的成本。
Caveman 不該只被理解成省錢神器。它主要壓縮輸出 token,輸入 token 和推理成本不會自動消失。
AI Agent 真正進入生產流程後,差距不只在會不會生成答案,也在生成的答案能不能被人快速使用。
原文鏈接:GitHub 狂攬 85K Stars,AI Agent 再也不說廢話