CS 329Z: Engineering AI Agents
Stanford / Fall 2026 @stanfordnlp
https://cs329z.stanford.edu
第 13 讲「Evaluation Fundamentals & Benchmark Design」:怎么设计好的 Agent 评测基准,怎么让分数可信?
https://web.stanford.edu/class/cs329z/slides/lecture13.pdf
一个 Agent 评测基准由两部分组成:任务定义和评测规则。任务定义包括问题描述、环境和判分方式;评测规则规定 Agent 具体怎么跑。好的基准要在难度、真实性和可运行性等多项要求之间取得平衡,而且需要随着模型进步不断更新。可信的分数则要做到公平、可复现、透明和诚实。这一讲是第 12 讲的后续,讨论怎么判断 Agent 真的变强了。
从语言模型评测到 Agent 评测
前面的课讲了怎么搭 Agent、怎么训练 Agent,这一讲回答怎么知道这些改进是否有效。传统语言模型评测可以概括成「给一个提示,看模型的回答」,从 SQuAD、GLUE、BIG-bench、HELM 等任务集合,发展到四类更难的评测:
· 考试类:MMLU 到 MMLU-Pro(选项从 4 个增加到 10 个),再到 GPQA 和 Humanity's Last Exam。
· 对话类:AlpacaEval、Chatbot Arena,用胜率或 Elo 分衡量。
· 安全类:HarmBench、AIR-Bench(5694 条提示,覆盖 314 个风险类别)。
· Agent 类:在环境里经过多步交互来完成任务。
Agent 评测有三点不同:输入不是一段提示,而是任务加上一个可以操作的环境;过程不是一次回答,而是多轮「行动、观察」;输出不是文本,而是一条轨迹和被改变后的环境。
基准的作用与古德哈特定律
讲义总结了基准的三个作用:用实验检验模型、提示和框架;让一个领域聚焦于共同的问题;提供共同语言,让「在某基准上提高 5 分」对所有人意味着同一件事。同时也要警惕古德哈特定律:指标一旦变成目标,就不再是好指标。讲义的例子是,按长度给作文打分,得到的就会是长作文,而不一定是好作文。
任务定义和评测规则
任务定义包括三项:
· 问题描述:要 Agent 做什么、交付什么。
· 环境:在哪里做,一开始有哪些资源可用。
· 判分:输出怎么打分。
评测规则是与具体基准无关、但跟 Agent 运行方式相关的设置:每个任务跑几次;什么时候停止,按最大轮数、时间、算力预算,还是由 Agent 自己决定;模型的推理强度和温度;框架是统一规定的还是自带的,允许用哪些工具、能不能上网;结果怎么汇总,要不要同时报告成本、轮数和 token 消耗。
讲义把这套框架套用到一批代表性基准上,按时间顺序是:TextWorld、ALFWorld、WebShop、SWE-bench、WebArena、τ-bench(按数据库最终状态判分)、OSWorld、Terminal-bench(89 个真实工作中的终端任务)、CodeClash(多轮对抗赛,只给目标不给具体指令)、BrowseComp(难找但容易验证的事实)、VendingBench(经营模拟售货机生意,按最终净资产计分),以及 AIRS-bench(20 个机器学习研究任务,与人类最佳结果比较)。
好基准的七项标准
· 有挑战性:模型还有提升空间。
· 真实:任务反映人们真正想做的事,而不是为了难而难。
· 有区分度:能把你关心的几个系统区分开。
· 容易运行:最好一条命令就能跑起来,系统要求写清楚,配置可以从命令行修改。讲义的标准是同学一个下午就能跑通。
· 容易验证:讲义举的例子是「写一部好电视剧」,这个任务真实、困难,但很难判分。让大模型当裁判,会偏爱更长的答案和与自己相似的风格,容易被钻空子,结果也随提示词和裁判模型而变;真正发布出去看观众反馈,会受营销影响,每部剧只有一个样本,要几个月才能得到一个数据点;用获奖或影评分作为替代指标,主观、样本少,而且结果滞后。
· 可解释:Agent 失败时能看出原因,轨迹可以分析。
· 耐用:不容易被训练数据污染,也不容易被钻空子。
这些标准之间本身有冲突,而且基准是需要持续维护的软件。讲义列出了基准从提出、改进、被刷满到被替换的过程,例如编程类从 SWE-bench Verified 到多语言版、Pro 版,再到 DeepSWE;终端类从 Terminal-Bench 1.0 到 2.1 再到 4.0;客服工具调用类从 ToolEmu 到 τ-bench 再到 τ²-bench。
怎么让分数可信
· 公平:使用与基准一致的框架、工具、预算、模型设置、尝试次数和网络权限。有偏离就说明怎么偏离、为什么。
· 可复现:固定并记录模型版本、框架、数据集和镜像版本。
· 透明:除了分数,还要报告运行次数、误差范围、成本和被排除的任务。讲义的例子是:70% 看起来比 67% 高,但如果 3 分的差距在误差范围内,而高分方案每个任务的成本是另一个的 3 倍,结论就不一样了。
· 诚实:不在测试集上调参,例如 2015 年 ImageNet 竞赛有团队因为提交测试集次数过多被取消资格;不挑运气最好的一次结果,比如实际跑了 10 次却只报告其中最好的一次作为 pass@1;公开发布的系统要和报告分数的系统是同一个。
