caveman
要在座的人都停止了说话的时候,有了机会,方才可以谦逊地把问题提出,向人学习。——约翰·洛克
https://github.com/JuliusBrussee/caveman
caveman:当 AI 学会少说话,它反而更像个真正干活的人
有些项目一出场,就不是来循规蹈矩的。
它不跟你铺垫一大堆技术黑话,不端着,不绕弯,不先来三段礼貌性寒暄,再把真正有用的话藏在最后两行。它一开口,就像一块从山洞里滚出来的石头,砰地一声砸在桌上:
why use many token when few do trick
这就是 caveman,一个让 AI Agent “说人话但更短、说重点而不说废话”的技能插件。它最初面向 Claude Code,但并不只待在一个山洞里。README 里写得很清楚,它同样支持 Codex、Gemini、Cursor、Windsurf、Cline、Copilot 等 30 多种代理与工具。
它干的事情极其直接:让 agent 用“穴居人风格”表达,把输出压缩到更少 token,同时尽量保留技术准确性。
你可以把它想象成一个脾气很好的原始人编译器。
平时的 AI 像一个认真过头的同事,明明一句话能说清楚的 bug,它偏要先感谢你、鼓励你、复述你的问题、再讲一点背景知识,最后才慢慢走到解决方案门口。caveman 看不下去,拎着石斧过来,把那些虚头巴脑的字全砍掉,只留下骨头和火种。
它不是要让模型变笨。
它只是觉得,脑子可以很大,嘴巴可以很省。
这个项目到底是什么
根据仓库 description,caveman 是这样定义自己的:
一个 Claude Code skill,用“穴居人说话方式”把 token 砍掉约 65%,核心理念是 few token do trick。
README 里的描述则更完整:它是一个适用于 Claude Code 以及多种 agent 的 skill/plugin,让 agent “talk like caveman”,从而减少大量输出 token。
换句话说,它不是另一个大而全的 AI 框架,也不是替代模型本身的工具。它更像是给智能代理套上的一种表达规则,一种风格约束,一种节流阀。
这只石头脑袋做的事很简单:
- 少说废话
- 保留要点
- 使用碎片化表达
- 不破坏代码、命令、错误信息这些关键内容
- 尽量保持技术准确性
- 让阅读速度更快,交互更利落
它不是来教模型“怎么思考”,而是来训练模型“怎么闭嘴”。
这点非常重要。
README 里甚至专门强调:caveman 只影响输出 token,不影响 thinking/reasoning token。它不会让大脑变小,它只是让嘴巴变小。
这句话很妙。
像极了一个很能干的工程师,心里明白得很,但发言从不灌水。
为什么它会火
看这个仓库时,你会很快明白它为什么能吸引那么多人。
因为它抓住了今天 AI 工具一个非常真实、非常普遍、非常让人头疼的问题:
很多 agent 太能说了。
它们当然聪明,也经常有帮助,但很多时候它们像刚参加完表达培训班,生怕自己说得不够完整、不够礼貌、不够“像个助手”。结果就是:
- token 花得飞快
- 阅读成本居高不下
- 真正有用的信息被礼貌话术稀释
- 上下文窗口被无效文字侵占
- 用户明明只想知道“错哪了、怎么改”,却被迫先看一段心理按摩
caveman 对这种现象的态度非常原始,也非常精准:
你要修 bug,就修 bug。你要讲方案,就讲方案。不要一边打火一边发表感言。
于是它给 agent 换了一种说话姿势。
不是冷漠,不是敷衍,不是乱缩写,而是把语言压缩成一种近乎“技术电报”的形式:更短,更硬,更快抵达结论。
README 里给了很直观的 Before / After 对比。
普通 Claude 可能会这样解释 React 重渲染问题:
组件反复渲染,很可能是因为你在每次 render 时都创建了一个新的对象引用。React 做浅比较时发现 prop 变了,因此会触发重新渲染……
而 Caveman Claude 直接说:
New object ref each render. Inline object prop = new ref = re-render. Wrap in
useMemo.
一下子就明白了。
没有损失核心含义,却大幅减少了铺垫和润色。
另一个例子是认证中间件的 token 过期判断问题。普通表述会把整个排查过程说完整,而 caveman 风格直接砍到骨架:
Bug in auth middleware. Token expiry check use
<not<=. Fix:
像一块石头被准确扔进 bug 的脑门上。
它不是在搞笑,它是在认真省 token
很多人第一次看到 caveman,可能会以为它只是个 meme 项目,一个“把 AI 说话改得很好笑”的互联网小玩具。
但你往 README 深一点看,就会发现这块石头其实很务实。
它不是单纯追求好笑,而是在认真研究一件事:如何通过压缩表达风格,减少 agent 输出成本,并提升交互效率。
README 给出的 benchmark 很有代表性。
在 10 个真实任务提示上的统计结果里,平均输出 token 缩减约 65%。不同任务的节省范围在 22% 到 87% 之间。
其中包括这些常见开发场景:
- 解释 React 重渲染 bug
- 修复 auth middleware token expiry
- 配置 PostgreSQL 连接池
- 解释 git rebase 和 merge 的区别
- 把 callback 改成 async/await
- 讨论微服务与单体架构
- 做安全向 PR review
- 处理 Docker multi-stage build
- 调试 PostgreSQL race condition
- 实现 React error boundary
这些都不是空想题,而是开发者每天真会遇到的问题。
README 还额外说明了评测方式:数据来自真实的 Claude API 输出,不是手写样例;评测脚本和快照都放在仓库里,连 evals/ 目录也公开了,意味着这个项目不仅在讲“我节省了 token”,还努力让“节省多少”这件事可验证、可复现。
这很像一个原始人拿着石斧走进实验室,说:
我虽然说话短,但我做实验不含糊。
它的核心哲学很讨喜
如果要用一句话总结 caveman 的精神,那就是:
说更少,做更多。
这句话在 AI 时代反而显得特别高级。
因为当模型越来越强、上下文越来越长、工具链越来越复杂时,很多产品都在拼命“增加能力”,但很少有人认真对待“减少废话”这件事。
caveman 的迷人之处就在这里。
它不去碰模型底层,不去发明新的推理机制,也不宣称自己是什么颠覆式基础设施。它只盯住一个小而尖的问题:
输出是不是可以更短,同时依然有用。
这个方向看似轻,实则很实。
对于频繁使用 Claude Code、Copilot、Cursor 一类工具的人来说,真正痛的并不是“模型不会回答”,而往往是:
- 回答太长
- 废话太多
- 读起来慢
- 上下文占得狠
- 一次会话下来,满屏都像会议纪要
caveman 就像一个站在旁边皱眉的工头,看着 agent 长篇大论,忍不住挥手:
少讲。上结论。给命令。给修法。
然后世界瞬间安静了许多。
它会说你的语言,只是改你的风格
README 里有一条我很喜欢的设定:
Speak your tongue. Caveman keep your language. Compress the style, not the language.
也就是说,caveman 并不是强迫所有人都用英文“嗷呜嗷呜”地交流。
你用葡萄牙语,它就压缩成葡萄牙语的穴居人风格。
你用西班牙语,它就压缩成西班牙语。
你用法语,也一样。
它压缩的是表达方式,不是语言本身。
更关键的是,README 还强调:代码、命令、错误字符串保持原样。
这就非常重要了。
因为工程场景里最怕“风格插件”动了不该动的东西。你可以改语气,但别把命令改坏;你可以缩短解释,但别把报错信息压缩成谜语;你可以让句子更短,但别把 useMemo、路径、URL、CLI 参数搞变形。
caveman 显然知道哪些地方能砍,哪些地方不能砍。
这说明它并不是在瞎闹,而是在认真划分“语言壳”和“技术核”。
石头脑袋,边界感却很好。
安装方式很原始,也很直接
这个项目的安装流程很符合它自己的气质:一行命令,少说废话。
README 的快速安装如下:
1 | # macOS / Linux / WSL / Git Bash |
整个过程大约 30 秒,需要 Node 18 及以上版本。README 还提到,它会自动跳过你没有安装的 agent,而且可以安全重复执行。
这点挺像一个经验丰富的洞穴工匠:它不逼你一次把所有工具都装齐,也不因为你家里少了某个 agent 就掀桌子。你有哪个,它就去找哪个;你没有哪个,它就默默绕开。
非常朴实。
用法也很简单,像打一个手势
安装完之后,触发方式也相当轻巧。
README 里给出的入口是:
- 输入
/caveman - 或者直接说 “talk like caveman”
- 想恢复正常,就说 “normal mode”
这很有意思。
它不像很多插件那样要你读长长一页指令、记住一堆参数和状态切换。caveman 的使用方式几乎像是在训练一只已经很聪明的猛犸象:
你拍拍它,说,今天少讲点。
它点点头,从下一句开始就收紧表达。
而且它还提供了多个压缩级别:
litefullultrawenyan
README 里说得很生动:Pick your level of grunt。
你可以把这理解成四种石器时代语气档位。
1. lite
轻量压缩,主要是去掉 filler 词,保留相对完整的句子结构。
适合那些不想看太多礼貌废话,但又不希望回答变得过于碎片化的人。
2. full
默认 caveman 模式。
这就是项目最典型的风格:句子明显变短,结构更像结论堆叠,读起来非常快。
3. ultra
更电报化、更激进。
适合已经完全适应这种表达的人,或者你真的很在意 token 和上下文占用。
4. wenyan
README 提到这是文言风格,甚至更短。
这个设定非常妙,说明作者不仅在压缩英文表达,也在探索不同语言文化下的极限简写方式。像是让原始人换上古文长袍,突然坐在山洞口写《压词论》。
这不只是一个命令,它是一整套小工具家族
如果你以为 caveman 只是一个 /caveman 命令,那你低估这块石头了。
README 的 What You Get 部分列出了一整套能力,像一个已经有组织、有纪律、会分工的洞穴部落。
/caveman [lite|full|ultra|wenyan]
压缩每一条回复,并让设置在当前 session 中持续生效。
这相当于给整个对话挂上一个表达节流器。
/caveman-commit
用于生成 Conventional Commit 风格的提交信息,主题不超过 50 个字符,强调“为什么改”而不是“改了什么”。
这个设计非常有工程味。
很多自动生成的 commit message 容易写成流水账,而 caveman 试图把提交信息也磨成更硬朗的石器:短、准、带意图。
/caveman-review
把 PR 评论压缩成单行风格,例如:
1 | L42: 🔴 bug: user null. Add guard. |
这几乎就是代码审查里的投石索。
不绕,不空泛,不写作文,直指问题行和修复方向。
/caveman-stats
统计真实 session token 使用量、累计节省和美元成本,甚至还能通过 --share 生成适合分享的文本。
这说明 caveman 很在意“你到底省了多少”,而不仅仅是营造一种“好像省了”的感觉。
/caveman-compress <file>
用于重写记忆文件,比如 CLAUDE.md,把这些长期注入上下文的文档改写成 caveman 风格,从而在每次 session 一开始就减少输入 token。
这是一个特别聪明的设计。
很多人只盯着输出压缩,但 README 里其实点到了更深一层:如果你的记忆文件、项目说明、长期上下文都很冗长,那每次对话一开始就在烧 token。
于是 caveman 不只管“嘴上说少一点”,还顺手去整理“脑子里背的东西”,让每次启动会话时带的包袱也变轻。
这不是省一次,是省很多次。
caveman-shrink
这是一个 MCP middleware,用于压缩 tool descriptions。
也就是说,caveman 不只盯着最终对话,还开始碰工具描述层面,把整条链路上的文字体积一起压。
cavecrew-*
这是一组 caveman 风格的子代理,包括 investigator、builder、reviewer,README 说它们比 vanilla 版本大约少 60% token。
于是你会发现,caveman 不是一个孤零零的表情包,而是一种逐渐成型的压缩生态。
它像一个原始部落,从一开始只会少说两句,慢慢发展到会管理提交、会做审查、会压缩记忆、会包装子代理、会统计成本。
石头,正在长出组织能力。
一个很容易被忽略,但很值钱的点
README 里有一句话很扎实:
Biggest win is readability and speed, cost savings are a bonus.
也就是说,caveman 最大的收益其实不只是省钱。
而是:
- 更快读完答案
- 更快抓住重点
- 更快继续下一轮操作
- 更少上下文污染
- 更高的“人和 agent 协作效率”
这是很多人会忽略的地方。
你以为它是在做“token 优化”,实际上它也在做“人类注意力优化”。
今天最贵的往往未必是 token,而是你的脑力切换成本。
当 agent 每次都写一篇小作文,你的眼睛需要过滤、定位、压缩、重新提炼;当它直接给你要点、原因、命令、修法,你的大脑不必先穿过礼貌泡沫区。
caveman 像是帮你把 AI 输出提前做了一层工程化 minify。
不是为了让世界更粗鲁,而是为了让信息更直接。
它甚至有一点研究气质
README 提到一篇 2026 年 3 月的论文,题目很有力量感:
Brevity Constraints Reverse Performance Hierarchies in Language Models
项目引用这篇论文,是为了说明“简短约束”未必只是节省篇幅,它还可能影响模型在某些基准下的表现,甚至带来性能排序上的变化。
这让 caveman 的气质一下子更完整了。
它不是纯感性地喊“少说点比较酷”,而是在尝试把这种风格和模型行为之间的关系建立联系。
当然,README 自己也很克制。它没有吹成“压缩输出一定让模型更强”,而是更像在说:
看,简洁不是单纯阉割,有时候反而是一种结构化约束。
这就很有意思了。
像一个看似只会“嗯、好、上”的原始人,转身却从身后掏出一篇论文,说我们做事有证据。
它是怎么工作的
README 里的 How It Work 部分讲得相当直接,我把它翻译成人话,其实就是这几步:
- 安装时,把 skill 文件放进 agent 可识别的位置
- 这个 skill 告诉 agent:去掉 filler,保留 substance,尽量用 fragments
- 对 Claude Code 来说,还会通过 hook 在每个 session 写一个很小的标记文件,让 agent 从第一条消息开始就进入 caveman 风格
/caveman-stats会去读 Claude Code 的 session log,统计节省的 token,并把结果写到状态栏caveman-compress会重写记忆文件,例如CLAUDE.md和项目笔记,减少会话起始时的输入上下文
看起来很清爽。
没有巨大的运行时系统,没有重型代理框架,没有花哨的控制台仪式感。它像一个很懂路数的山洞技师,只在最关键的节点上动刀:
- 技能文件
- 会话标记
- 状态统计
- 记忆压缩
- 工具描述压缩
每一刀都不大,但都切在有肉的地方。
它对多 agent 世界也很友好
README 有一段很妙:它说 Claude Code、Codex、Gemini 支持 built-in 自动激活,而 Cursor、Windsurf、Cline、Copilot 则可以通过 --with-init 写入 always-on 规则文件,其他 agent 则可以通过 /caveman 手动触发。
这意味着 caveman 并不是只打算服务某一家生态,而是努力把自己做成一个跨 agent 的“表达压缩层”。
这点非常顺应现实。
现在开发者很少只用一个 AI 工具。有人写代码用 Cursor,跑任务用 Claude Code,查补丁用 Copilot,做实验再换 Gemini。工具越来越多,体验越来越碎片化。
而 caveman 的存在,很像一个到处游走的洞穴翻译官:
不管你跟哪只智能野兽说话,我都能教它少啰嗦一点。
这就很实用。
OpenClaw 那一段很有画面感
README 里专门有一节叫 Lobster, Meet Rock。
如果你没看原文,可能会以为作者突然开始写童话。其实它在介绍 OpenClaw 的集成方式,只不过写得非常有自己的风格。
其中最妙的一句是:
Lobster claw still sharp. Lobster mouth now small. Brain still big.
翻成大意就是:
龙虾的钳子依旧锋利,嘴巴现在变小了,脑子还是很大。
这几乎是 caveman 全项目哲学的缩影。
它不削弱执行力,不削弱判断力,不削弱工具能力,只压缩外露的语言层。
这种表达很拟人,也很准确。
像是给一个本来很能干但话太多的海底员工,做了一次语言瘦身。
它其实已经不是一个单点项目,而是一个生态入口
README 后半部分提到 Caveman Ecosystem,其中包括:
- caveman
- caveman-code
- cavemem
- cavekit
- cavegemma
每个名字都延续了统一的“洞穴宇宙”命名风格,像一个越来越庞大的史前工具箱。
它们分别对应:
- 输出压缩
- 整个终端 coding agent
- 跨 agent 记忆
- spec-driven build loop
- 针对 Gemma 4 31B 的 caveman pairs 微调版本
这个列表让我觉得,caveman 项目最有魅力的一点是:它不是为了“做一个梗”而存在,而是试图围绕一个朴素但坚定的理念构建整套工具观。
这个理念就是:
agent 不一定要靠更多字变强,有时候它只需要更会克制。
当这种理念扩展到输出、记忆、流程、模型微调之后,它就不再只是一个 README 里逗人一笑的小巧思,而是开始变成一种产品方法论。
如果你想快速上手,可以这样开始
如果你准备亲自试试 caveman,可以直接照 README 走。
先安装:
1 | # macOS / Linux / WSL / Git Bash |
Windows 用户则用:
1 | irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex |
然后进入你的 agent 环境,输入:
1 | /caveman |
如果你想指定模式,可以这样:
1 | /caveman lite |
想让它恢复正常风格,就告诉它:
1 | normal mode |
如果你想看看自己到底省了多少 token,可以试试:
1 | /caveman-stats |
如果你想把提交信息也变得短促有力:
1 | /caveman-commit |
如果你正在做代码审查,想让评论像石头一样精准:
1 | /caveman-review |
如果你想把长期上下文文件也压瘦一点:
1 | /caveman-compress CLAUDE.md |
这整套体验最大的优点,就是启动门槛低。
它不逼你改变现有工作流,也不要求你重新学一套复杂体系。你几乎可以把它当成一个随开随用的“语言压缩拨杆”。
当你嫌 agent 太啰嗦时,把它拨到 caveman。
当你想回到常规解释模式时,再拨回来。
简单,直接,不装腔。
它适合什么人
如果你平时几乎不用 AI 助手,只是偶尔问一两个问题,那 caveman 对你来说可能只是个有趣项目。
但如果你属于下面这些人,它就会非常有吸引力:
高频使用 Claude Code、Copilot、Cursor 一类 agent 的开发者
你每天跟 agent 来回很多轮,对 token 消耗和阅读成本非常敏感。caveman 会明显减少你“看废话”的时间。
注重上下文窗口利用率的人
尤其是长 session、复杂项目、多轮重构场景下,任何能减少无效输出的工具都很值钱。caveman 在这方面很实在。
讨厌 AI 套话的人
你问它怎么修,它却先“当然,我很乐意帮助你”。你问它哪里错了,它先说“这是一个很好的问题”。如果你每次看到这些句子都想把显示器搬去洞外,那么 caveman 就像替你出手的石器时代律师。
喜欢干净、利落、工程感表达的人
有些人天然偏爱短句、命令式、 checklist 风格。caveman 不是在降低表达品质,而是在迎合一种更适合技术协作的节奏。
它也并不是万能药
说到底,caveman 是一种输出风格技能。
所以它的边界也很清楚。
它适合:
- bug 定位
- 修复建议
- 代码说明
- 快速审查
- 命令指引
- 结构化结论
但如果你需要的是非常完整的教学式讲解、架构背景铺陈、团队培训材料、长篇设计讨论,那你未必会一直想开着 ultra 模式。
因为有些时候,人确实需要慢一点、展开一点、细一点。
这也是为什么 README 提供了多档模式,而不是一刀切。
caveman 很像一个很懂分寸的原始人。它不会强迫全世界都只用短句,也不会宣称“长答案都是错的”。它只是在提醒你:
很多场景下,短,真的够了。
甚至不只是够了,往往还更好。
这个项目最迷人的地方是什么
对我来说,caveman 最迷人的地方不是它节省了 65% token,不是它支持 30 多个 agent,也不是它那一整套命令。
而是它背后的态度。
这是一种很稀缺的产品态度:
不迷信复杂,不崇拜冗长,不把“说很多”误当成“做很多”。
在一个人人都在加功能、加层次、加说明、加上下文、加术语的时代,它反而在做减法。
而减法恰恰是最难的。
因为加法容易显得努力,减法需要真的知道什么该留下。
caveman 给人的感觉就像一个不爱废话、但特别靠谱的老匠人。它蹲在火堆旁边,不写宏大叙事,不讲未来愿景 PPT,不用十页文档说明自己多重要。你把问题递给它,它拿过来看一眼,磨两下石头,说:
这里错。那里改。这个留。那个删。做完。
然后你真的把问题解决了。
这就够了。
最后
caveman 是一个很少见的项目。
它有梗,但不止于梗。
它好笑,但不只是搞笑。
它看起来像一块石头,里面却塞满了对 agent 交互效率、token 结构、可读性和工程习惯的认真思考。
它像在提醒所有人:
AI 不一定要越来越会说。
有时候,它更应该越来越会停。
当别的 agent 还在口若悬河地组织一段“让我先解释一下背景”的时候,caveman 已经把答案磨尖,扔到了你面前。
石头不写长篇。
石头只打要害。
而在今天,这种克制,反而显得格外先进。
