导语
如何自信地发布AI Agent?没有好的评估(Evals),团队很容易陷入"头痛医头、脚痛医脚"的被动循环——问题总是在生产环境中才暴露,修复一个bug又引发了新的问题。
评估的基本结构
任务(Task): 一个单独的测试,包含明确的输入和成功标准
尝试(Trial): 对一个任务的单次尝试。由于模型输出存在随机性,通常会运行多次尝试以获得更一致的结果
评分器(Grader): 用于对Agent性能某个方面进行评分的逻辑。一个任务可以有多个评分器
记录(Transcript): 一次尝试的完整记录,包括输出、工具调用、思考过程、中间结果等
结果(Outcome): 尝试结束时环境的最终状态
评估框架(Evaluation harness): 运行端到端评估的基础设施
Agent框架(Agent harness): 使模型能作为Agent行动的系统
评估套件(Evaluation suite): 为衡量特定能力或行为而设计的一系列任务集合
为什么要构建评估?
早期: 评估能迫使团队明确定义"成功"的标准,解决对需求的模糊理解
后期: 评估有助于维持一致的质量标准,防止产品质量下滑
模型升级: 有评估的团队能在几天内完成测试、调优和升级,而没有评估的团队则可能需要数周
免费收益: 一旦建立评估,就能免费获得基线和衰退测试
评分器类型
1. 基于代码的评分器
方法: 字符串匹配、单元测试、静态分析、结果验证、工具调用验证
优点: 快速、廉价、客观、可复现、易于调试
缺点: 对于有效的变体可能过于脆弱,缺乏细微差别判断
2. 基于模型的评分器
方法: 基于评分规则(rubric)的打分,自然语言断言、成对比较、多评委共识
优点: 灵活、可扩展、能捕捉细微差别、处理开放式任务
缺点: 非确定性、比代码评分器昂贵、需要与人工评分器校准
3. 人工评分器
方法: 领域专家(SME)审查、众包判断、抽样检查、A/B测试
优点: 黄金标准质量,能匹配专家用户的判断
缺点: 昂贵、缓慢、需要规模化的人类专家
能力评估 vs. 衰退评估
能力评估(Capability evals): 回答"这个Agent擅长做什么?"。初始通过率应较低,为团队设定一个"需要攀登的高山"
衰退评估(Regression evals): 回答"Agent是否还能处理好以前的任务?"。通过率应接近100%,防止产品质量倒退
针对不同类型Agent的评估方法
1. 编码Agent
-基准**: SWE **-bench Verified、Terminal-Bench
方法: 单元测试 + LLM评分规则
2. 对话Agent
基准: τ2-Bench
方法: 多维度成功评估(状态+轮次+语气)
3. 研究Agent
基准: BrowseComp
方法: Groundedness + Coverage + Source quality
4. 计算机使用Agent
基准: WebArena、OSWorld
方法: 真实或沙盒环境评估
如何看待评估中的不确定性?
pass@k: 衡量Agent在k次尝试中至少有一次成功的概率
pass^k: 衡量k次尝试全部成功的概率
从0到1:构建优秀Agent评估的路线图
第一阶段:收集初始评估数据集
步骤0: 尽早开始,从20-50个源自真实失败案例的简单任务开始
步骤1: 从手动测试开始,转化为测试用例
步骤2: 编写无歧义的任务和参考解决方案
步骤3: 构建平衡的问题集
第二阶段:设计评估框架和评分器
步骤4: 构建稳健的评估框架和稳定的环境
步骤5: 深思熟虑地设计评分器
第三阶段:长期维护和使用评估
步骤6: 检查记录(Transcripts)
步骤7: 监控能力评估的饱和度
步骤8: 通过开放贡献和维护保持评估套件的健康
评估如何与其他方法协同?
结论
没有评估的团队会陷入被动修复的泥潭。而尽早投入评估的团队则会发现开发速度在加快,因为失败案例变成了测试用例,测试用例防止了衰退,而指标取代了猜测。
原文: https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents