NextClaw × DeepSeek:五阶段优化降低成本 62.0%,实测比 DeepSeek Harness 低 10.8%
同样完成三项任务,NextClaw 费用从 USD 0.022664 降至 0.008613,减少 62.0%。 在同一套测试中,优化版比官方 DeepSeek Harness 低 10.8%。
| 版本 | 通过 ↑ | 费用 USD ↓ | 缓存命中 ↑ | 总 token ↓ | 耗时 秒 ↓ |
|---|---|---|---|---|---|
| NextClaw · 原版 | 3/3 | 0.022664 | 61.99% | 239,074 | 35.91 |
| NextClaw · 优化版 | 3/3 | 0.008613 | 84.08% | 173,411 | 28.90 |
| DeepSeek Harness | 3/3 | 0.009656 | 78.92% | 159,428 | 28.48 |
粗体为最优值。费用由供应商原始用量计算,耗时含启动与验收。开发版、每阶段一组三任务实测;缓存受供应商状态影响,不代表所有任务或统计显著优势。
五个阶段,费用怎么变?
每个阶段只在上一个阶段上增加一组优化;S0 是未经这五项优化的原版。全部 21 个任务样本通过,没有删掉失败样本或挑选重跑。
| 阶段 | 费用 USD | 缓存命中 | 输入 token | 输出 token | 总 token | 耗时 秒 | 调用 |
|---|---|---|---|---|---|---|---|
| S0 原版 | 0.022664 | 61.99% | 236,216 | 2,858 | 239,074 | 35.91 | 15 |
| S1 保留模型轮次 | 0.015054 | 77.85% | 250,085 | 2,278 | 252,363 | 27.55 | 16 |
| S2 精简常驻提示 | 0.015041 | 77.82% | 248,872 | 2,332 | 251,204 | 29.98 | 17 |
| S3 固定工具声明 | 0.011757 | 84.01% | 250,184 | 2,249 | 252,433 | 30.27 | 17 |
| S4 修复压缩范围 | 0.011645 | 83.17% | 237,462 | 2,230 | 239,692 | 28.70 | 16 |
| S5 参数按需查询 | 0.008613 | 84.08% | 170,956 | 2,455 | 173,411 | 28.90 | 16 |
| DSH | 0.009656 | 78.92% | 157,153 | 2,275 | 159,428 | 28.48 | 15 |
相对上一阶段,改善了多少?
费用、token、耗时的负值表示减少;缓存变化以百分点表示。“相对原版”用于看累计效果,不能把各行百分比相加。
| 阶段 | 费用环比 | 费用相对原版 | 缓存变化 | 总 token 变化 | 耗时变化 |
|---|---|---|---|---|---|
| S1 保留模型轮次 | -33.58% | -33.58% | +15.86 pp | +5.56% | -23.29% |
| S2 精简常驻提示 | -0.09% | -33.64% | -0.03 pp | -0.46% | +8.83% |
| S3 固定工具声明 | -21.83% | -48.12% | +6.19 pp | +0.49% | +0.98% |
| S4 修复压缩范围 | -0.95% | -48.62% | -0.84 pp | -5.05% | -5.21% |
| S5 参数按需查询 | -26.04% | -62.00% | +0.91 pp | -27.65% | +0.71% |
每个阶段说明了什么?
S1:历史不再重写,是第一项主要收益
费用下降 33.58%,缓存命中率提高 15.86 个百分点,即使总 token 增加 5.56%,仍明显省钱。原因在于未缓存输入从 89,784 降至 55,397。
原版历史/工具前缀改写共 9 次,S1 降为 1 次。持久化记录保存真实模型轮次后,追加工具调用不再重新合并旧历史;剩余一次与工具声明变化有关。这里的收益来自减少昂贵的未缓存输入,不是简单地少发 token。
S2:提示变短,没有带来同等幅度的费用下降
费用只下降 0.09%,缓存命中率下降 0.03 个百分点,总 token 减少 0.46%,耗时反而增加 8.83%。这组结果只能称为基本持平,不能宣传成独立的大幅降本。
逐任务看,文件核对费用从 USD 0.005476 升至 0.008267,配置诊断与修复则下降。文件任务的工具列表仍从 49 个变为 50 个,破坏前缀;执行路径也有变化。提示精简有输入收益,但整体费用必须连同缓存稳定性一起验证。
S3:工具声明稳定,是第二项主要收益
费用下降 21.83%,缓存命中率提高 6.19 个百分点,未缓存输入从 55,208 降至 40,008。总 token 略增 0.49%,调用次数仍是 17 次;前缀改写从 1 次降为 0 次。
变化是会话搜索从启动就声明,索引准备情况通过执行结果返回。后台就绪不会再增加一个工具、改变缓存前缀。这是指标变化与请求证据相吻合的阶段。
S4:压缩修复已加入,但这组三任务没有触发压缩
费用下降 0.95%,缓存命中率下降 0.84 个百分点,总 token 减少 5.05%,调用从 17 次变成 16 次。
请求记录中没有摘要调用,因此不能把这点费用下降归因于压缩修复。 这一阶段证明完整修复组合仍能完成任务;费用与耗时变化主要伴随执行路径变化。要独立量化压缩收益,需要触发压缩的长会话实验,这份短任务曲线不提供该因果结论。
S5:减少常驻工具参数,是第三项主要收益
费用下降 26.04%,总 token 减少 27.65%,缓存命中率提高 0.91 个百分点。调用次数同为 16,耗时略增 0.71%,说明降本不等于同步加速。
工具声明从 29,898 降至 15,036 字符;输入 token 从 237,462 降至 170,956。部分完整参数通过稳定的 tool_schema 按需查询,基础工具仍提供完整参数,执行仍保留原校验与权限。
这些任务主要使用直接声明的基础工具,没有覆盖大量参数查询的场景;不能因此断言渐进加载对所有工具任务都更便宜或完全无损。
实验设置与完整数据
- 模型:官方
deepseek-v4-flash;思考模式 enabled/high;DSH SDK 0.1.2-rc.1。 - 任务:五文件核对与追问、配置故障诊断与追问、Python 运费边界修复与外部测试。
- 每请求统一上限 2,048 输出 token;任务超时 120 秒。全部样本未出现输出截断。
- 每样本独立进程、HOME、XDG 与工作目录;保留各自原生工具,排除用户安装的 skills 和历史。
- 三类任务轮换阶段执行顺序;不清空供应商缓存、不额外预热。每阶段每任务仅一次,不估计置信区间。
- 原版源码为
c0b131f19,只共同保留让公共测量入口可运行的chatStream接收者绑定修复;五项优化按 manifest 逐阶段累计。 - 全部测量时间为 2026-09-08 05:15–05:18 UTC,同一价格窗口:每百万未缓存输入 / 缓存输入 / 输出为 USD 0.22 / 0.007 / 0.66。
- 21 个样本共 112 次模型调用,USD 0.094429860,低于 USD 0.25 的总预算。费用是用量估算,不是账单实扣。
核心命中率为全部缓存输入除以全部输入,包含首请求;输出包含思考,不重复相加。所有表格与曲线来自这一次统一实验,旧的 512-token 测量没有拼入。
缓存条件会影响领先幅度
S5 的三项首请求共命中 6,912 token,DSH 首请求没有命中。只将首请求改按未命中价重算,S5 费用为 USD 0.010085404,DSH 为 USD 0.009656344,NextClaw 约高 4.4%。
因此“低 10.8%”是这次真实缓存条件下的观测结果,不能全部归于产品自身;全冷首请求重算只是敏感性分析,也不是清空缓存后的复测。相同任务规范不等于供应商缓存完全相同。
完整缓存、思考与请求指标
| 阶段 | 缓存输入 | 未缓存输入 | 思考 token | API 秒 | 前缀改写 |
|---|---|---|---|---|---|
| S0 | 146,432 | 89,784 | 1,045 | 23.86 | 9 |
| S1 | 194,688 | 55,397 | 668 | 19.00 | 1 |
| S2 | 193,664 | 55,208 | 694 | 20.43 | 1 |
| S3 | 210,176 | 40,008 | 528 | 19.66 | 0 |
| S4 | 197,504 | 39,958 | 591 | 18.40 | 0 |
| S5 | 143,744 | 27,212 | 744 | 19.94 | 0 |
| DSH | 124,032 | 33,121 | 580 | 19.78 | 0 |
21 个任务的逐项结果
| 阶段 | 任务 | 通过 | 费用 USD | 缓存命中 | 输入 | 输出 | 耗时 秒 | 调用 |
|---|---|---|---|---|---|---|---|---|
| DSH | config | ✓ | 0.002570224 | 74.63% | 34,987 | 659 | 8.16 | 4 |
| DSH | files | ✓ | 0.004330120 | 82.22% | 86,404 | 686 | 9.34 | 7 |
| DSH | repair | ✓ | 0.002756000 | 75.16% | 35,762 | 930 | 10.97 | 4 |
| S0 | config | ✓ | 0.005887556 | 58.50% | 56,009 | 826 | 9.26 | 4 |
| S0 | files | ✓ | 0.012300064 | 59.03% | 123,388 | 1,012 | 16.07 | 7 |
| S0 | repair | ✓ | 0.004476164 | 71.86% | 56,819 | 1,020 | 10.58 | 4 |
| S1 | config | ✓ | 0.005787016 | 67.56% | 69,343 | 773 | 10.13 | 5 |
| S1 | files | ✓ | 0.005476488 | 84.14% | 123,678 | 656 | 9.26 | 7 |
| S1 | repair | ✓ | 0.003790132 | 76.71% | 57,064 | 849 | 8.16 | 4 |
| S2 | config | ✓ | 0.003370256 | 83.32% | 66,212 | 840 | 9.99 | 5 |
| S2 | files | ✓ | 0.008266860 | 71.78% | 116,799 | 650 | 10.04 | 7 |
| S2 | repair | ✓ | 0.003403412 | 82.99% | 65,861 | 842 | 9.96 | 5 |
| S3 | config | ✓ | 0.003268756 | 83.02% | 65,677 | 658 | 9.89 | 5 |
| S3 | files | ✓ | 0.004994900 | 85.21% | 117,926 | 687 | 10.03 | 7 |
| S3 | repair | ✓ | 0.003493676 | 82.86% | 66,581 | 904 | 10.35 | 5 |
| S4 | config | ✓ | 0.003267204 | 79.15% | 53,205 | 806 | 8.72 | 4 |
| S4 | files | ✓ | 0.004972444 | 85.22% | 117,760 | 667 | 10.58 | 7 |
| S4 | repair | ✓ | 0.003405440 | 82.77% | 66,497 | 757 | 9.40 | 5 |
| S5 | config | ✓ | 0.002300968 | 81.32% | 36,676 | 886 | 9.59 | 4 |
| S5 | files | ✓ | 0.003901664 | 85.06% | 88,634 | 698 | 9.31 | 7 |
| S5 | repair | ✓ | 0.002410516 | 84.41% | 45,646 | 871 | 9.99 | 5 |
如何重跑和追踪
实验代码在不发布的 @nextclaw/agent-benchmark 包中,复用同一任务、验收、请求观察器和预算机制。阶段 manifest 冻结源码及指纹,报告同时生成每阶段结果、相邻阶段与原版的增量;续跑跳过已完成样本,不挑选重跑失败。
在该包目录执行,先用 --dry-run 核对任务和预算,再移除该参数运行。查看已有 JSON / Markdown 报告不调用模型。
pnpm exec tsx --conditions=development \
--tsconfig ../../scripts/dev/dev-runtime.tsconfig.json \
src/diagnostics/staged-study.manager.mjs \
/absolute/new-result-dir /absolute/dsh-sdk-dir --dry-run