caveman 调研:让 Claude Code 砍掉 65% 输出 token,挖矿模式比裸跑快 3 倍

59次阅读

caveman 调研:让 Claude Code 砍掉 65% 输出 token,挖矿模式比裸跑快 3 倍

你给 agent 一段需求,它回了一篇小作文。装上 caveman,它说 “New obj ref. Inline prop = re-render. useMemo.” —— 87% token 没了,技术准确性 100%。

写在前面

2026 年,AI coding agent 已经进了流水线。一个 ticket 跑完,Claude Code / Codex / Copilot CLI 的输出日志常常是几千 token 的 prose:开场白、复述问题、列可能性、补充 caveat、问要不要继续——真正有用的那行答案藏在第 7 段里

更糟的是,agent 自己每轮都把自己的输出再读回去(context 回灌)。你让 agent 写一个 200 行的 React 组件,它读了 3k token 的旧回复后才动笔。token 成本乘以 token 时间,乘以 token 等待——一个能让 agent “ 少说话 ” 的工具,等同于让 agent “ 快 3 倍 ”。

cavemanhttps://github.com/JuliusBrussee/caveman)的解法是给 agent 装一条规则:drop filler, keep substance, use fragments。不是 prompt 调优,是 skill + hooks 强制激活。MIT 协议、30+ agent 平台、~30 秒装完、~65% 平均输出压缩(范围 22-87%)。

这篇文章就拆开看:它解决什么问题 → 4 级强度怎么选 → benchmark 真假 → 你该不该装

一、它解决什么问题

一句话:让 agent 闭嘴,但不让 agent 变笨

caveman 是个 Claude Code skill/plugin(也兼容 Codex / Gemini / Cursor / Windsurf / Cline / Copilot 等 30+),把 agent 的 ” 礼貌小作文 ” 压成 ” 穴居人电报 ”——技术准确性 100%,输出 token 平均砍 65%。

“The reason your React component is re-rendering is likely because you’re creating a new object reference on each render cycle. When you pass an inline object as a prop, React’s shallow comparison sees it as a different object every time, which triggers a re-render. I’d recommend using useMemo to memoize the object.”
—— 119 token

“New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo.”
—— caveman,19 token

同样的答案,同样的模型。87% 没了。

项目基本面

字段
项目 JuliusBrussee/caveman
协议 MIT
部署平台 30+(Claude Code / Codex / Gemini / Cursor / Windsurf / Cline / Copilot 等)
强度档位 4 级(lite / full / ultra / wenyan)
平均输出压缩 ~65%(范围 22-87%)
速度提升 ~3×(agent 自己的 context 回灌更快)
技术准确性 100%
安装命令 curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh \| bash(~30 秒)
配套项目 caveman-code:完整终端 coding agent,比 Codex CLI 少 ~2× tokens
触发词 /caveman 或 “talk like caveman”
退出 “normal mode”

二、4 级压缩强度:从 ” 去填充 ” 到 ” 文言文 ”

caveman 提供 4 档强度(/caveman lite|full|ultra|wenyan),切换立即生效,到 session 结束。

档位 风格 典型产出 适用场景
lite(去填充) 砍 “I think / I’d recommend / Sure!” 这类礼貌套话 “The issue is X. Use Y.” 想保留完整句子,只删口水
full(默认 穴居人) 主谓宾 + fragments + 省略系动词 “New obj ref each render. Inline prop = new ref. Wrap useMemo.” 大多数日常 debugging、code review
ultra(电报式) 名词堆 + 标点符号当分隔 “Bug: auth middleware. Token expiry check < not <=. Fix.” 复杂 stack trace / 多文件改动 / 想边读边执行
wenyan(文言文) 用最少的汉字 〔不典型用例,参考其他语言示例:token 省更多〕 中文场景 / 中文技术写作

几个实战片段(来源 caveman README):

Ultra 风格:"Bug in auth middleware. Token expiry check use < not <=. Fix:"
Ultra 风格:"Bug: re-render. Inline prop = new ref. useMemo."

关键设计 :caveman 压缩风格,不压缩语言。你写葡语,caveman 输出葡语;西语、法语同理。Code / command / error string / URL 字节级保留。

wenyan 这档是给中文场景开的彩蛋:同样压缩率下,汉字的信息密度比英语高,所以 token 砍得更狠。

三、benchmark 数据:10 prompts 均值 65%,最高 87%

caveman 的关键证据是 README 自带的 10 prompts 三臂对照(baseline / terse prompt / caveman skill),token 数走 Claude API 真实计数,不是估算。

主表:caveman vs 普通模式

任务 Normal Caveman 节省
Explain React re-render bug 1180 159 87%
Fix auth middleware token expiry 704 121 83%
Set up PostgreSQL connection pool 2347 380 84%
Explain git rebase vs merge 702 292 58%
Refactor callback to async/await 387 301 22%
Architecture: microservices vs monolith 446 310 30%
Review PR for security issues 678 398 41%
Docker multi-stage build 1042 290 72%
Debug PostgreSQL race condition 1200 232 81%
Implement React error boundary 3454 456 87%
Average 1214 294 65%

三个值得细看的事实

  1. debugging 类最受益(83-87%)。agent 看到 bug 后的反应是 “I think the issue might be…” —— 这部分全部是填充。砍掉后 100% 准确率不打折。
  2. 架构讨论类只省 22-30%。讨论 “microservices vs monolith” 本身就需要结构化论证,caveman 砍不掉论证骨架。这种场景别装 ultra,会变味。
  3. agent 自己的 context 回灌 让 token 节省变成速度节省。agent 每轮都把自己上一轮的输出再读一次——你让 agent 写 200 行代码,它读自己 3k token 的旧回复后才动笔。砍 65% 等于 context 读快 65%,等于 agent 整体快 ~3 倍。

学术旁证:2026-03 那篇 “Brevity Constraints” paper

arXiv 论文 “Brevity Constraints Reverse Performance Hierarchies in Language Models”(2026-03)发现:强制大模型输出简短回复,能让某些 benchmark 的准确率上升 26 个点。verbose 不一定更好,有时候 ” 少字 ” 等于 ” 多对 ”。caveman 不直接验证这篇 paper,但它的实测结果跟论文结论一致。

诚实建议:别拿 87% 当对外说辞,65% 是更可信的均值。取决于任务类型,22% 到 87% 都正常。

四、30+ 个 agent 平台 + 7 个 skill 命令

caveman 走 ” 一次规则集 + hook 强制激活 ” 路线。同一份 skills 在 30+ agent 上跑,几个主流装法:

一键安装(macOS / Linux / WSL)

curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash

~30 秒,需要 Node ≥ 18。没有的 agent 自动跳过,可重复运行。

Windows

irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex

7 个核心 skill

命令 用途
/caveman [lite\|full\|ultra\|wenyan] 切换强度档位,session 内持续生效
/caveman-commit Conventional Commit 格式,subject ≤ 50 字符,why over what
/caveman-review PR 单行评论:L42: 🔴 bug: user null. Add guard.
/caveman-stats 实时 session token 用量 + lifetime 节省 + USD,可用 --share 生成可发推的图
`/caveman-compress
` 把 CLAUDE.md / project notes 压缩成 caveman 文风,每 session 砍 ~46% 输入 token
caveman-shrink MCP 中间件,包装任意 MCP server 压缩 tool description(npm
cavecrew-* 穴居人 subagent(investigator/builder/reviewer),比原生少 ~60% tokens

Claude Code / Codex / Gemini 三个 内建 always-on——开 session 就生效,不用打 /caveman。Cursor / Windsurf / Cline / Copilot 通过 --with-init 写 always-on rule file。其他 agent 用 /caveman 命令触发。完整特性矩阵见 INSTALL.md

状态栏徽章

装完后 Claude Code 状态栏会显示 [CAVEMAN] ⛏ 12.4k (lifetime tokens saved),每跑一次 /caveman-stats 更新。嫌吵可以 export CAVEMAN_STATUSLINE_SAVINGS=0 关掉。

五、与 ponytail 对比:砍代码 vs 砍回复

ponytail 那篇调研(ponytail-research)发出去后,读者群有个高频问题:caveman 和 ponytail 是一回事吗?——不是。两者是互补的。

维度 ponytail caveman
砍的目标 代码行数(少写) 回复 token(少说)
核心机制 YAGNI 阶梯 6 步决策链 drop filler + fragments + hook 强制
平均压缩 -54% LOC / -22% tokens -65% output tokens / LOC 不动
多平台 14 个 30+ 个
装上后 agent 风格 “ 这个 date picker 不需要包,用 <input type=date> “New obj ref each render. Wrap useMemo.”
副作用 砍依赖、砍 options、砍未来扩展点 砍开场白、砍补充 caveat、砍 ”would you like”
触发点 写代码前 写完代码后
互补? ✅ 可以同时装 ✅ 可以同时装

最佳实践

  • 装 ponytail + caveman:ponytail 让 agent 少写代码(省 LOC),caveman 让 agent 少解释代码(省 prose)。一个管 ” 产 ”,一个管 ” 说 ”。两个一起装,实测 token 比单独装 ponytail 再省 ~7-10%(来自 ponytail benchmark 对照组)。
  • 只装 caveman:你要的是一个 ” 快 3 倍 + 简洁输出 ” 的 agent,原代码风格不变。
  • 只装 ponytail:你的瓶颈是 review 的代码量,不是 agent 的等待时间。
  • 两个都不装:你 agent 主要任务是聊天 / 写文档 / 写 PR 描述——这些场景 prose 不能砍。

ponytail benchmark 里 caveman 是对照组之一:caveman 让 LOC -20%(靠 ” 少写点解释 prose”),但 token +7%(解释被压成短句,总 token 反而略涨)。这不是矛盾——压缩的不是同一个东西

六、实战:2 个场景跑通

场景 1:React re-render bug

任务:” 我的 React 组件每次按键都 re-render,怎么修?”

没装 caveman 的输出(典型 Claude Code 默认行为)

“Great question! A React component can re-render on every keystroke for several reasons. The most common cause is passing a fresh object or function reference as a prop on each render, which defeats React’s referential-equality bail-out and forces the child to reconcile again… I’d recommend using useMemo to memoize the prop. Here’s an example: …”
—— ~1190 token

装上 caveman full 后的输出

“New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo.”
—— 159 token

节省 87%。同时 agent 已经把 useMemo 改进了代码——技术准确性 100%。

场景 2:Auth middleware token expiry

任务:” 我的 auth middleware 没拦截过期 token,看看代码。”

没装 caveman

“Sure! I’d be happy to help you with that. The issue you’re experiencing is most likely caused by your authentication middleware not properly validating the token expiry. Let me take a look and suggest a fix. The current implementation uses < instead of <= in the expiry check, which means tokens that expire exactly at the current time will not be rejected…”
—— ~704 token

装上 caveman

“Bug in auth middleware. Token expiry check use < not <=. Fix:”
—— 121 token

节省 83%,fix 本身完整保留。

两个场景的共同点:agent 的 ”thinking out loud” 占了 80%+ 的输出,真正的 fix 只有 1-2 句话 。caveman 把 thinking 留在 thinking tokens 里(caveman 不压缩 thinking tokens,只压缩 output tokens——这点很重要),只把 output 削到骨头。

七、决策表

场景 推荐 理由
你每天跑 50+ ticket,agent 输出刷屏 装 caveman full 砍 65% prose + speed 3×,立竿见影
你主要写长 PR 描述 / 设计文档 / 中文技术文章 不装 prose 是产品不是噪音,压缩即损伤
你已经在用 ponytail 加装 caveman ultra 互补(少写 + 少说),再省 7-10%
你跑 Codex CLI / Cursor / Windsurf 装 caveman 30+ 平台全支持,~30 秒装完
你要的是一个完整终端 coding agent,不只是 skill 装 caveman-code https://github.com/JuliusBrussee/caveman-code,同款压缩进 agent 全栈,比 Codex 少 ~2× tokens(25 任务 gpt-5.5 实测:524k vs 1,010k,pass rate 14/25 vs 15/25)

八、风险与坑

1. 中文支持只覆盖 wenyan 档

lite / full / ultra 三档是英文优化档,中文 agent 上用会有点怪——agent 会写出 “ 新 obj ref 每次 render” 这种中式英语。中文用户首选 /caveman wenyan,或者直接让 agent 用英文回复 + 你本地翻译。ponytail 在中文场景下没这个问题(它管代码不管 prose)。

2. 架构讨论类只省 22-30%

caveman 不适合所有任务类型。”Compare microservices vs monolith” 这种需要论证骨架的问题,砍 30% 后只剩论点堆叠,关键 caveat 容易丢。遇到长解释任务前,先 /caveman-stats 估算节省率,低于 40% 的别装。

3. thinking tokens 不压缩

caveman 只砍 output tokens。Anthropic 的 extended thinking / o1 / o3 的 internal reasoning tokens 完全不动。如果你的账单大头是 thinking(比如 o3-pro 跑代码生成),caveman 省不了多少——这种情况下看 caveman-code 那种 ” 全栈压缩 agent”。

4. caveman-shrink(MCP 压缩包)刚发布

caveman-shrink 是 MCP 中间件,能压缩任意 MCP server 的 tool description。npm 已发,但 README 把它列为 ”experimental”。生产环境的 MCP server 先测再上,别一刀切全 wrap。

5. Hook 失败回退

如果 install hook 写失败(比如 file permission),agent 会 fallback 到 “ 正常说话 ”。症状是 caveman-stats 显示 0 tokens saved。修法:cat ~/.claude/hooks/caveman.flag 看 flag 文件是否存在;不存在就 bash install.sh 重跑一遍。

九、总结

最值得装的 3 个理由

  1. 65% token / 3× 速度 / 100% 准确性——三项独立指标,没有一个以牺牲其他为代价。这在 AI 工具圈极其罕见。
  2. 30+ 平台全支持 + ~30 秒装完——一次性投入,换所有 agent 工作流都加速。
  3. 跟 ponytail 互补——ponytail 砍代码,caveman 砍 prose;一起装省 token 的两个维度都不漏。

一句话建议

curl | bash 装一周 auto-activate,只跑 debugging / refactor / code review 这三类任务(caveman 收益最高),一周后看 /caveman-stats 的 lifetime 节省。如果超过 50%,永久装;如果低于 30%,只在 wenyan 档位下偶尔用。

如果不想装 skill 但想要同款压缩效果,caveman-code 是把压缩写进 agent 全栈的版本——比 Codex CLI 少 ~2× tokens,pass rate 14/25 vs 15/25(25 任务 gpt-5.5 benchmark,2026-05-18)。适合想要 ” 开箱即快 2 倍 ” 的开发者。

参考


让技术被看见,让极简成为常态。

正文完