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 少一点、废话少一点、结论更靠前,确实会让工作流更轻。
但它也不是万能默认值。压缩回答适合执行型开发任务,不一定适合教学、架构讨论和高风险决策。真正值得采用的方式,是把它当成一种可切换的工作模式:需要快和密度时开,需要解释和上下文时关。