48 道 Django 题目、261 次运行的严格基准测试,repowise 最高节省 31.6%,其余工具仅 6-14.9%,且 Claude Code 下多数工具几乎不被调用。
Token 节省工具承诺的节省率高达 60–90%,实际基准测试显示仅 6–32%
一位开发者(同时也是测试工具之一 repowise 的开发人员)发布了一份严格的预注册基准测试,对 5 款 Token 节省工具在 Codex 和 Claude Code 上进行了测评。测试设置:来自 SWE-bench 的 48 道 Django 题目,261 次运行,相同的 agent、prompt、仓库和工具访问权限,每次工具使用前重建索引,并设置无工具的基线。Codex(gpt-5.6-sol)上的结果令人警醒:
repowise:输出 Token 减少 31.6%(p<0.0001)
CodeGraph:减少 24.4%(p<0.0001)
Serena:减少 14.8%(p<0.0001)
Graphify:减少 8.9%(p=0.003)
code-review-graph:减少 6.0%(p=0.046)
没有任何工具接近 60–90% 的声称。即使是最佳结果(31.6%)也只达到常见最低声称值的一半。经过多重比较校正后,五款工具中只有三款的减少量在统计上成立。
对 Claude Code 用户而言最重要的发现:在这款工具下,大多数工具几乎根本不会被调用。code-review-graph 在 15 道题目中一次都没有被调用。Graphify 被调用 3 次,Serena 4 次。工具端没有任何变化——服务器相同、索引相同、题目相同。但 Codex 在每道题目上都调用了每个工具。
罪魁祸首很可能是:Claude Code 采用按需加载 MCP schema 的方式,agent 必须先发现工具才能调用它,而往往永远不会发现。Codex 则预先加载 schema,使工具立即可用。
这意味着,即使一个 Token 节省工具理论上能节省 30%,实际上如果 Claude Code 从不调用它,节省率可能是 0%。基准测试作者计划用强制工具使用的 hooks 重新测试——但在此之前,你不应该假设任何基于 MCP 的 Token 节省工具正在发挥作用。
检查你的 MCP 工具是否真的被调用了。用 verbose 日志运行一个会话(claude --verbose),然后 grep 工具调用记录。如果你看到对 Token 节省工具的调用次数为零,那它就是无用负担。
检查你的 MCP 工具是否真的被调用了。用 verbose 日志运行一个会话(claude --verbose),然后 grep 工具调用记录。如果你看到对 Token 节省工具的调用次数为零,那它就是无用负担。
用 hooks 强制工具使用。如果你想确保某个工具被使用,在 settings.json 中添加一个 PreToolUse hook,注入使用该工具的提醒。例如:
用 hooks 强制工具使用。如果你想确保某个工具被使用,在 settings.json 中添加一个 PreToolUse hook,注入使用该工具的提醒。例如:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Read",
"hooks": [
{
"type": "command",
"command": "echo 'Consider using your token-saving tool first.'"
}
]
}
]
}
}
或者在你的 CLAUDE.md 中使用系统 prompt 指令:"Always use the codegraph_search tool before reading files."
测量完整会话,而非单个 payload。基准测试发现,通过 repowise 加载一次 commit 的上下文需要 393 个 Token,而读取变更文件需要 13,984 个——压缩比为 35.6 倍。但在完整的 agent 会话中,节省率在 Codex 上降到 31.6%,在 Claude Code 上只有 15.9%。Agent 会重读、回退和重新规划,所以单个 payload 的数据具有误导性。使用 claude --output-format json 捕获每个会话的 Token 使用量,然后对比有工具和无工具的情况。
测量完整会话,而非单个 payload。基准测试发现,通过 repowise 加载一次 commit 的上下文需要 393 个 Token,而读取变更文件需要 13,984 个——压缩比为 35.6 倍。但在完整的 agent 会话中,节省率在 Codex 上降到 31.6%,在 Claude Code 上只有 15.9%。Agent 会重读、回退和重新规划,所以单个 payload 的数据具有误导性。使用 claude --output-format json 捕获每个会话的 Token 使用量,然后对比有工具和无工具的情况。
警惕 prompt cache 预热效应。作者差点发布了一张成本表,显示 code-review-graph 便宜了 43%,但那其实是 cache 预热的artifact:第一个分支支付了全价,后续分支复用了 cache。比较工具时始终报告输出 Token 数,而不是成本。
警惕 prompt cache 预热效应。作者差点发布了一张成本表,显示 code-review-graph 便宜了 43%,但那其实是 cache 预热的 artifact:第一个分支支付了全价,后续分支复用了 cache。比较工具时始终报告输出 Token 数,而不是成本。
索引时间是真实成本。repowise 索引耗时 366.8 秒(关闭 prose 生成时;默认初始化为 1,058 秒),而 CodeGraph 仅需 16.4 秒——快 22 倍。如果你频繁切换仓库,索引时间可能会吞噬你的节省。选择索引更快的工具,如 CodeGraph(16.4 秒)或 code-review-graph(44.8 秒)。
索引时间是真实成本。repowise 索引耗时 366.8 秒(关闭 prose 生成时;默认初始化为 1,058 秒),而 CodeGraph 仅需 16.4 秒——快 22 倍。如果你频繁切换仓库,索引时间可能会吞噬你的节省。选择索引更快的工具,如 CodeGraph(16.4 秒)或 code-review-graph(44.8 秒)。
盲审法官对每个工具(包括 repowise)打分都略低于裸 agent,但差异(在 10 分制上为 0.04–0.25 分)小于基准测试本身的噪音(0.69 分)。所以 Token 节省不会带来质量损失——但也不会提升质量。
在确定性检索基准测试(ContextBench)上,repowise 的 get_answer 从约 19 个提供的文件中找到了 87.6% 的 gold 文件,而 code-review-graph 从 5.4 个文件中找到了 44.5%(最高精确率为 0.240)。如果你在意精确率(更少 Token),code-review-graph 尽管覆盖率较低,但可能更好。但这个基准测试没有使用 LLM,所以不能反映真实 agent 行为。
不要相信 60–90% 的声称。真实节省率是 6–32%,而且只有在工具确实被调用的情况下才成立。在 Claude Code 中,MCP 懒加载意味着许多工具未被使用——用 hooks 或 verbose 日志验证。始终测量完整会话,而不是单个 payload。
完整方法论和原始数据:github.com/repowise-dev/repowise/blob/main/docs/BENCHMARKS.md
Originally published on gentic.news