跳转到内容

基准测试

落地页上的数字来自一项脚本化 agent 基准。本页记录测量协议、完整结果表,以及这些数据能——和不能——支撑的结论。

  • 驱动器: pi 编程代理,端到端运行每个脚本化任务,token 经 OpenRouter 计费。

  • 任务: 针对真实仓库的四个脚本化场景:

    场景 测试夹具 大小
    fabric Canvas.ts 51 KB
    konva Node.ts 96 KB
    graphology graph.js 77 KB
    execlog 确定性构建日志夹具 1,914 行
  • 实验组:

    • base — agent 内置的 read + bash 工具。
    • cliskill — 通过 agent skill 驱动的 ctxctl(CLI 调用)。
    • mcp — 作为五个原生 MCP 工具暴露的 ctxctl。
  • 模型: deepseek-v4-flash,经 OpenRouter。base 组取 n=3 次运行的平均值;cliskill 和 mcp 组为单次运行。

实验组 会话成本 相对 base 成本 未缓存输入相对 base
base(内置 read + bash) $0.0047 ± 0.0026
cliskill(经 skill 的 ctxctl) $0.0039 −17.2% −35.1%
mcp(原生 ctxctl 工具) $0.0032 −32.7% −31.4%

base 组平均每个会话 26,284 个未缓存(全额计费)输入 token,provider 缓存命中率为 81.7%——也就是说,节省是在已经相当激进的前缀缓存之上测得的。

每个场景的会话成本(deepseek-v4-flash;base n=3 次重复,cliskill/mcp n=1):

场景 base cliskill mcp
fabric $0.0042±0.0011 $0.0040 $0.0060
konva $0.0059±0.0047 $0.0045 $0.0032
graphology $0.0038±0.0014 $0.0027 $0.0028
execlog $0.0050±0.0030 $0.0045 $0.0008
场景 标志性结果
fabric 行为异常组:违背了成本规律,同时产出了整个基准中最好的答案
konva 通过 outline/symbol 切片探索 96 KB 文件:未缓存输入下降 −46%(cliskill)与 −86%(mcp)
graphology 在每个 ctxctl 组中都取得一致的小幅胜利
execlog ctxctl exec 的日志分析任务:任务成本 −84%
  • 原生工具解决采用门槛。 把 ctxctl 暴露为原生 MCP 工具,消除了 skill 驱动 CLI 用法的摩擦,并带来最大的会话成本降幅(对比 read/bash 为 −33%)。
  • exec 压缩是最不受条件影响的收益(所有模型均 ~80%+)。构建日志任务落在 −84% 成本。
  • 文件探索随文件体积放大。 在 96 KB 的 konva 夹具上,outline/symbol 切片把未缓存输入最多削减 −86%。
  • fabric 是行为异常组——它打破了成本规律,却产出了基准中最好的答案;这提醒我们:更便宜的上下文也可以是更锐利的上下文。
  • 延迟代价: 工具调用密集的 ctxctl 组大约花了 2× 墙钟时间。你用秒数换来美元和缓存压力的节省。
  • 节省幅度与 provider 前缀缓存质量成反比。 provider 缓存激进的模型仍能削减未缓存输入;弱缓存模型(solar-pro4)节省了 47% 会话成本。
  • 无 shell 教训。 ctxctl exec 按 shell 分词方式拆分命令而不经过交互式 shell,因此管道和重定向需要显式的 sh -c 包裹——值得写进 agent 文档,让模型别再假设存在完整 shell。

请谨慎解读这些精确的百分比:

  • deepseek-v4-flash 的 base 组是带明显方差的 n=3 平均值($0.0047 ± 0.0026);cliskill 和 mcp 组为单次运行。引用精确数字前请先重跑。
  • 节省取决于 provider 的前缀缓存质量;缓存很强的实验组即使未缓存输入仍然下降,相对成本收益也会缩水。
  • token 计数使用 cl100k_base BPE 分词器作为跨 provider 的近似。
  • 基准脚本尚未发布;我们计划发布它们以保证可复现性。