🪨 当 AI 编程遇上原始人:caveman 帮你砍掉 65% Token,还不用学咒语!

凌晨三点,你盯着 Claude Code 的账单陷入沉思——这个月又是 $200 的 API 消耗,用来写单元测试的 token 比代码本身还多。你试着优化 prompt,缩短上下文,但每次请求依然像在“烧钱”。就在你准备接受命运时,GitHub Trending 上一个名为 caveman 的项目跳了出来,介绍里只有一句话:“why use many token when few token do trick”。它说,把话说得像原始人那样,token 直接砍掉 65%。

🪨 caveman:一个让你“返祖”的 Claude Code 技能

caveman 不是一个库,也不是一个 CLI 工具,它是一个 Claude Code Skill——一种通过自定义指令改变 Claude 交互方式的模块。其核心思想简单到令人发指:用极度简洁、省略冠词和虚词的“原始人语”与 AI 沟通,从而大幅减少 prompt 和 output 中的 token 数量。

项目作者 JuliusBrussee 发现,GPT/Claude 这类大模型完全能理解下面这种画风:

write function for factorial. recursive. no explain.

而不是我们习惯的礼貌长篇:

Please write a recursive function to calculate the factorial of a given number. Do not include any explanations, just the code.

两者效果几乎相同,但前者节省了超过一半的 token。caveman 就是把这套“省略大法”系统化地注入 Claude Code 的每一次对话里,让它在理解你意图的同时,自动用最短的表达回复。

🧠 原理剖析:为什么“原始人语”能骗过模型?

很多开发者对 prompt 的理解仍然停留在“越详细越好”。但实际上,大语言模型的注意力机制并不需要完整的语法结构来提取意图。像 add button blue 这样的短语,模型完全能解析出“添加一个蓝色按钮”的指令,而省略的“一个”“的”等虚词对语义贡献极小,却实打实占用了 token。

caveman 做了三件事:

  • 简化 prompt 模板:把常用的请求模式(生成代码、解释代码、重构等)压缩成电报式短语。
  • 输出压缩指令:强制 Claude 用类似风格回复,减少无意义的礼貌用语、过渡句。
  • 上下文修剪:去掉历史对话中的冗余部分,只保留关键变量和错误信息。

打个比方,这就像程序员在 Slack 上聊天和写邮件的区别:前者一堆缩写和“plz fix”,后者洋洋洒洒。caveman 强行把 Claude Code 变成永远在“聊 Slack”的状态。

📊 效果对比:眼见为实的 65% Token 缩减

作者在 README 中给出了一个真实开发任务的对比测试:用 Claude Code 重构一个 React 组件。使用默认配置,整个对话消耗了 12,340 tokens;开启 caveman 后,相同任务只用了 4,201 tokens,缩减比例高达 65.9%

我们来看看 prompt 层的差异——以“修复一个空指针异常”为例:

❌ 常规方式

I'm encountering a NullPointerException in my Java application. 
Here is the stack trace: 
java.lang.NullPointerException at com.example.service.UserService.getUser(UserService.java:42)
Could you please help me fix this issue by suggesting a code change? 
Please only return the fixed method and a brief explanation.

消耗约 58 tokens。

✅ caveman 方式

fix NPE UserService.getUser line 42. stack: ... return only fixed method.

消耗仅 22 tokens。

而且 Claude 的理解准确度几乎没有下降,因为错误栈和关键类名都还在。这种精简在长对话、多轮修复场景下,累计节省极为可观。

🛠️ 上手:把 caveman 装进你的 Claude Code

安装非常简单,因为它本身就是 Claude Code 的一个 .claude 目录下的 skill

# 克隆仓库到任意位置
git clone https://github.com/JuliusBrussee/caveman.git

# 将 skill 文件复制到你的 Claude Code 项目根目录下
cp -r caveman/skills/caveman .claude/skills/caveman

然后重启 Claude Code,输入 caveman on 即可激活。如果想随时切回正常模式,用 caveman off。项目还提供了一个 /caveman-score 命令,可以评估当前对话的“原始人指数”并给出优化建议。

对于团队协作,可以将 .claude 目录纳入版本控制,这样所有成员的 Claude Code 都会自动享受 token 缩减的红利。

⚠️ 注意事项:何时不应该用 caveman

虽然省钱很香,但并非所有场景都适合“返祖”沟通。以下情况建议关闭 caveman:

  • 需要精确的技术文档:当你要 Claude 生成 README、API 文档或会议纪要时,简化的语言可能导致表述模糊或丢失细节。
  • 复杂推理或架构设计:这类任务需要多步推演,压缩表达可能让模型“想得不够深”,产生潜路径(hallucination)。
  • 与非英语母语的团队成员协作:原始人语对非母语者可能造成理解困难,毕竟它砍掉了很多语法提示。

项目本身也建议作为“省流模式”而非永久状态使用。聪明的做法是,在编码、调试、速查时开启,在文档化、设计方案时关闭。

🌟 为什么这个粗糙的技能值得你立刻 Star

caveman 看似搞笑,实则击中了一个极其严肃的痛点:AI 辅助开发的真实成本。当越来越多人开始用 Claude Code、Copilot Chat 等工具进行日常开发时,每月的 API 账单可能会让个人开发者或小团队肉疼。而 caveman 提供了一种几乎零成本的优化手段——不改变工作流,不牺牲结果质量,只是换个说法。

更深一层,它提醒我们:

大模型的能力远超我们传统沟通范式的需求边界。很多时候,我们不是在与一个需要礼貌和完整语法的“人”对话,而是与一个擅长从碎片中拼凑意图的统计机器。

既然如此,何必浪费 token 去伺候语法?caveman 让我们重新审视 prompt 的“节俭性”——或许未来,最优秀的 AI 程序员不是话最多的那个,而是话最少的那个。

如果你也觉得每个月给 Anthropic 贡献的 token 可以拿去喝杯好咖啡,不妨试试这个小小的“原始人咒语”。毕竟,当 Kevin 还在用“Please...”开头时,你的 Claude 已经用 fix now 把活干完了。