先说结论
“caveman”是个真事儿,不是段子。GitHub 上 JuliusBrussee/caveman 这个仓库在 2026-09-26 当天还在更新,star 数 107,891,标榜自己是“让编码代理像穴居人一样说话、从而砍掉 65% token 的爆款技能 + 代理”。但它能省的边界比营销话术窄得多:它只压模型“输出文风”那部分 token,压不掉你喂进去的上下文。真要省钱,靠的是精简指令文件、收敛 MCP、用 subagent、合理选模型,而不是装一个会结巴的技能。
以下数据为 2026-09-26 从 GitHub API 拉取。
caveman 到底是什么
它其实有两层:一层是“技能”,教模型用极简、破碎的英文回话(典型口号就是仓库里那句);另一层是个真正干活的代理/中间件,坐在你的编码代理和模型 API 之间做压缩。仓库 README 原文这么写:
“why use many token when few do trick. Your AI coding agent bills by the word and writes like it knows that. Caveman make it stop.”
它发了 npm 包 @caveman-ai/cli、@caveman-ai/middleware 和 PyPI 的 caveman-middleware,声称能“包住 10 个代理原生、兼容 30+ 代理”。仓库文档给出的两种装法(我未在本机执行,仅转述):
npm install -g @caveman-ai/cli
pip install caveman-middleware围绕这个思路还有一堆衍生仓库:
| 仓库 | star | 它干了啥 |
|---|---|---|
| JuliusBrussee/caveman | 107,891 | 爆款技能 + 代理/中间件,标称省 65% token |
| JayPokale/Chisle | 556 | 从“精简文风、YAGNI 代码、工具输出压缩”三条轴省钱,公开基准 |
| amanattar/caveman-claude-skill | 408 | 单纯的 Claude 版 caveman 技能 |
| kuba-guzik/caveman-micro | 173 | 6 行 85 token 的微提示,称比原版 552 token 技能更好 |
| dlepold/caveman-distillate | 87 | 超压缩输出模式,约 90 token,称省约 65% 输出 |
注意:那个“65%”是仓库作者自己给的数字。我在这台机器上没跑出可信基准,所以下文只讲机制和你能自查的方法,不替它背书。
token 到底花在哪
先把账算清楚。一次对话的花费分两块:
- 输入 token(每一轮都计费):系统提示(CLAUDE.md、AGENTS.md、GEMINI.md)、历史上下文、每个被开启的 MCP/工具的 schema 定义、被读入的文件和技能正文。
- 输出 token:模型真正写出来的字。
大多数人的账单是被输入拖垮的——尤其是那个每次请求都重新塞一遍的指令文件,和常年开着的十几个 MCP 服务器。caveman 只动“输出”那一块。
这里有个反直觉的点:输出贵,但输入往往更贵也更隐蔽。历史上下文会随对话变长而线性膨胀,你每多聊一轮,前面所有内容都要再付一次输入钱;而每个开启的 MCP 服务器,都会把它的工具清单(schema)塞进每一轮请求的系统区,十个服务器就是十份常驻开销。技能正文本身也是输入——一个写得臃肿的 SKILL.md,一旦被触发,整份都会被读进上下文。想直观理解“写好技能也等于省钱”,去翻 anthropics/skills(178,480 star)里那 19 个官方技能,它们普遍把长内容拆到 references/,正文只留骨架,靠的就是少灌输入。
“省 token 技能”能省哪些、省不了哪些
它的作用面很具体:
- 能省:模型回话的啰嗦程度。把“当然可以!下面是详细步骤……”压成“do this. run that.”,输出 token 确实掉。
- 省不了:你已经贴进对话的长文件、CLAUDE.md 的全文、开着的 MCP 定义——这些是输入,技能管不到。
- 省不了:工具返回的大段输出(比如 grep 几千行)。这条是另一条轴,Chisle 把它单列成“tool-output compression”,caveman 本体不 guarantee。
- 省不了:模型出错重试。越笨的写法越容易重试,反而更烧钱。
“Cut your AI coding agent’s token bill on three axes: terse prose, YAGNI-first code, and tool-output compression.”——JayPokale/Chisle 的仓库描述
换句话说,caveman 只覆盖了上面三轴里的第一轴。指望它一个人救账单,不现实。
真正能省钱的手段
按性价比排:
- 精简指令文件:CLAUDE.md 每轮都进上下文,删掉废话、拆成按需引用的文件,比装十个技能都管用。
- 收敛 MCP:只开当前任务要用的服务器,别让十几个工具 schema 常驻输入。
- 用 subagent / /compact:把大上下文隔离进子代理,或手动压缩历史,控制输入增长。
- 按任务选模型:跑腿活儿用 Haiku / Flash,难活儿才上 Opus。
- 技能本身走渐进披露:好的 SKILL.md 只在启动时加载约 100 token 的摘要,正文触发才读(见本系列第 61 篇)。
这些手段的性价比天差地别。删掉 CLAUDE.md 里一半废话,等于每一轮请求都少付一半指令钱;而装一个输出压缩技能,只影响你最终看到的回话长度。前者是“源头节水”,后者是“拖地时关小水龙头”,别搞反了主次。另外,模型路由和上下文缓存也常被忽略:把跑腿活儿丢给便宜模型、对不变的系统提示开启缓存(Gemini CLI 官方 docs 里就有 token-caching 一篇),能压住重复输入的成本,这比任何“省 token 神技”都稳。
几个可复制的操作:
# Claude Code 里看本会话花了多少 token 和钱
/cost
# 用子代理把脏活隔离,主上下文不膨胀(示意)
> 用 Task 工具把“重构 utils 目录”作为子任务跑,别污染我的主上下文
# 收敛 MCP:只启用需要的服务器(示意配置)
{
"mcpServers": {
"only-what-i-need": { "command": "npx", "args": ["-y", "relevant-server"] }
}
}坑 / 反模式
- 把 caveman 当银弹,CLAUDE.md 照样堆三千字——输入一点没少。
- 为了“像穴居人”把指令本身写模糊,模型猜错、重试,反而更贵。
- 常年开着七八个用不上的 MCP,每个都在每一轮偷 token。
- 拿作者给的“65%”当实测结论到处讲——那是营销数字,不是你的数字。
- 只看总价不看结构:不分清输入/输出,优化方向全错。
怎么自查 token 用量
别凭感觉,看数字:
# Claude Code:状态栏有 token 计数,/cost 给本会话明细
/cost
# Gemini CLI:底部状态栏直接显示已加载的上下文文件数量,
# 配合官方 docs 里的 token-caching 说明,能判断你是不是被重复输入坑了
# 顺手检查 ~/.gemini 下是不是塞了过大的 GEMINI.md想看更全的技能清单,可顺手翻本站的AI Skill 收录榜。
什么人该装 / 什么人别装
该装:每天烧几十刀 API 费、对话又长又啰嗦、想先零成本试试水的人。caveman 当个输出风格开关,无妨。
别装:指望它解决账单问题的人。你的钱主要漏在输入上下文和常开 MCP 上,那两处它碰不了。先把 CLAUDE.md 减肥、把 MCP 收口,比装任何“省 token 神技”都实在。
