技能介绍
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-shrink | MCP 中间件。包装任意 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 读取的是本地已有的日志。
效果预览

普通 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 重新渲染 bug | 1180 | 159 | 87% |
| 修复认证中间件 token 过期 | 704 | 121 | 83% |
| 配置 PostgreSQL 连接池 | 2347 | 380 | 84% |
| 解释 git rebase 与 merge | 702 | 292 | 58% |
| 把 callback 重构为 async/await | 387 | 301 | 22% |
| 架构:微服务 vs 单体 | 446 | 310 | 30% |
| 审查 PR 的安全问题 | 678 | 398 | 41% |
| Docker 多阶段构建 | 1042 | 290 | 72% |
| 调试 PostgreSQL 竞态条件 | 1200 | 232 | 81% |
| 实现 React error boundary | 3454 | 456 | 87% |
| 平均 | 1214 | 294 | 65% |
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.md | 706 | 285 | 59.6% |
| project-notes.md | 1145 | 535 | 53.3% |
| claude-md-project.md | 1122 | 636 | 43.3% |
| todo-list.md | 627 | 388 | 38.1% |
| mixed-with-code.md | 888 | 560 | 36.9% |
| 平均 | 898 | 481 | 46% |
之后每次会话,该文件加载时约减少 46% 输入 token。这不是只省一次性回复,而是长久节省输入 token。
工作方式
- Skill 文件被配置到你的 Agent。
- Skill 告诉 Agent:去掉废话、保留实质、使用短语——但绝不碰代码、命令或错误。
- 在 Claude Code 上,hook 会在每个会话写入一个小标记文件,因此从第一条消息起 Agent 就用"穴居人"模式,无需
/caveman。 /caveman-stats读取你的会话日志,统计节省的 token,把数字写入状态栏。/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。



