乐于分享
好东西不私藏

让 AI 说原始人话,竟然省了 75% 的 Token:caveman 源码深度拆解

让 AI 说原始人话,竟然省了 75% 的 Token:caveman 源码深度拆解


一个出生才 12 天的项目,凭什么拿下 33000 颗星?


一句话总结

caveman 让你的 AI 编程助手用最少的字说最准确的话——砍掉 75% 的输出 token,技术准确率 100%,响应速度提升约 3 倍。

这不是噱头。它有完整的基准测试、三臂对照实验、自动化验证流程。而且,它还支持文言文模式


为什么这件事重要?

如果你每天都在用 Claude Code、Codex、Cursor 这些 AI 编程工具,你一定有这种感觉:

AI 话太多了。

你问一个 React 组件为什么重复渲染,它先来一句"当然,我很乐意帮助你",然后铺垫三段背景,最后才说到重点。你花了 0.03 美元买了一句 useMemo,前面 0.1 美元全浪费在客套话上。

更关键的是,这些废话不只是贵——它们让你更慢。你读完一段 300 字的回答,核心信息可能就 30 个字。在快节奏的开发中,每一秒都在燃烧。

有人终于忍不了了。


caveman 是什么?

caveman 是一个 Claude Code 插件,核心理念极其简单:

让 AI 像原始人一样说话——省字、直接、没废话。

同样的技术问题:

       
                                           
模式AI 的回答Token
🗣️ 正常"The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle..."69
🪨 原始人"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."19
       
     

同样的修复方案。75% 更少的字。大脑依然好用。

   
           
原始人模式 vs 正常模式对比
   
   

四个等级的"咕噜"

caveman 不只是粗暴地删字,它提供了精细的压缩等级:

🪶 Lite(轻度)——去掉废话,保留完整语法。专业但紧凑。

🪨 Full(标准)——去掉冠词,允许碎片化,短同义词替换。经典原始人。

🔥 Ultra(极限)——缩写一切,箭头表示因果,能一个词绝不用两个。

📜 文言文——用人类历史上最省字的书面语言来压缩输出。

同一个问题"React 组件为什么重复渲染"在各等级下的回答:

  • • Lite: "Your component re-renders because you create a new object reference each render. Wrap it in useMemo."
  • • Full: "New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."
  • • Ultra: "Inline obj prop → new ref → re-render. useMemo."
  • • 文言文: "物出新參照,致重繪。useMemo Wrap之。"

文言文模式——这可能是"中文+AI"最天才的交叉点。文言文本身就是一种高度压缩的信息编码方式,天然适合省 token。

   
           
四个压缩等级示意
   
   

安装:一行命令

Claude Code 用户:

claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman

Codex、Gemini CLI、Cursor、Windsurf、Copilot、Cline……全部支持一行安装。安装后自动激活,/caveman 切换模式,"stop caveman" 退出。


不只是"说话省字"——四大技能

1. caveman-commit:极简提交信息

/caveman-commit 生成 Conventional Commits 格式提交信息,标题不超 50 字符,重在"为什么"而非"做了什么"。

2. caveman-review:一行代码审查

/caveman-review 一行搞定 PR 评论:L42: 🔴 bug: user null. Add guard. 没有寒暄,直击要害。

3. caveman-compress:输入端也省

这是最精妙的部分。caveman 让 AI 输出更省字,compress 让 AI 输入也更省。

你的 CLAUDE.md 每次会话启动都要加载。caveman-compress 把这些记忆文件重写成原始人格式——Claude 读得更少,你什么都不丢失:

       
                                           
文件原始 Token压缩后节省
claude-md-preferences.md70628559.6%
project-notes.md114553553.3%
claude-md-project.md112263643.3%
todo-list.md62738838.1%
mixed-with-code.md88856036.9%
平均89848146%
       
     

原始人类可读版本会自动备份为 .original.md,随时可以还原。

4. caveman-help:速查卡

/caveman-help 一键显示所有模式、技能、命令的速查卡。


源码深挖:它是怎么做到的?

caveman 的核心其实非常轻量——它本质上是一个精心设计的 SKILL.md,也就是一段系统提示词,告诉 AI 如何压缩自己的表达。

核心规则(SKILL.md 解析)

压缩遵循以下模式:

  1. 1. 删除:冠词(a/an/the)、填充词(just/really/basically/actually)、客套话(sure/certainly/of course)、模糊表达
  2. 2. 替换:短同义词替换(big 不用 extensive,fix 不用 implement a solution for)
  3. 3. 保留:技术术语、代码块、错误信息——原封不动
  4. 4. 模式[事物] [动作] [原因]. [下一步].

一句话总结原始人语法的精髓:

Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
Yes: "Bug in auth middleware. Token expiry check use < not <=. Fix:"

compress 的工程实现

caveman-compress 的实现远比"改提示词"复杂。它是一个完整的 Python 工具链:

1. 文件类型检测(detect.py)

不是所有文件都能压缩。detect.py 通过扩展名 + 内容分析,将文件分为四类:

  • natural_language:可压缩(.md, .txt 等)
  • code:跳过(.py, .js, .ts 等)
  • config:跳过(.json, .yaml, .toml 等)
  • unknown:跳过

对于无扩展名的文件(比如 CLAUDE.mdTODO),它会分析内容——检查 JSON/YAML 结构,统计代码行比例。如果代码行占比超过 40%,就归类为代码,不压缩。

2. 压缩引擎(compress.py)

调用 Claude API 将自然语言文本压缩为 caveman 格式。关键设计:

  • • 敏感文件拒绝压缩:通过正则匹配文件名(.env、credentials、secrets、.pem 等)和路径(.ssh、.aws 等),防止凭据泄露到第三方 API
  • • 最大文件 500KB:防止意外压缩大文件
  • • 备份保护:如果 .original.md 已存在,拒绝覆盖,防止数据丢失

3. 验证系统(validate.py)

压缩后必须验证——不能丢东西。validate.py 做了五项检查:

  • 标题完整性:压缩前后的 Markdown 标题数量和文本必须一致
  • 代码块完整性:所有 ``` 代码块必须原样保留
  • URL 完整性:所有链接必须保留
  • 路径完整性:文件路径必须保留
  • 列表结构:bullet 数量变化不超过 15%

如果验证失败,会调用 Claude 进行定点修复(cherry-pick fix),而不是重新压缩。最多重试 2 次,仍然失败则自动还原原始文件。

4. 安全设计

compress 把文件内容发送到 Anthropic API 进行压缩,这意味着一个潜在的数据安全风险。项目做了多层防护:

  • • 敏感文件名正则拒绝
  • • 敏感路径组件拒绝
  • • 敏感内容关键词检测(secret、credential、password、apikey、token、privatekey)
  • • 500KB 文件大小上限

基准测试:用数据说话

caveman 不只是声称省 75%,它真的做了对照实验。

   
           
caveman-compress 压缩管线架构
   
   

输出端基准

在 Claude API 上跑的真实 token 计数:

       
                                           
任务正常 Token原始人 Token节省
解释 React 重渲染 Bug118015987%
修复认证中间件70412183%
配置 PostgreSQL 连接池234738084%
Docker 多阶段构建104229072%
调试 PostgreSQL 竞态条件120023281%
实现 React Error Boundary345445687%
平均121429465%
       
     

范围从 22% 到 87%,不同任务节省幅度不同,但平均 65% 是实打实的。

   
           
Token 节省基准测试
   
   

三臂对照实验

更严谨的是,caveman 不是拿"原始人 vs 啰嗦"这种不公平对比来凑数据。它的 eval 系统设计了三个组:

  1. 1. baseline:无任何系统提示,正常回答
  2. 2. terse control:加了"Answer concisely."的提示
  3. 3. caveman:使用 caveman skill

真正的比较是 caveman vs terse control——即 caveman 的技能在"已经要求简洁"的基础上,还能额外省多少。这才是科学的对照。

学术支撑

2026 年 3 月的一篇论文《Brevity Constraints Reverse Performance Hierarchies in Language Models》发现,限制大模型输出简洁回答时,某些基准的准确率反而提升了 26 个百分点。话多不一定对,少说话反而更准确。


智能降级:什么时候原始人也会说人话

caveman 不是无脑压缩。它在以下场景会自动切回正常模式:

  • 安全警告:涉及危险操作时
  • 不可逆操作确认:删除数据、重置系统等
  • 多步骤序列:碎片化表达可能导致顺序混淆时
  • 用户要求澄清:你追问时它会详细解释

比如遇到破坏性操作:

Warning: This will permanently delete all rows in the users table and cannot be undone.

DROP TABLE users;

Caveman resume. Verify backup exist first.

安全优先,然后才省字。这是正确的工程决策。


谁做了这个项目?

Julius Brussee,GitHub 上 620 个关注者,42 个公开仓库。不是什么大厂明星,但做过另一个有意思的项目 Cavekit——把自然语言变成蓝图,蓝图变成并行构建计划,构建计划变成可运行软件。

从 caveman 到 cavekit,Julius 似乎在探索一个核心问题:AI 的语言效率边界在哪里? 我们能让 AI 用最少的表达传递最多的信息吗?

33000 颗星说明很多人在思考这个问题。


我的思考:这不仅仅是一个省钱的工具

caveman 看起来是个"省 token"的小工具,但它触及了一个更深层的问题:

AI 的默认交互模式是有问题的。

大模型被训练成"友好、详细、周到"的助手——这对通用场景也许合适,但在编程这种高度结构化的场景下,效率才是第一优先级。程序员不需要 AI 的客套,需要的是精准的技术判断。

caveman 的成功说明了一件事:用户对 AI 冗长输出的忍耐已经到了极限。当 33000 个人给一个"让 AI 少说话"的项目点星,这不只是省钱的需求,这是对交互范式的抗议。

而文言文模式更是一个美丽的意外——它提醒我们,人类文明中早就存在比现代白话文更高效的信息编码方式。当 AI 遇到文言文,古代的智慧和现代的技术碰撞出了最省 token 的火花。

   
           
当文言文遇上AI
   
   

快速上手

# Claude Code
claude plugin marketplace add JuliusBrussee/caveman && claude plugin install caveman@caveman

# Gemini CLI

gemini extensions install https://github.com/JuliusBrussee/caveman

# Cursor / Windsurf / Copilot 等

npx skills add JuliusBrussee/caveman -a cursor   # 或 windsurf / copilot / cline

激活:/caveman 或 "talk like caveman"
退出:/caveman off 或 "stop caveman"

项目地址:https://github.com/JuliusBrussee/caveman


why use many token when few do trick 🪨