第 01 期 | Caveman 是什么 — Token 压缩的哲学与生态全景

⏱ 预计阅读 11 分钟 更新于 2026/5/7
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)

🎯 学习目标

学完本期你将理解:

  1. 为什么 AI Agent 的输出 Token 冗余是一个严重的工程问题
  2. Caveman 的核心机制:Prompt 规则注入,而非 MCP 服务
  3. Caveman 生态系统三件套的定位与协作关系
  4. 省 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:#00ff00

Caveman 的工作方式非常简单:

  1. 安装时,将一组 Prompt 规则和 Hook 脚本注册到你的 Agent 环境
  2. 会话启动时,Hook 自动将规则注入 Agent 的系统上下文
  3. Agent 回答时,按照注入的规则压缩输出
  4. 就这样。没有后台服务,没有网络请求,没有额外依赖

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,追踪当前模式

📝 本期要点回顾

  1. AI Agent 的输出中约 75% 是冗余修辞,Caveman 精准移除这些"废话"
  2. Caveman 不是 MCP 服务器,而是通过 Hook 注入 Prompt 规则的 Skill
  3. 生态三件套:caveman(压缩输出) + cavemem(压缩记忆) + cavekit(优化构建)
  4. 学术论文证实:简短约束反而能提升模型准确性
  5. Token 节省直接转化为费用节省和响应速度提升

🔗 参考资料