最近在 GitHub 上看到叫 Caveman 的项目,简单来说,它能让 AI 用"原始人式"的极简语言来交流,目前给出的数据还挺惊人的——平均能节省 65% 的输出 token 和 45% 的输入 token, 那现在来看下它到底做了些什么。

本文是对 Caveman 开源项目的调研,了解其 token 压缩的方式

一、项目概述

项目名称: caveman
GitHub: https://github.com/JuliusBrussee/caveman
作者: Julius Brussee
发布时间: 2026年
许可证: MIT

1.1 项目定位

Caveman 是一个 AI 代理沟通优化工具,通过让 LLM(大语言模型)以"原始人式极简语言"(caveman-speak)进行交流,实现显著的 token 节省。该项目包含两个核心组件:

  1. caveman skill —— 压缩 AI 输出,减少约 65% 的输出 token
  2. caveman-compress —— 压缩记忆文件,减少约 45% 的输入 token

二、核心原理:为什么能节省 Token?

2.1 自然语言的冗余性

现代英语(及其他自然语言)包含大量语义冗余

冗余类型示例token 浪费
客套话“I’d be happy to help you with that”8 tokens
填充词“The reason this is happening is because”7 tokens
模糊措辞“I would recommend that you consider”6 tokens
冠词“a”, “an”, “the”每句 2-3 tokens
连接词“however”, “furthermore”, “additionally”每句 1-2 tokens

2.2 Caveman 压缩策略

Caveman 通过以下策略去除冗余,同时保留所有技术实质:

去除的内容

  • 冠词: a, an, the → 直接删除
  • 填充词: just, really, basically, actually, simply → 删除
  • 客套话: “Sure!”, “I’d be happy to” → 直接删除
  • 模糊措辞: “it might be worth considering” → 直接陈述
  • 冗长短语: “in order to” → “to”

语言风格转换

  • 完整句子片段句
  • 长词短词 (extensive → big, implement a solution → fix)
  • 因果关系箭头符号 (X → Y)
  • 被动语态主动语态

2.3 效果对比示例

示例 1:技术解释

模式回复Token 数
正常“The reason your React component is re-rendering is likely because you’re creating a new object reference on each render cycle. When you pass an inline object as a prop, React’s shallow comparison sees it as a different object every time, which triggers a re-render. I’d recommend using useMemo to memoize the object.”69
Caveman“New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo.”19
节省72%

示例 2:Bug 修复

模式回复Token 数
正常“Sure! I’d be happy to help you with that. The issue you’re experiencing is most likely caused by your authentication middleware not properly validating the token expiry. Let me take a look and suggest a fix.”~40
Caveman“Bug in auth middleware. Token expiry check use < not <=. Fix:”~15
节省63%

三、双组件架构详解

3.1 Caveman Skill(输出端压缩)

作用: 修改 AI 的 system prompt,使其以极简风格回复

使用方式:

/caveman           # 启用默认模式
/caveman lite      # 轻度压缩,保留语法
/caveman full      # 完全压缩(默认)
/caveman ultra     # 极限压缩

强度级别对比:

级别触发词风格示例(解释 React 重渲染)
Lite/caveman lite去除填充,保留完整句“Your component re-renders because you create a new object reference each render. Wrap it in useMemo.”
Full/caveman full去除冠词,片段句“New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo.”
Ultra/caveman ultra极限缩写,符号化“Inline obj prop → new ref → re-render. useMemo.”

3.2 Caveman Compress(输入端压缩)

作用: 压缩记忆文件(CLAUDE.md、项目笔记等),减少每次会话加载时的输入 token

工作流程:

detect file type → compress with Claude → validate → (if errors) fix

文件处理规则:

文件类型处理方式原因
.md, .txt压缩自然语言部分可压缩
.py, .js, .ts 等代码跳过不可压缩
.json, .yaml 等配置跳过不可压缩

压缩效果示例:

原始 CLAUDE.md(节选):

Taskflow is a full-stack task management application built with a modern web stack.
The application allows teams to create, assign, track, and manage tasks across
multiple projects with real-time collaboration features. It was originally created
as an internal tool for our engineering team and has since been open-sourced.

压缩后:

Taskflow full-stack task management app. Teams create, assign, track, manage tasks
across projects with real-time collaboration. Started internal tool, now open-source.

四、实测数据与效果

4.1 官方 Benchmark 数据

任务正常 TokenCaveman Token节省比例
Explain React re-render bug118015987%
Fix auth middleware token expiry70412183%
Set up PostgreSQL connection pool234738084%
Explain git rebase vs merge70229258%
Refactor callback to async/await38730122%
Architecture: microservices vs monolith44631030%
Review PR for security issues67839841%
Docker multi-stage build104229072%
Debug PostgreSQL race condition120023281%
Implement React error boundary345445687%
平均121429465%

4.2 Caveman Compress Benchmark

文件原始 Token压缩后节省比例
claude-md-preferences.md70628559.6%
project-notes.md114553553.3%
claude-md-project.md112268738.8%
todo-list.md62738838.1%
mixed-with-code.md88857435.4%
平均89849445%

4.3 综合收益

优化方向节省类型节省比例
caveman skill输出 token~65%
caveman-compress输入 token~45%
两者结合整体会话输入+输出双重节省

五、负面影响与风险

5.1 人类可读性下降

问题: Caveman 风格对人类阅读者极不友好

案例对比:

  • 正常: “The issue is caused by a race condition in the authentication middleware when handling concurrent token refresh requests.”
  • Caveman: “Race condition auth middleware. Concurrent token refresh.”

影响: 需要人工审核 AI 输出时,理解成本显著增加

5.2 可能的语义歧义

问题: 过度压缩可能导致关键信息丢失或误解

风险场景:

  • 复杂条件语句(if/else 嵌套)
  • 多步骤操作流程
  • 安全警告和不可逆操作确认

项目提供的解决方案: Auto-Clarity 机制 —— 在安全警告等场景自动恢复清晰表达

5.3 不适用于所有场景

场景适用性原因
代码生成✅ 适合代码块保持原样
技术解释✅ 适合保留技术术语
安全警告❌ 不适合需要绝对清晰
复杂流程⚠️ 谨慎步骤顺序可能混淆
新用户引导❌ 不适合需要完整上下文
API 文档⚠️ 谨慎示例代码保留,但说明压缩

5.4 对 LLM 理解的依赖

问题: Caveman 模式依赖于 AI 能够正确解析极简语言

潜在风险:

  • 某些 LLM 可能对极简风格的理解能力不同
  • 复杂推理任务可能因语言压缩而准确性下降
  • 需要持续验证压缩后的输出质量

5.5 技术限制

  1. 仅影响输出 token: 思考/推理 token 不受影响(这是好事,确保"大脑"不降智)
  2. 需要显式触发: 不会自动应用于所有对话
  3. 会话级生效: 设置后持续到会话结束或手动关闭

六、科学理论支撑

6.1 研究论文引用

项目引用了 2026 年 3 月的论文 “Brevity Constraints Reverse Performance Hierarchies in Language Models”

限制大模型生成简短回复在某些基准测试中提高了 26 个百分点的准确率,并完全逆转了性能层级。冗长并不总是更好。

6.2 理论解释

为什么"少即是多"?

  1. 减少幻觉: 更少 token = 更少"编故事"的空间
  2. 聚焦核心: 去除修饰迫使模型关注实质
  3. 降低噪声: 减少无关信息干扰

七、安装与使用

7.1 安装方式

通用安装(支持 40+ 代理):

npx skills add JuliusBrussee/caveman

Claude Code 插件:

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

特定代理:

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

7.2 使用方法

启用 Caveman:

  • /caveman$caveman(Codex)
  • “talk like caveman”
  • “caveman mode”

关闭 Caveman:

  • “stop caveman”
  • “normal mode”

压缩记忆文件:

/caveman-compress CLAUDE.md

八、总结与评价

8.1 创新价值

Caveman 是一个有趣且实用的创新:

  • 证明了"极简沟通"的可行性: 用数据说话,65% 的平均节省不是噱头
  • 双端优化思路: 同时压缩输入和输出,实现全链路优化
  • 强度分级设计: 满足不同场景的压缩需求

8.2 实用价值

对于高频使用 AI 的开发团队

  • 直接降低 API 调用成本
  • 加快响应速度(约 3 倍)
  • 减少"AI 废话",提高效率

8.3 局限性

  • 不是银弹: 不适用于所有场景
  • 需要权衡: 在成本和可读性之间做选择
  • 学习成本: 团队成员需要适应新的沟通风格

数据来源: GitHub 官方仓库、项目文档、实测案例