智能体评测基准:用 SWE-bench 与 AgentBench 量化 Agent 能力

智能体评测基准(Agent Evaluation Benchmark)正在成为衡量 AI Agent 真实能力的事实标准。过去我们靠主观试用判断一个 Agent 好不好用,但当 Agent 开始接管写代码、操作浏览器、调用工具这类多步骤任务后,主观感受就远远不够了。你需要一套可重复、可量化、可横向对比的评测体系,才能知道模型升级、Prompt 调整、工具集改动究竟带来的是进步还是倒退。本文梳理主流 Agent 评测基准的选型逻辑,并给出可落地的自建评测方案。尤其当团队同时维护多条 Agent 流水线时,没有统一评测就等于在黑箱里迭代,任何一次看似聪明的”优化”都可能悄悄引入回归而无人察觉。

一、为什么 Agent 需要专门的评测基准

聊天机器人的评测可以用对话轮次、满意度打分解决,但 Agent 的核心特征是自主完成多步骤任务:读上下文、调工具、改代码、看反馈、再决策。这种长链路里有太多会出错的环节——工具参数写错、环境状态污染、陷入死循环、成本失控。只问”最终答对了没”会掩盖过程缺陷,因此 Agent 评测必须把任务成功率、工具调用准确率、轨迹效率、鲁棒性和成本拆开度量。它本质上是 Agent 工程化的”测试金字塔”底座,配合持续集成才能在每次改动后快速回归。一个常被忽视的点是:Agent 的输出具有随机性,单次运行通过不代表稳定,必须用小样本多次采样取均值,否则分数会随运气剧烈抖动。

二、主流 Agent 评测基准全景

下面四个基准覆盖了代码、通用环境、浏览器与商业交易四类典型场景,是当前论文和工程团队引用最多的组合。

基准任务形态核心指标适用场景
SWE-bench真实 GitHub Issue 修复补丁通过率 resolved rate代码智能体
AgentBench8 类真实环境(OS/DB/Web/KG)平均任务成功率通用 Agent 综合能力
WebArena自托管网站多步操作任务成功率浏览器智能体
tau-bench客服交易(工具 + 用户)奖励率 pass^tau工具调用型 Agent

三、SWE-bench:让 Agent 修真实 GitHub Issue

SWE-bench 的每条样本来自真实开源仓库的 Pull Request:给定 Issue 描述与代码基线,Agent 需要产出一个能通过仓库测试的补丁。它最大的价值是用真实工程难度替代玩具题,连 GPT-4 级别模型在 Lite 子集上也只有三成左右通过率,能拉开模型与编排策略的差距。运行官方 harness 非常直接:

pip install swesmith
python -m swesmith.harness.run   --dataset princeton-nlp/SWE-bench_Lite   --agent my_agent   --model claude-sonnet-4

Agent 产出的补丁必须是标准 git diff,评测端会把它应用到干净基线上跑测试。一个典型的修复补丁长这样:

diff --git a/src/parser.py b/src/parser.py
--- a/src/parser.py
+++ b/src/parser.py
@@ -42,7 +42,7 @@ def parse(expr):
-    return eval(expr)          # 危险且不可控
+    return safe_eval(expr)     # 受限求值,避免任意代码执行

四、AgentBench:跨环境的综合能力标尺

AgentBench 把 Agent 放进操作系统命令行、数据库、网页、知识图谱等 8 类沙箱环境,统一用任务成功率打分,适合衡量一个 Agent 框架的通用迁移能力而非单一技能。本地跑一个子集只需几行代码:

from agentbench import run_benchmark

result = run_benchmark(
    agent=my_agent,
    envs=["os", "db", "web", "kg"],
    shots=3,
)
print(result.summary())
# => {'os': 0.41, 'db': 0.55, 'web': 0.33, 'kg': 0.62, 'avg': 0.48}

五、WebArena 与 tau-bench:网页与商业交易

WebArena 在自托管的购物、论坛、Git 类网站环境里跑多步操作,衡量 Agent 能否”看懂页面再点击”。tau-bench 更进一步引入一个扮演用户的模拟器与一组工具 API(查订单、改地址、退款),用奖励率 pass^tau 衡量 Agent 在用户反复改口、工具返回异常时是否仍稳定收敛。两者共同补足了”工具调用 + 图形界面”这类贴近生产的场景,和大模型工具调用 Function Calling 实战里提到的工具编排能力形成闭环验证。

六、自建评测的五个维度

直接套用公开基准成本高、且与业务距离远。多数团队更划算的做法是围绕自己的任务抽一套轻量评测集,至少覆盖下面五个维度:

维度定义采集方式
任务成功率最终是否达成目标规则 / 人工判定
工具调用准确率参数与时机是否正确解析轨迹
轨迹效率步数 / token / 耗时埋点统计
鲁棒性面对异常能否恢复注入干扰用例
单任务成本一次任务花费计量账单

七、评测中的四个常见陷阱

1. 只看最终成功率,忽略过程

一个靠运气重试通过的 Agent 和一个一次成功的 Agent 最终成功率相同,但后者显然更可靠。务必把轨迹效率与工具调用准确率一并记录。

2. 测试集泄露与过拟合

把评测集混进训练或 Few-shot,分数会虚高。公开基准尤其要确认没有污染,自建集则要定期轮换样本。

3. 环境状态未隔离

Agent 改了数据库或文件系统却没重置,下一条用例会在脏状态上跑,结果不可复现。每条用例前必须重建干净环境。

4. 指标口径不统一

“成功率”到底算不算人工兜底、”成本”含不含缓存命中,必须在团队内先对齐定义,否则历史分数无法纵向比较。

八、把评测接进 CI:每次改动都回归

最实用的落地是把评测脚本挂到持续集成,模型或 Prompt 一改动就自动跑分并写入报告。下面是一段最小可用的 GitHub Actions 配置:

name: agent-eval
on: [push]
jobs:
  eval:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: pip install -e .
      - run: python eval/run_swebench.py
        env:
          AGENT_API_KEY: ${{ secrets.AGENT_API_KEY }}
      - run: python eval/report.py >> $GITHUB_STEP_SUMMARY

九、小结

智能体评测基准把”Agent 行不行”从主观感受变成可追踪的数字。公开基准(SWE-bench / AgentBench / WebArena / tau-bench)适合做横向对标,自建轻量评测集才适合做日常回归。无论哪条路,关键都是多维度、可复现、接进 CI。随着AI 编程智能体从代码补全走向自主编程,以及LangChain Agent 自主编排的普及,评测会成为 Agent 团队和代码测试一样的基础设施。成本维度也别忽视——评测时顺手统计 token 消耗,能和你本地GGUF 量化部署的推理成本直接对照。

上一篇 CSS 容器查询实战:组件级响应式设计新范式