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 设计