Featured image of post 教 Claude 说「洞穴人语言」,Token 消耗直降 75%

教 Claude 说「洞穴人语言」,Token 消耗直降 75%

Reddit 8900 赞实验复现:通过一个 System Prompt,让 Claude 只说关键词,省掉 3/4 的输出 Token。附 3 个延伸技巧,Claude Code 和 API 用户都能用。

4 月 3 日,Reddit r/ClaudeAI 上出现了一个很奇怪的帖子。

帖子标题叫《Taught Claude to talk like a caveman to use 75% less tokens》——“我教会了 Claude 像穴居人一样说话,Token 消耗减少了 75%"。配图是一张对话截图:Claude 的回复不再是流畅的英文段落,而变成了这样:

“File broken. Need fix. Use class not function. Move logic here.”

8900 赞,412 条评论。一天内登上 r/ClaudeAI 热帖第一。

这不是一个玩笑。它触及了一个很多人忽视的问题:你真的需要 AI 说这么多话吗?


为什么 Token 很重要

在聊实验本身之前,先说一件基本事实:Claude 的费用和速度,都跟 Token 直接挂钩。

输出 Token 是双重成本来源:

  • API 用户:按 Token 计费,输出 Token 比输入贵 3-5 倍
  • Claude Code 用户:每个对话轮次的 Token 都在消耗订阅额度,越省越多轮
  • 速度:输出越少,响应越快,交互体验更流畅

以 Claude Sonnet 为例,输出 Token 的价格约是输入的 5 倍。如果你在用 Claude Code 跑一个长任务,Claude 每次回复都在写大段解释——你其实在花钱买自己不需要的废话。

更关键的是:Claude 的冗余输出远比你想象的多。

当你问 Claude “这段代码有什么问题”,它会回答:

“I’d be happy to help you review this code! Looking at your implementation, I can see there are a few potential issues worth addressing. First, let me examine the overall structure…”

然后才是真正有用的内容。这段开场白占了多少 Token?大约 30-50 个。每次都这样,一天下来,是纯粹的 Token 浪费。


穴居人语法实验

原帖作者 @ffatty 的思路很简单:既然 Claude 擅长遵守 System Prompt,就直接告诉它用最少的词说话。

他使用的 System Prompt 是这样一类指令(原理类似):

1
2
3
4
You are a caveman. Speak only in short, essential words.
No articles (a, an, the). No filler phrases.
No greetings or apologies. Only facts. Only keywords.
Example: "Code broken. Use function. Fix line 42."

效果是:Claude 的输出从流畅的英文段落,变成了纯粹由关键词和动词构成的"电报语”。

对比示例:

普通模式 vs 洞穴人模式 Token 对比

同样的问题——“这段 Python 函数有什么问题?”

普通模式(~120 Token)

“Looking at your Python function, I can identify a few issues that might be causing problems. The main concern is that you’re modifying the list while iterating over it, which can lead to unexpected behavior. Additionally, the variable naming could be clearer, and you might want to add error handling for edge cases…”

穴居人模式(~30 Token)

“List modified during iteration. Bug. Use copy. Rename vars. Add try/except.”

语义完全保留,Token 减少约 75%。


System Prompt 模板(可直接复制)

以下是三个可以直接用的 System Prompt 版本,适合不同场景:

版本一:极简穴居人模式(省 Token 最多)

1
2
3
4
Respond like a caveman. Drop all articles, filler words, pleasantries.
Use only nouns, verbs, essential adjectives.
Max 2 sentences unless more is truly needed.
Format: "Topic. Action. Result." Never start with "I" or "Sure".

适用:Claude Code 任务、快速调试问答、不需要解释的简单指令

版本二:结构化简洁模式(可读性更好)

1
2
3
4
Be maximally concise. No greetings, no apologies, no filler.
Answer directly. If explaining, use bullet points only.
Skip context I already know. Start with the answer, not the reasoning.
Max response: 100 words unless I ask for more.

适用:代码审查、技术咨询、快速判断

版本三:Claude Code 专用模式

1
2
3
4
You are a senior engineer. Be terse. No explanations unless asked.
When fixing code: show only the changed lines + brief comment.
When answering questions: one sentence if possible.
Never repeat my question back to me. Never say "Great question!".

适用:Claude Code 长任务,减少每轮输出,让 Agent 循环更快


实测:哪些场景省得最多

实验帖子下面的评论验证了更多场景,我整理了几个最有代表性的:

场景 普通模式 Token 穴居人模式 Token 节省比例
代码 Bug 定位 ~120 ~28 77%
技术方案咨询 ~200 ~55 72%
错误信息解读 ~90 ~25 72%
文件结构建议 ~150 ~40 73%
概念解释(需要解释时) ~250 ~180 28%

各场景 Token 节省率

规律很明显:越是"我只需要结论"的场景,省得越多。如果你真的需要 Claude 给你解释原理,压缩空间就会变小——这是合理的。


延伸三招:穴居人之外的 Token 优化

穴居人语法只是开始。Reddit 评论区里还有三个被高频点赞的延伸技巧:

1. 强制 JSON 输出

如果你需要的是结构化数据,直接要求 JSON。AI 不会在 JSON 里写废话:

1
2
Respond ONLY in JSON. No prose. No explanation.
Format: {"issue": "...", "fix": "...", "risk": "low|medium|high"}

一个 JSON 对象比一段散文段落少 60-70% 的 Token,而且机器可以直接解析。

2. 上下文裁剪——别把整个文件扔给 Claude

这是 Claude Code 用户最常见的 Token 浪费:把 500 行的文件全部作为上下文,但实际上只有 30 行相关。

更好的做法:

  • 在 prompt 里只提供相关代码段,而不是整个文件
  • @ 引用具体函数,而不是整个模块
  • 在长对话里,定期开新对话(Claude Code 的 /clear)清除上下文

相关联系:Claude Code 的 /compact 命令会自动压缩对话历史,这也是官方版的"Token 裁剪"。

3. 预设格式,消除协商成本

每次问 Claude “请帮我……",Claude 需要先理解你的格式需求,有时还会先问你确认。这些来回本身就在消耗 Token。

解决方案:在 System Prompt 里直接规定所有输出格式:

1
2
3
4
When reviewing code: list issues as numbered bullets, no more than 5.
When suggesting fixes: show only diff, not full file.
When unsure: ask ONE clarifying question, not multiple.
Never ask "Would you like me to...?"—just do it.

一次性规定好,后续每轮对话都省去格式协商的 Token 开销。


什么时候不该用穴居人模式

有几个场景不适合极简输出:

1. 需要学习的时候 如果你是在学新技术、理解概念,穴居人语法会让 Claude 省掉所有的类比、举例和铺垫——而这些往往是你需要的。这时候正常模式更好。

2. 生成给人看的内容 博客草稿、邮件、文档——这些最终给人读,当然需要完整的语言。

3. 处理模糊需求 如果你的需求本身没想清楚,需要和 Claude 来回探讨,压缩输出会让对话变得难以跟进。先把需求想清楚,再切换到高效模式。


在 Claude Code 里怎么用

Claude Code 支持项目级别的 CLAUDE.md 文件,你可以把穴居人模式写进去,让整个项目的所有 Claude 交互都默认简洁:

在你的项目根目录创建 CLAUDE.md,添加:

1
2
3
4
5
6
## 响应风格

- 简洁为先:不需要解释的步骤直接执行
- 报告结果时只说"做了什么",不说"为什么这样做"(除非被问)
- 发现问题直接列出,不用前言铺垫
- 代码变更只显示改动的行,不重复整个文件

这样不需要每次手动切换模式,全局生效。


还差一步:量化你自己的节省

如果你用的是 Claude API,可以直接在 response 里看 usage.output_tokens,前后对比很直观。

如果用 Claude Pro/Max,目前没有直接的 Token 计数器,但可以用一个间接方法:观察每轮对话的响应速度。同样的问题,穴居人模式的响应通常快 2-3 秒,这就是 Token 减少带来的速度差。


Reddit 那个帖子的评论区里有人说了一句话,我觉得说到点子上了:

“We’ve been training ourselves to expect AI to sound smart by talking a lot. But what we actually need is AI to think well and talk little.”

我们习惯了用"说话多"来判断 AI 是否聪明。但真正有价值的,是把废话都省掉之后剩下的那部分。

穴居人语法是个极端实验,但它证明了一件事:Claude 的智能不在于它说了多少,而在于它知道什么。 你只需要告诉它,少说点就好。


试一下:把这段 System Prompt 复制到你下一次的 Claude 对话里:

1
2
Be maximally concise. No greetings, no filler, no apologies.
Answer directly. Bullets only for lists. Max 80 words unless asked for more.

然后问它一个你平时会问的技术问题。看看节省了多少废话——以及答案有没有变差。

大概率没有。


参考来源

扩展阅读

RSS Feed 使用 Hugo 构建
主题 StackJimmy 设计