技能介绍

Caveman 是一个用于 AI 编码 Agent 的 skill/plugin,由 JuliusBrussee 开发并以 MIT 许可开源(GitHub: JuliusBrussee/caveman)。它让 Agent 像"穴居人"一样说话:去掉废话,用简短、直接的短句回答,同时保证代码、命令和错误信息逐字节准确。

一句话定位:只缩小 Agent 的"嘴",不缩小"脑"——不改变它知道什么,只改变它怎么说。根据 README,同样答案可减少约 65% 的输出 token。它可用于 Claude Code、Codex、Gemini、Cursor、Windsurf、Cline、Copilot 以及 30+ 个其他 Agent。

作者要求诚实说明的地方也很明确:Caveman 只减少输出 token;输入和推理 token 不会减少,且 Skill 本身每回合会增加约 1–1.5k 输入 token。真正的收益是可读性和速度,成本节省只是额外好处。

适用场景

  • 使用 AI 编码 Agent,希望回复更短、更易读,同时不损失技术准确性的开发者
  • 关注输出 token 成本,但理解"真正的收益是可读性和速度,而不是必然省钱"的用户
  • Claude Code、Codex、Gemini、Cursor、Windsurf、Cline、Copilot 及 30+ 个其他受支持 Agent 的用户
  • 想让记忆文件(如 CLAUDE.md)变小,让之后每次会话都从更小上下文开始
  • 需要一行式 PR 评论、Conventional Commit 信息等"短输出"场景

核心能力

  • 兼容 Claude Code、Codex、Gemini、Cursor、Windsurf、Cline、Copilot 等 30+ 个 Agent
  • 把回复压缩成简短的"穴居人"风格,同时逐字节保留代码、命令和错误
  • 只缩小 Agent 的"嘴",不缩小"脑"——不改变它知道什么,只改变它怎么说
  • 保留你的语言:用葡萄牙语、西班牙语、法语等书写时,Agent 仍用对应语言回复;压缩的是风格,不是内容
  • 提供多个压缩级别:lite、full(默认)、ultra、wenyan
  • 提供 /caveman-commit、/caveman-review、/caveman-stats、/caveman-compress、caveman-shrink 和 cavecrew-* 子 Agent
  • 可以重写记忆文件(如 CLAUDE.md),让之后的每次会话从更小的上下文开始,长期节省输入 token
  • 无遥测、无分析、无账号、无后端;配置完成后零网络调用

命令一览

↔ 左右滑动查看完整表格
命令作用
/caveman [lite\full\ultra\wenyan]压缩每次回复。级别在会话中保持。
/caveman-commit生成 Conventional Commit 信息,主题不超过 50 字符。讲"为什么"而不是"是什么"。
/caveman-review一行式 PR 评论:L42: 🔴 bug: user null. Add guard.
/caveman-stats查看真实会话 token 用量、累计节省量和 USD。--share 可生成可分享的一句话。
/caveman-compress把记忆文件(如 CLAUDE.md)重写为"穴居人"风格。之后每次会话输入 token 减少约 46%。代码、URL、路径逐字节保留。
caveman-shrinkMCP 中间件。包装任意 MCP server,压缩其工具描述。
cavecrew-\*Caveman 子 Agent(调查员、构建者、审查者)。比普通版本减少约 60% token,让主上下文更持久。

在 Claude Code 上,状态栏会显示 [CAVEMAN] ⛏ 12.4k —— 那是你累计节省的 token,每次运行 /caveman-stats 时更新。设置 CAVEMAN_STATUSLINE_SAVINGS=0 可关闭。

压缩级别

随时用 /caveman 切换。级别会保持,直到你修改或会话结束。

↔ 左右滑动查看完整表格
级别同样一句话的压缩效果
normal agent你应该把对象包在 useMemo 里,因为每次渲染都会创建新的引用。
lite用 useMemo 包裹对象。每次渲染都会创建新引用。
full(默认)每次渲染都是新引用。用 useMemo 包裹对象。
ultra每次渲染/引用。useMemo 它。
wenyan每次渲染都有新引用,所以用 useMemo 包裹——用文言文呈现,更短。

说你的语言。 Caveman 会保留你的语言。写葡萄牙语,Caveman 就用葡萄牙语回应;西班牙语、法语也一样。它压缩的是风格,从不翻译。wenyan 模式是有意为之的特例:文言文每个 token 能承载更多含义。

开启 / 关闭

  • 开启:输入 /caveman 或说 "talk like caveman"。
  • 关闭:说 "normal mode"。
  • 在 Claude Code、Codex 和 Gemini 上,从第一条消息起默认开启,无需命令。

兼容性与限制

  • 受支持的 Agent 包括 Claude Code、Codex、Gemini、Cursor、Windsurf、Cline、Copilot 以及 30+ 个其他 Agent。
  • Caveman 只压缩输出 token。输入和推理 token 不会被节省。
  • Skill 本身每回合会增加约 1–1.5k 输入 token,因此整个会话的实际节省小于单次回复的输出减少。
  • 在已经很简洁的工作负载上,节省可能变成净亏损。
  • Skill 保留你的语言;它压缩风格,不压缩内容。wenyan 级别是有意为之的特例。
  • README 还提到 caveman-shrink 和 cavecrew-* 作为 MCP 中间件和子 Agent 的附加工具。

隐私

Caveman 不打电话回家。无遥测、无分析、无账号、无后端。配置完成后零网络调用——Skill 是提示词,hook 是本地脚本,/caveman-stats 读取的是本地已有的日志。

效果预览

减少65% AI Token消耗

普通 Agent — 69 tokens:

你的 React 组件重新渲染,很可能是因为每次渲染都创建了新的对象引用。当你把内联对象作为 prop 传入时,React 的浅比较会认为它是不同的对象,从而触发重新渲染。我建议用 useMemo 来记忆这个对象。

Caveman Agent — 19 tokens:

每次渲染都是新对象引用。内联对象 prop = 新引用 = 重新渲染。用 useMemo 包一下。

普通 Agent:

当然!我很乐意帮你解决这个问题。你遇到的情况很可能是由认证中间件没有正确校验 token 过期时间导致的。让我看一下并提出修复方案。

Caveman Agent:

认证中间件有 bug。token 过期检查用的是 < 而不是 <=。修复:

同样的修复。三分之一的篇幅。技术内容没有丢失。

基准与真实数据

以下是 README 提供的来自 Claude API 的真实 token 计数。10 个提示平均输出减少 65%(范围 22–87%),对比默认冗长回复。仅计算输出 token。

↔ 左右滑动查看完整表格
任务普通Caveman节省
解释 React 重新渲染 bug118015987%
修复认证中间件 token 过期70412183%
配置 PostgreSQL 连接池234738084%
解释 git rebase 与 merge70229258%
把 callback 重构为 async/await38730122%
架构:微服务 vs 单体44631030%
审查 PR 的安全问题67839841%
Docker 多阶段构建104229072%
调试 PostgreSQL 竞态条件120023281%
实现 React error boundary345445687%
平均121429465%

README 还引用了一篇 2026 年 3 月的论文《Brevity Constraints Reverse Performance Hierarchies in Language Models》,测试了 31 个模型,发现在某些基准上,限制大模型简短回答可使准确率提高约 26 个百分点。

诚实的数字提醒。 Caveman 只减少输出 token。输入和推理 token 不受影响,而且 Skill 本身每回合会增加约 1–1.5k 输入 token。因此整个会话的节省会小于输出数字;在已经很简洁的工作负载上,甚至可能变成净亏损。真正的收益是可读性和速度,成本节省只是额外好处。

caveman-compress 实例

真实记忆文件压缩一次,之后每次会话都会更便宜:

↔ 左右滑动查看完整表格
文件原始压缩后节省
claude-md-preferences.md70628559.6%
project-notes.md114553553.3%
claude-md-project.md112263643.3%
todo-list.md62738838.1%
mixed-with-code.md88856036.9%
平均89848146%

之后每次会话,该文件加载时约减少 46% 输入 token。这不是只省一次性回复,而是长久节省输入 token。

工作方式

  1. Skill 文件被配置到你的 Agent。
  2. Skill 告诉 Agent:去掉废话、保留实质、使用短语——但绝不碰代码、命令或错误。
  3. 在 Claude Code 上,hook 会在每个会话写入一个小标记文件,因此从第一条消息起 Agent 就用"穴居人"模式,无需 /caveman。
  4. /caveman-stats 读取你的会话日志,统计节省的 token,把数字写入状态栏。
  5. /caveman-compress 重写记忆文件(如 CLAUDE.md),让之后每个会话从更小的上下文开始。节省 token 是长久的,不只是这一次。

你需要提供

  • 一个受支持的 AI 编码 Agent:Claude Code、Codex、Gemini、Cursor、Windsurf、Cline、Copilot 或另外 30+ 个受支持 Agent 之一
  • 把 Skill 文件配置到该 Agent(安装时的网络请求来自 GitHub 和 Agent 自己的 registry,说明见 README 的 SECURITY.md)
  • 不需要账号、密钥或后端服务

你会获得

  • 更短的 Agent 回复:平均减少 65% 输出 token,代码、命令与错误信息逐字节保留
  • 四级可切换的压缩风格(lite / full / ultra / wenyan)
  • 一行式 PR 评论与符合 Conventional Commit 的提交信息(不超过 50 字符主题)
  • 真实 token 用量与累计节省统计(含 USD,可生成可分享的一句话)
  • 被压缩后的记忆文件:之后每次会话加载时输入 token 约减少 46%
  • MCP 工具描述压缩(caveman-shrink)与三个更省 token 的子 Agent(cavecrew-*)

使用示例

最常用的三条命令:

/caveman full
/caveman-stats
/caveman-commit

其他开关方式:输入 /caveman 或说 "talk like caveman" 开启;说 "normal mode" 关闭。在 Claude Code、Codex 和 Gemini 上,从第一条消息起默认开启,无需任何命令。想自己衡量 Caveman 何时划算、何时不划算,可查看 docs/HONEST-NUMBERS.md。