caveman skill 实测:输出 token 少 38%,答案全对,单次提问反而更贵
我们在全新的 Claude Code 会话里,把 20 道开发问题分别在不装 skill、装 caveman、装 ponytail 三种情况下各问三遍:Haiku 上共 180 次,每个答案都自动判对错。caveman 让输出 token 少了 38%、字数少了 57%,60 个答案全对。ponytail 反而多写了 50%。单问题会话里,caveman 自己的说明让每次调用贵了 11%。
概述
想让 Claude Code 的回答短一些,caveman skill 做得到,而且不丢正确性。省下的输出 token 大约三分之一,不是四分之三;适合开着它干一整段活,不适合单次提问。
原因很简单:我们测过了。我们在 Haiku 上开全新的 Claude Code 会话,把 20 道开发问题在不装 skill、装 caveman、装 ponytail 三种情况下各问三遍,每个答案都自动判对错:
- 更短,照样对。 caveman 让输出 token 总数少了 38%,回答中位字数从 128 个词降到 55 个。60 个答案全对,和不装 skill 一样。
- 省三分之一,不是四分之三。 中位那道题省了 34%。最多的一道小编程题省了 76%,有一道 git 题反而多了 16%。caveman 旧版的说明写的是约省 75%。
- 单次提问反而更贵。 每个新会话都要为 skill 自己的说明付钱,大约 1,800 个输入 token。回答这么短,省下的输出抵不过它:caveman 那 60 次调用比不装 skill 贵 11%。
- ponytail 不是让回答变短的 skill。 它多写了 50% 的输出 token,因为每个回答结尾都要交代跳过了什么、要检查什么。不过它写的代码最少。
推荐
- 干一整段活时开 caveman,别为单个问题开。 在一个长会话里,skill 的说明第一轮之后就进了缓存,变短的回答却一直在累积。像我们这样每个问题开一个新会话,每次都要重新付说明的钱。
- 省得最多的是代码题。 六道编程题上 caveman 省了 55% 的输出。不装 skill 的 18 个回答里有 8 个附了
>>>用法示例,caveman 一个都没加;它的代码回答中位 50 个词,不装 skill 是 126 个。解释题和命令题各省 25%。 - 有风险的内容照样读完整。 caveman 的规则在安全警告和不可逆操作时会改回完整句子,我们的 rm -rf 那题照样给了警告。这是有意的设计,别把它删掉。
- ponytail 用来改代码,别用来聊天。 它的规则追求最小的代码改动:代码行数中位从 5.5 行降到 3 行。但它要求的收尾说明,让短回答变长了。ponytail 自己的基准测试做的是多步编程任务,报告比不装 skill 少 16% 的 token;在我们的单个问题上,它多了 50%。
- 信一个百分比之前,先在自己的活上测。 我们测出中位省 34%,README 的例子是 68%,一篇 Reddit 评测说 65%。数字取决于不装 skill 时模型本来有多啰嗦。
你平时让 Claude Code 做的,主要是写给你读的解释,还是要粘贴的代码?前者 caveman 帮一点,后者帮很多。
怎么测的
- 问题。 20 道开发问题:8 道解释题(Python 可变默认参数、HTTP 401 和 403 的区别、React 闭包取到旧值),6 道命令题(撤销提交、找大文件),6 道 Python 小函数(解析
1h30m、校验 IPv4 地址)。 - 三组。 不装 skill;caveman:项目里放 JuliusBrussee/caveman 的
skills/caveman/SKILL.md,提示词以/caveman开头;ponytail:放 DietrichGebert/ponytail 的skills/ponytail/SKILL.md,以/ponytail开头。两份文件都取自 2026 年 11 月 7 日的版本。 - 运行。 每道题每组三遍,每遍都是空文件夹里全新的
claude -p会话:Claude Code 2.1.314,--model haiku,--setting-sources project,不加载任何用户设置和钩子,共 180 次。token、费用和耗时取自 Claude Code 的 JSON 输出。 - 判分。 解释题和命令题的答案必须包含关键事实,比如 SQL 那题要有
IS NULL,撤销提交那题要有git reset --soft HEAD~1。代码题必须定义出那个函数并通过我们的测试。第一轮有两条规则判错了,已对三组同样修正:代码取第一个定义了该函数的代码块,因为不装 skill 的回答常附一段>>>示例;deps也算提到了依赖数组。修正前,不装 skill 的代码题看起来只对了 50%;修正后三组都是 60 个全对。
测试结果
全部 20 道题,各三遍
| 不装 skill | caveman | ponytail | |
|---|---|---|---|
| 答对 | 60 / 60 | 60 / 60 | 60 / 60 |
| 输出 token 总数 | 38,066 | 23,619(−38%) | 57,108(+50%) |
| 回答中位 | 128 词,439 token | 55 词,265 token | 126 词,763 token |
| 代码行数中位 | 5.5 | 3 | 3 |
| 每次输入 token 中位 | 18,001 | 19,823 | 19,226 |
| 60 次总费用 | 0.108 美元 | 0.120 美元(+11%) | 0.136 美元(+25%) |
| 每次耗时中位 | 5.4 秒 | 4.6 秒 | 6.9 秒 |
按题型,输出 token 总数
| 不装 skill | caveman | ponytail | |
|---|---|---|---|
| 解释(8 道) | 17,095 | 12,770(−25%) | 21,459(+26%) |
| 命令(6 道) | 4,612 | 3,480(−25%) | 8,527(+85%) |
| 代码(6 道) | 16,359 | 7,369(−55%) | 27,122(+66%) |
caveman 省得最多和最少的题,三遍的中位数
| 问题 | 不装 skill | caveman | 变化 |
|---|---|---|---|
| 列表分块 chunk | 393 | 94 | −76% |
| 查监听端口 | 440 | 125 | −72% |
| is_palindrome | 590 | 172 | −71% |
| HTTP 401 和 403 | 343 | 169 | −51% |
| 257 的 is 和 == | 664 | 756 | +14% |
| 撤销上一次提交 | 277 | 321 | +16% |
一个让输出变短的 skill,为什么让每次调用更贵?每个 Claude Code 会话开头都有大约 18,000 个输入 token 的系统提示词和工具定义,新会话要把其中大部分写进提示词缓存。用这 180 次调用倒推,不装 skill 时写缓存占一次调用费用的 75%,输出只占 18%。caveman 给这次写缓存加了约 1,700 个 token,每个回答省下约 240 个输出 token,而输出的单价只是写缓存的 2.5 倍。在长会话里,说明只写一次,之后按二十分之一的价格从缓存读取,账就倒过来了。
该忽略什么
- 75% 这个数。 它来自 caveman 早先的描述。现在的 README 开头举的是一个例子,63 个 token 降到 20 个;整段会话省输入 token 的数字,说的是 caveman 的其他工具,不是这个 skill。
- 速度。 caveman 在这里稍快,4.6 秒对 5.4 秒,但这些都是单个短回答,网络时间占了大头。
- 把 ponytail 多出来的说明当缺点。 结尾交代跳过了什么,正是这个 skill 的用意。评价它要看改代码,这次测试没测。
局限
- 只测了 Haiku。 我们的批量测试都用 Haiku。不装 skill 时回答更长的大模型,装 caveman 可能省得更多。
- 新会话里的单个问题。 对任何 skill 来说,这都是说明成本最吃亏的情况。我们没有测带工具调用的长 agent 会话,caveman 关于状态行的规则也在那种场景才用得上。
- **自动判分只查关键事实和测试,**不查细节。一个答案可能通过了,却漏掉读者想要的某个提醒。
- skill 一直在改。 两个仓更新都很频繁;我们用的是 2026 年 11 月 7 日的文件,数据里写明了每一份。
自己复现
脚本是 caveman-skill-test-2026-11.py。下载两份 SKILL.md,在登录了 Claude Code 的机器上运行 python3 caveman-skill-test-2026-11.py run <文件夹> <caveman SKILL.md> <ponytail SKILL.md>,再运行 score <文件夹>。它输出 caveman-skill-test-2026-11.json:每次调用一行,含 token、费用、耗时、代码行数和答案对错,以及本文用到的全部汇总。两个 skill 都在我们的 skills 目录里,ponytail 的涨星情况见我们的涨星榜。
来源
- JuliusBrussee/caveman · official
- DietrichGebert/ponytail · official
- Claude Code 文档:Agent Skills · official
- AgentCraft:Claude Code skills 目录 · blog