⚡ Caveman 是一款 AI 编码助手插件/技能,让 Claude Code/Codex/Cursor 等 30+ Agent 用穴居人式简短回答,节省 65% 输出 Token。技术细节 byte-for-byte 精确,6 档压缩强度可选,跨平台 MIT 开源。
🎤 引言
"好的,让我快速给你答案——" "这是一个很好的问题!" "让我先解释一下思路——"
这种 AI Agent 编程对话里的「废话前缀」是不是超熟悉?你只想看一行 fix 的 diff,结果 Agent 给你 200 词的「思考过程」+ 5 段前言 + 2 个反问。每个回合要多花 60-75% 不必要的 token,账单累积起来相当肉疼。
更糟糕的是,这些"礼貌前缀"对最终代码质量基本没有任何贡献——它们只是模型从训练数据里学来的"讨好习惯"。砍掉它们以后,实际的有用信息反而更突出,注意力不会被无意义的话术稀释。
举一个最直观的 before / after 对比,下面是对同一个 bug 改动的回复:
# Before(默认 verbose)
"我注意到你的认证中间件存在一个潜在问题。根据我的分析,目前的 token 过期检查
使用了严格小于号 `<`,这意味着当 token 恰好等于过期时间时仍被认为是有效的。
建议改用 `<=` 来确保边界条件也被正确处理。这是一个常见的安全漏洞模式,希望
这个建议对有帮助!"
# After(caveman full)
"Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
`<`
`<=`同一个修复建议,节省 75% 字符,信息密度反而更高——fix: 后面紧跟两个 1-token 对比,谁对谁错一目了然。
19 岁全栈开发者 Julius Brussee 写了 Caveman(穴居人)来系统化解决这个问题。它是一个 AI 编码 Agent 的技能/插件,一次安装,让你的 Claude Code、Codex、Cursor、Gemini 等 30+ Agent 全部改用极简的「穴居人语法」说话。省 token、省时间、省眼睛。
官方口号:why use many token when few do trick。
⭐ 核心功能
- 6 档压缩强度——从「只删废话」一直压到「文言文级」:
lite(轻量,只删客套)/full(默认,标准穴居)/ultra(电报级,极短)/wenyan-lite(半文言)/wenyan-full(全文言)/wenyan-ultra(古文硬核)。一条命令切换,session 内持续生效。中度使用者日常full已经够狠,ultra留给"我就要最简电报"场景,wenyan适合中文圈的古文爱好者。 - 技术内容零损失——代码块、CLI 命令、API 名、错误信息字符串、commit type(feat/fix/perf/refactor 等)全部 byte-for-byte 精确保留。Agent 会把"为什么不写循环"这类冗余逻辑删掉,但绝不会动
Bearer xxx、status === 401、git reset --hard HEAD~1这种关键字符串。这是它跟普通「简短回答 prompt」的本质区别——保留了所有必要技术细节,砍的只是客套。 - 多语言压缩——你用中文写它回中文穴居文,写 Portuguese 它回 Portuguese 穴居文。只压缩风格,不压缩语言。这避免了「压缩变形」类插件把外语技术人逼回英语的尴尬。日语、韩语、西班牙语、法语都支持——从 SKILL.md 实际测试看识别准确,对中文圈尤其友好。
- 30+ Agent 通用——Claude Code、Codex、Cursor、Windsurf、Cline、Copilot、Gemini CLI 等主流 AI 编码助手全部支持。一次
npx skills add全部生效,跨工具切换不会再出现「每次都要重新适应 AI 说话风格」的体验割裂。Cursor 用户不用切到 Claude Code 也能享受同样简洁风格。 - 状态行徽章——Claude Code 状态栏显示
[CAVEMAN] ⛏ 12.4k,实时累计已节省 token 数。想安静的话设CAVEMAN_STATUSLINE_SAVINGS=0静音。这个数字对有"账单焦虑"的开发者是一剂定心丸,看着它跳涨比看 token 数跳涨爽多了。 - 统计与共享——
/caveman-stats看会话级节省分布(按 flag 切换时间分段,可信不虚标),--share一键导出分享链接。给团队 leader 汇报「这月 AI 编程帮我们省了多少」非常直观。给老板省钱的可视化证据。 - OpenClaw 集成——原生支持 OpenClaw 自托管 Gateway(一个盒子跑多种 agent,Slack/Discord/iMessage/Telegram 全通道),龙虾族 🦞 现在也能闭嘴说话。
- PR/Commit 专用语法——
/caveman-commit生成 ≤50 字符 conventional commits(feat(auth): use <= for token expiry check),/caveman-review出一行 PR 评论(L42: 🔴 bug: user null. Add guard.),让团队协作文本格式标准统一。 - 诚实统计逻辑——v3.7.34 重写了 token 归属算法,根据
.caveman-mode-log.jsonl中 flag 切换时间戳跟 session JSONL 消息时间戳 join,按实际 caveman 启用时段计算节省量。不会虚标,不会回溯伪造历史。
📥 安装与使用
一行命令安装(推荐,这条命令会同时装上 5 个 sibling skill):
npx skills@latest add JuliusBrussee/skills5 个 sibling 分别是:caveman(本插件)/ grill-me(让 Agent 先挑战你的方案再开始写,避免写错方向)/ interface-kit(生成美观高性能 UI)/ junior-to-senior(对抗式代码 review)/ loop-factory(spec 驱动任务循环)。互不冲突可叠加。
激活与档位切换(Claude Code / Codex / Gemini 内置自动激活,Cursor / Windsurf / Cline / Copilot 需 --with-init 写 always-on 规则文件):
/caveman # 默认 full 模式
/caveman lite # 只删废话,风格不变
/caveman ultra # 电报级,极短
/caveman wenyan # 文言文会话内常用命令:
/caveman-commit # 简短 commit 信息(≤50 字符)
/caveman-review # 一行 PR 评论
/caveman-compress <file> # 把 CLAUDE.md 类文件压缩成穴居文(连输入 token 也省)
/caveman-stats # 查看本会话节省的 token 数
--share # 一键分享节省报告(含可读 markdown)关闭:
"stop caveman" 或 "normal mode"GitHub 仓库:https://github.com/JuliusBrussee/caveman
🎯 适用场景
- 每日高频 AI 改 Bug:很多 CI 报错只需一行
fix解释,Agent 写了 500 词背景故事——caveman 直接砍到 30 字。多数 bugfix 不需要"为什么"——看到了就改。 - 跨 AI Agent 切换:今天用 Claude Code 明天切 Cursor,caveman 让所有 Agent 输出风格统一,省去适应期。对工具频繁切换的开发者尤其重要。
- 团队协作 PR 评审:
/caveman-review把 PR 评论压成一行标准格式,方便扫读,对 review culture 提升明显。在 issue 区被多次提到是"团队最先用起来的功能"。 - 非英语母语团队:保留中/葡/西等语言的智能压缩,避免英文一统天下——对国内出海团队尤其友好。
- AI 月费敏感用户:Claude/Codex 按 token 计费,节省 65% 输出 token 直接省一半钱。如果你用 Claude Code 跑 8 小时不间断,一天能省下好几刀。
- 资深开发者:不再需要 AI 解释基础概念,只要结论和代码,Caveman 默认就给你这种风格。
- 教程/文档协作:写 README、issue 描述时让 Agent 直接出草稿,自己再修改,少看 70% 废话。
- CI/CD 集成:让 Agent 在自动化任务里也保持极简输出,日志可读性大幅提升。
🔍 对比/替代方案
在「prompt 压缩 AI 输出」这个细分赛道上,单独项目不多,但有这些可参考:
| 工具 | 方案 | 优点 | 缺点 |
|---|---|---|---|
| Caveman | Prompt 侧 system prompt 注入压缩语法 | 一次性、跨 30+ Agent、6 档可调 | 仍要付输入 token 费用,依赖 model 听话 |
| Cavegemma(同作者) | 在 model weights 层面微调 Gemma 4 31B | 真正零 prompt 开销,推理也快 | 只能用微调过的模型,灵活度低 |
| caveman-compress(同仓) | 压缩 CLAUDE.md 等记忆文件 | 连输入 token 都省 | 仅优化持久记忆文件,不动实时输出 |
| caveman-code(同作者) | 独立终端编码 Agent | 完整闭环 + 1.93× token 节省 | 需要迁移工作流 |
| 传统「short answer please」prompt | 用户每次手动追加 | 零安装 | 易被忽略,需每次重复,跨 Agent 不通用 |
| Aider / Continue 等 IDE 插件的内置简洁模式 | 部分编辑器自带 | 无需额外装 | 受限于编辑器,覆盖 AI Agent 极少 |
🎯 这四者是 互补关系不是互斥关系,Caveman 是入口最广覆盖;想极致省钱可以再叠加 Cavegemma(模型层)或 caveman-compress(输入层)。比传统 prompt hack 强在「持久 + 跨 Agent + 自带统计」三个维度。
⚠️ 注意事项
- 仅影响输出 token——思考/推理阶段的 token 不动。官方原文:"Caveman no make brain smaller. Caveman make mouth smaller."(穴居人不是脑子变小,是嘴变小)。这意味着它对回答质量本质无影响,只改表达方式。
ultra模式偶发丢失自解释——在极复杂调试场景下,Agent 偶尔会把「为什么这么改」也压缩掉。建议日常用full,复杂任务临时切回lite拿完整解释。wenyan模式同理。- 老版本有统计虚标 bug——早期
caveman-stats会把「启用 caveman 之前的输出」也算成节省。最新的版本(v3.7.34)已经修,采用 flag 切换时间分段统计,不可追溯的历史会话诚实标注「UNKNOWN」。从升级那一刻起数据才准,这点在 issue #522 讨论里也提到了。 - 不强制立即生效——Claude Code/Codex/Gemini 是自动激活(built-in hook),Cursor/Windsurf/Cline/Copilot 需要
--with-init写入 always-on 规则文件才能跨 session 持续。 - 不适合的场景——学习新概念、需要 AI 详细解释原理、外语阅读能力差的用户——这种场景其实「废话前缀」反而是福音,所以不是普适方案。
- 依赖 model 配合度——如果底层模型不愿意严格遵守 system prompt,偶尔会"忘记自己是 caveman",输出半截穴居半截正常。这种情况 1) 换模型 2) 重新激活一次。GPT 系列配合度比 Claude 略差。
- 计数器从 0 开始——Caveman 不记录清零前的历史数据,跟 git remote reset 后不要找回 origin 一样——是诚实的设计,但用户偶尔会误会"为啥从 0 开始算"。
- 不优化图像/语音 token——只针对纯文本输出。如果 agent 在回复里塞了大段 base64 图片 OCR 结果,那部分照样按 token 计。
✅ 总结
推荐指数:⭐⭐⭐⭐(4/5,扣一星因为 ultra 偶尔有点过激,且依赖模型配合度)
适合:日常高频用 AI 写代码、想压低 AI 月费、跨多个 AI Agent 工作、追求统一简洁输出风格的人。
不适合:初学编程、需要 AI 大段详细解释原理、外语阅读能力差的人——这种场景其实「废话前缀」反而是福音。
最大的隐藏价值:除了省钱,它还让 终端输出清爽度大幅提升。在 VS Code 里看 Agent 流式打字时不再被一堆"好的、让我、首先"刷屏,工作心流稳定很多。这点在 Issue 区也是反复被提到的核心卖点。从用户反馈来看,"噪音减少 → 注意力集中"才是 caveman 真正的杀手锏,省 token 只是顺带。
额外彩蛋:caveman 跟 2026 年 3 月论文「Brevity Constraints Reverse Performance Hierarchies in Language Models」的发现一致——强制简短约束在某些 benchmark 上让大模型准确率提升 26 个百分点。换句话说,啰嗦不一定更对,穴居文反而可能更准。
从工程角度,caveman 不只是个 prompt 技巧——它印证了"压缩信息熵保留有效信号"这一原则在 LLM 上的可行性。如果你已经在 Claude Code / Codex / Cursor 上花了不少钱,现在装上几乎零成本,立刻能看到账单下降、注意力回收两份收益。
GitHub 仓库:https://github.com/JuliusBrussee/caveman
作者主页(含 caveman-code / cavegemma / cavemem 等同生态项目):https://github.com/JuliusBrussee