跳到主要内容

A7.2 智能体 Benchmark:怎么给「会办事」打分

从「答得对」到「办成了」​

上篇第 7 章讲过怎么给模型打分:出一道题,看它答得对不对。给智能体打分完全是另一回事——你不是在问它「北京到上海怎么订票」,而是让它真的去订,然后检查:票订上了吗?日期对吗?没超预算吧?

难点一下就冒出来了:要评一个智能体,你得先搭一个能自动判定「成功」的真实环境。这比出一道选择题难太多了。

主流智能体 Benchmark 一览​

看看业界是怎么解决「判成功」这个难题的(各标提出年份):

Benchmark考什么环境怎么判成功一句点评
SWE-bench(2023)修真实的 GitHub bug真实开源仓库跑官方测试套件,全绿即通过判据最硬核——测试是客观的,回扣 A6
GAIA(2023)需要多工具协作的助理任务网页+文件+计算对照唯一正确答案逼智能体串起搜索、读文档、算数
WebArena / OSWorld(2023/2024)在真实网页/桌面上操作可复位的真实软件环境检查最终状态(订单建了吗、文件改对了吗)环境即评测,回扣 A6.3 计算机使用
τ-bench(2024)模拟客服(订票、退货)带数据库的对话环境检查数据库最终状态 + pass^k 稳定性把稳定性当一等公民

一个共同点:越靠谱的 benchmark,越是用「环境的最终状态」而不是「模型说了什么」来判成功。SWE-bench 不看智能体如何雄辩地解释自己的修复,只看测试过不过;τ-bench 不看它多会安慰用户,只看数据库里退款到底退没退。

智能体评测的三个特有难点​

比起模型评测,智能体评测多了三座大山:

  1. 判成功难。开放任务往往没有唯一正解(「写一份调研报告」怎么算对?)。要么搭一个能自动判状态的真实环境(贵),要么请 模型当裁判(继承了上篇 7.2 讲的长度、自信、位置各种偏差)。
  2. 轨迹也要评。不能只看结果对不对,还要看过程:它有没有绕远路烧掉十倍 token?有没有偷偷执行了危险操作?有没有把用户数据发到不该发的地方(A8 的正题)?结果对了、过程惊悚,一样不能上线。
  3. 贵且慢。评一道选择题是一次模型调用;评一个智能体任务是一整轮多步交互,可能几十次调用、跑几分钟。跑一遍完整评测集的成本,是模型评测的几个数量级以上。

老坑一个没少,还多了新的​

上篇 7.2 讲的评测陷阱,在智能体时代全部继承:

  • 数据污染:SWE-bench 里的知名 issue 和它的修复,早就在训练数据里躺着了——模型可能是「背过这道题」而不是「会修 bug」。
  • 刷榜:针对某个 benchmark 的特定环境、特定脚手架过拟合,分数好看,换个场景就废。

而且还多了一个新坑:智能体的分数高度依赖脚手架(工具集、提示词、上下文管理策略)。同一个模型,配一套好工具和配一套烂工具,SWE-bench 分数能差出一大截——所以「某模型 SWE-bench 多少分」这个说法本身就不完整,得问「用的什么智能体框架」。

榜单分数 ≠ 你的场景表现(这次更严重)

模型评测里「榜单分不代表实际体验」已经够坑了,智能体这里更甚:智能体的表现是模型 × 工具 × 提示词 × 上下文策略的乘积,换任何一个因子结果都可能天翻地覆。「SWE-bench 排第一」离「能修好你公司代码库的 bug」差着十万八千里——你的代码、你的工具、你的任务分布,都不在那个榜单里。唯一靠谱的评测,是在你自己的任务上评测。这直接引出下一节。

小结​

本节要点
  • 给智能体打分 = 搭一个能自动判定「事办成没」的真实环境,判据要基于状态不是基于输出文本。
  • 主流 benchmark:SWE-bench(跑测试)、GAIA(多工具助理)、WebArena/OSWorld(真实软件操作)、τ-bench(客服+稳定性)。
  • 智能体评测三难:判成功难、轨迹也要评、贵且慢;污染和刷榜的老坑一个没少。
  • 分数高度依赖脚手架,榜单第一 ≠ 你的场景能用——一定要在自己的任务上评测。
📝 动手自测0/3
1. SWE-bench 是怎么判定智能体成功修复了一个 bug 的?
2. 设计智能体评测的成功判据时,最不该采用的方式是?
3. 为什么说「某模型 SWE-bench 得了多少分」这个说法不完整?

延伸阅读​

  • SWE-bench(2023)——真实 GitHub issue 上的代码修复基准,「用测试判成功」的代表作。
  • GAIA(2023)——通用 AI 助理基准,任务对人简单、对智能体很难。
  • 下一节 A7.3 评测驱动开发:有了评测,怎么用它像做实验一样迭代智能体。