基准测试

August 15, 2026 · View on GitHub

一、需要证明的不是“图更漂亮”

AgentNavi 的价值应由任务指标验证:

  • 首次有效修改前读取多少文件;
  • 探索阶段使用多少 Token;
  • 无关文件读取比例;
  • 必要文件召回率;
  • 任务是否成功;
  • 完成耗时;
  • 索引开销是否低于节省。

因此基准分为检索基准与真实 Agent 对照。

二、检索基准

用例格式:

[
  {
    "id": "membership-upgrade",
    "task": "修改会员升级和支付逻辑,并运行对应测试",
    "expected_files": [
      "src/membership/upgrade.py",
      "src/payment/service.py",
      "tests/test_upgrade.py"
    ]
  }
]

运行:

agentnavi benchmark evaluate cases.json --suite membership-v1

默认比较:

  • full-scan:把全部索引文件视为候选;
  • filename-search:只按任务词匹配文件名和路径;
  • agentnavi:按任务→概念→文件路由。

关键指标:

  • recall:必要文件有多少进入候选集;
  • precision:候选中有多少是必要文件;
  • candidate_reduction:候选文件数相对全仓库减少多少;
  • estimated_context_tokens:候选文件体积除以可配置字符/Token 比例;
  • estimated_token_reduction:相对全仓库的透明估算。

该 Token 指标是可重复的文件体积近似值,不是供应商账单,也未假装包含模型内部缓存、工具协议和系统提示开销。

三、真实 Agent 对照

先分别运行一个不使用 AgentNavi 的 baseline 任务,以及一个使用 AgentNavi 的任务。Hook 会留下两条 L3 任务记录。

然后录入供应商或运行时提供的实际探索 Token、耗时和结果:

agentnavi benchmark record <baseline_task_id> \
  --suite membership-real \
  --case membership-upgrade \
  --mode baseline \
  --expected src/membership/upgrade.py \
  --expected src/payment/service.py \
  --expected tests/test_upgrade.py \
  --exploration-tokens 10800 \
  --duration-ms 130000 \
  --status success

agentnavi benchmark record <agentnavi_task_id> \
  --suite membership-real \
  --case membership-upgrade \
  --mode agentnavi \
  --expected src/membership/upgrade.py \
  --expected src/payment/service.py \
  --expected tests/test_upgrade.py \
  --exploration-tokens 3200 \
  --duration-ms 72000 \
  --status success

L3 事件自动给出:

  • 实际读过的文件;
  • 实际触及的文件;
  • 必要文件召回;
  • 无关读取数与比例。

Token、耗时和成功状态由调用者显式录入,因为不同 Agent 对 Token 统计口径不同,AgentNavi 不伪造这些数据。

四、比较与质量门槛

agentnavi benchmark compare --suite membership-real --kind observed

只有质量合格的配对才计入正式 reduction:

baseline 必要文件召回 ≥ 95%
AgentNavi 必要文件召回 ≥ 95%
真实对照双方 success = true

低召回、失败或未知状态会显示为 excluded_for_low_quality。这避免以下错误结论:

AgentNavi 少用了 80% Token,因为它没有读到真正需要修改的文件。

五、推荐实验设计

至少准备 20 个真实任务,并固定:

  • 同一代码版本;
  • 同一 Agent 和模型;
  • 同一权限;
  • 同一任务说明;
  • 同一验收标准;
  • baseline 与 AgentNavi 交替执行,降低顺序偏差。

必要文件应由任务完成后的人工审查或独立 Reviewer 确认,而不是由 AgentNavi 自己定义。

建议同时记录:

  • 测试是否通过;
  • Reviewer 是否接受;
  • 漏读文件;
  • 错误图谱关系;
  • 初次索引和增量索引耗时。

六、结果解释

检索基准证明的是:

图谱能否在保持必要文件召回的前提下缩小候选集合。

真实对照证明的是:

候选缩小是否真的转化为更少 Token、更少无关读取和更短时间,同时任务质量不下降。

两者都成立,才能较有把握地说 AgentNavi 对该类项目有效。