减少65% AI Token消耗

在保持代码逻辑 100% 准确的前提下,平均减少 65% 的输出 Token 占用。

详细介绍

Caveman

Caveman 是一个用于 AI 编码 Agent 的 skill/plugin,让 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 的用户。

效果预览

普通 Agent — 69 tokens:

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

Caveman Agent — 19 tokens:

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

普通 Agent:

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

Caveman Agent:

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

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

核心能力

兼容 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 <file>
把记忆文件(如 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 <level> 切换。级别会保持,直到你修改或会话结束。

级别
同样一句话的压缩效果

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 的附加工具。

基准与真实数据

以下是 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 何时划算、何时不划算,以及如何自己测量,可查看 docs/HONEST-NUMBERS.md 。

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 是长久的,不只是这一次。

隐私

Caveman 不打电话回家。无遥测、无分析、无账号、无后端。配置完成后零网络调用——Skill 是提示词,hook 是本地脚本, /caveman-stats 读取的是本地已有的日志。安装时的网络请求(GitHub 和 Agent 自己的 registry)在 SECURITY.md 中有说明。

试试这样做

  • /caveman full
  • /caveman-stats
  • /caveman-commit

作者:JuliusBrussee 开发者 / 职场人 | GitHub Stars 93K | 标签:编程开发 自动化 已认证 开源许可: MIT

来源:colaos.ai | Skill ID:caveman