第 01 期 | Caveman 是什么 — Token 压缩的哲学与生态全景
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)
(申请发送: agentupdate)
🎯 学习目标
学完本期你将理解:
- 为什么 AI Agent 的输出 Token 冗余是一个严重的工程问题
- Caveman 的核心机制:Prompt 规则注入,而非 MCP 服务
- Caveman 生态系统三件套的定位与协作关系
- 省 Token 的科学依据——学术论文实证
📖 核心概念讲解
1.1 冗余输出:AI Agent 的沉默杀手
当你用 AI 编程代理写代码时,你可能没注意到一个事实:Agent 说的话里,75% 是废话。
🗣️ 正常 Claude (69 tokens):
"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."
🪨 Caveman Claude (19 tokens):
"New object ref each render. Inline object prop = new ref = re-render.
Wrap in useMemo."
同样的技术结论,从 69 个 token 压缩到 19 个——省了 72%。
这不是偷工减料。被删掉的只有:
- ❌ 客套话 ("The reason your...", "I'd recommend...")
- ❌ 填充词 ("likely", "actually", "basically")
- ❌ 重复解释 (同一个概念换三种说法)
保留下来的是:
- ✅ 根因诊断 (new object ref)
- ✅ 因果链 (inline prop → new ref → re-render)
- ✅ 修复方案 (useMemo)
1.2 Token 成本的真实算术
以 Claude Sonnet 4 为例(2026 年定价):
| 指标 | 正常模式 | Caveman 模式 | 节省 |
|---|---|---|---|
| 每次回答平均 token | ~300 | ~80 | 73% |
| 每小时交互次数 | ~40 | ~40 | — |
| 每小时消耗 token | 12,000 | 3,200 | 73% |
| 每天 8 小时费用 (估算) | ~$2.88 | ~$0.77 | $2.11/天 |
| 每月 22 天费用 | ~$63 | ~$17 | $46/月 |
💡 关键洞察: Caveman 只压缩输出 token (Agent 的回答)。思考/推理 token 完全不受影响。Caveman 不让大脑变小,只让嘴巴变小。
1.3 Caveman 的本质:行为规则注入器
很多人一听到 "安装 Caveman" 就以为是要配一个 MCP 服务器。不是的。
graph TB
subgraph Wrong["❌ 常见误解"]
A1["Caveman = MCP Server?"] --> A2["需要启动一个后台服务?"]
A2 --> A3["通过 JSON-RPC 通信?"]
end
subgraph Right["✅ 真实机制"]
B1["Caveman = Prompt Skill"] --> B2["SessionStart Hook 注入规则"]
B2 --> B3["Agent 按规则压缩输出"]
B3 --> B4["Flag File 追踪模式状态"]
end
style Wrong fill:#ff000020,stroke:#ff0000
style Right fill:#00ff0020,stroke:#00ff00Caveman 的工作方式非常简单:
- 安装时,将一组 Prompt 规则和 Hook 脚本注册到你的 Agent 环境
- 会话启动时,Hook 自动将规则注入 Agent 的系统上下文
- Agent 回答时,按照注入的规则压缩输出
- 就这样。没有后台服务,没有网络请求,没有额外依赖
1.4 Caveman 生态系统全景
Caveman 不是一个孤立的工具,它是一个三件套生态:
graph LR
subgraph Ecosystem["🪨 Caveman 生态系统"]
direction TB
A["🪨 caveman
───────────
压缩 Agent 输出
省 ~75% 输出 token"]
B["🧠 cavemem
───────────
压缩 Agent 记忆
省 ~46% 输入 token"]
C["🔧 cavekit
───────────
构建工具链优化
提升开发效率"]
end
A -->|"输出更短"| D["💰 费用降低"]
B -->|"上下文更精"| D
C -->|"流程更快"| D
D --> E["🚀 Agent 总效率提升 3x"]| 工具 | 压缩对象 | 压缩率 | 一句话定位 |
|---|---|---|---|
| caveman | Agent 的输出 (回答) | ~75% | 让 Agent 说话更短 |
| cavemem | Agent 的输入 (CLAUDE.md 等) | ~46% | 让 Agent 读取更快 |
| cavekit | 构建流程 | — | 让开发更顺畅 |
三个工具可以独立使用,也可以组合使用。本教程聚焦 caveman 本体。
1.5 科学背景:简短 ≠ 粗糙
你可能担心:压缩这么多,会不会丢失信息?
2026 年 3 月的论文 "Brevity Constraints Reverse Performance Hierarchies in Language Models" 给出了令人震惊的发现:
在某些基准测试上,强制要求模型简短回答反而提升了准确率 26 个百分点,并且完全逆转了不同模型间的性能排名。
这意味着冗长不仅浪费 token,还可能降低准确性。Caveman 的压缩本质上是在引导模型聚焦核心推理,而不是浪费算力在修辞上。
💻 直观感受:Before vs After
场景:Auth 中间件 Bug 排查
🗣️ 正常 Claude:
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.
The problem is in your `verifyToken` function. You're using a strict
less-than comparison (`<`) when checking the token's expiration
timestamp against the current time. This means that if the token
expires at exactly the current second, it won't be caught. You should
use a less-than-or-equal comparison (`<=`) instead.
Here's the fix:
🪨 Caveman Claude:
Bug in auth middleware. Token expiry check use < not <=. Fix:
同样的诊断结论。1 行替代 7 行。
🔧 涉及的概念速查
| 概念 | 说明 |
|---|---|
| Output Token | Agent 回答消耗的 token(Caveman 压缩目标) |
| Input Token | Agent 读取上下文消耗的 token(cavemem 压缩目标) |
| Thinking Token | Agent 内部推理消耗的 token(Caveman 不影响) |
| Skill | Agent 的可扩展指令集,本质是 Markdown 文件 |
| Hook | Agent 生命周期中的确定性回调脚本 |
| Flag File | ~/.claude/.caveman-active,追踪当前模式 |
📝 本期要点回顾
- AI Agent 的输出中约 75% 是冗余修辞,Caveman 精准移除这些"废话"
- Caveman 不是 MCP 服务器,而是通过 Hook 注入 Prompt 规则的 Skill
- 生态三件套:caveman(压缩输出) + cavemem(压缩记忆) + cavekit(优化构建)
- 学术论文证实:简短约束反而能提升模型准确性
- Token 节省直接转化为费用节省和响应速度提升