如何评估 AI 智能体:测试集、评分器和回归检查

评估 AI 智能体的六步实用指南:从定义成功标准、基于真实失败案例构建测试集,到选择评分器、运行回归检查以及在生产环境中进行监控。

An AI agent evaluation detects an unapproved spare-part recommendation and verifies the corrected result after a fix.

每一款优秀的 AI 产品背后,都有一套完善的 AI 智能体评估流程,即评估(evals),它能及早发现错误,确保智能体正常运行。对于代表他人执行退款等高风险操作的 AI 智能体而言,评估至关重要。

构建这一流程需要一定的技术知识和数据分析能力,但远没有听起来那么可怕或难以上手。为了帮助你入门,我们整理了评估 AI 智能体的六个实用步骤,以及会破坏这一流程的常见误区。

评估 AI 智能体意味着什么?

评估 AI 智能体,是指衡量其能否正确完成任务,以及其决策是否符合组织的要求。具体而言,AI 智能体评估(即evals)是一系列具体指标,帮助组织判断智能体是否足够可靠,能够胜任其预定角色。

设想一家制造工厂中的 AI 采购智能体,负责检查备件库存并准备补货申请。如果某个已批准的零件缺货,或供应商信息已过时,智能体会标记该问题,还是推荐未经批准的替代品?

而如果你为了解决这个问题修改了它的系统提示词,又怎么知道自己没有引入新的问题?

如果没有评估,产品经理基本上只能靠猜。因此,评估提供了一种反馈信号,可用于衡量性能、发现反复出现的问题,并更有把握地测试变更。

具体而言,智能体评估可以考察一次运行的多个方面:

  • 最终结果的质量
  • 智能体所使用的信息
  • 它调用的工具
  • 它是否遵守了约束其行为的规则

常见的 AI 智能体评估指标

评估同时涉及定性数据和定量数据。定性评估帮助你了解发生了什么以及原因,包括人工审查智能体的决策。定量评估则将这些观察结果转化为可衡量的信号,例如统计特定失败模式出现的频率,或计算任务成功率。

以下是基本的 AI 智能体评估指标:

  • 任务成功率衡量智能体是否达成了预期结果,通常以产生有效结果的运行次数占比来表示。
  • 操作正确性衡量智能体是否恰当地使用了工具、选择了有效的参数并遵守了权限。
  • 回答质量评估最终输出是否准确、完整且有用,可能包括事实正确性、对指令的遵循程度,以及智能体是否以可用信息支撑其决策。
  • 可靠性衡量智能体在多次重复试验、不同输入和边缘情况下的一致性。
  • 成本与延迟衡量获得成功结果所需的资源,包括执行时间、Token 消耗量和工具调用次数。

根据衡量对象的不同,评估可以考察智能体的端到端性能、执行轨迹,或工具调用、检索步骤等单个组件。

第 1 步:明确怎样才算一次成功的智能体运行

首先,明确描述智能体应当完成什么,即产品需求。这听起来显而易见,实际上却可能出乎意料地困难。这种现象甚至有一个专门的名称:规范差距(specification gap)。

我们的高级数据科学家 Andrey Khomutov 介绍了应对方法:

“先问两个问题:‘怎样才算完成了任务?’以及‘什么情况会让一次看似成功的运行变得不可接受?’

从技术角度来看,对于智能体而言,这意味着既要检查结果,也要检查智能体是如何得出结果的。”

智能体可能会通过访问泄露的标准答案得出正确答案,或在完成任务的过程中执行未经授权的操作。Khomutov 指出,答案泄露和评估期间的不安全操作都是不能只看最终答案的具体原因。

“我预计轨迹检查将成为智能体评估套件的标准组成部分,而不只是在结果看起来可疑时才做的事情,”他补充道。

接下来,请领域专家来验证你的成功标准。具备该领域实践经验的人能够判断我们为 AI 智能体设定的条件是否真正反映了成功的结果。

第 2 步:基于真实任务和失败案例构建测试集

观察智能体的实际行为,了解良好表现和糟糕表现分别是什么样子。不要急于一开始就仅凭自己对可能出错之处的设想生成几十个测试。

Parlance Lab 的机器学习工程师 Hamel Husain 与机器学习系统及应用 AI 评估研究员 Shreya Shankar 建议从错误分析入手,这是一种借鉴自机器学习和数据科学的技术。该过程首先对智能体的执行追踪记录进行定性分析,这些记录展示了用户的输入、工具调用、检索到的信息以及智能体的输出。

  1. 审查单条追踪记录并标注错误(开放式编码)。请领域专家检查智能体的运行情况,并简要记录出现了什么问题。重点关注第一个有意义的错误。
  2. 将观察结果归类为失败模式(主轴编码)。积累足够多的记录后,使用 LLM 为相似的错误建议分类,例如推荐了不兼容的零件、库存检索不准确,以及转交人工处理失败等。
  3. 统计出现次数。将每条观察结果归入一个类别,然后使用电子表格或数据透视表计算每种失败模式出现的频率。
  4. 确定处理的优先级,同时考虑频率和严重程度。
  5. 将重要的失败转化为测试用例。保存相关的输入、初始条件、预期结果和评分标准,以便再次针对同一场景测试智能体。

应该检查多少条追踪记录?大约 100 条,但并没有一个神奇的数字。一旦达到理论饱和,即审查更多追踪记录已无法揭示有意义的新失败模式时,就可以提前停止。

应用还没有上线?合成示例可以帮助构建初始测试集,不过一旦有了真实用户数据,就应尽快用它来完善测试集。

基准测试在 AI 智能体评估中的应用

除了创建自己的测试用例,你还可以使用现有的标准化评估任务集(即基准测试)来评估智能体的能力。

但基准测试并非万无一失。SWE-bench 审计、Epoch AI 的基准测试审查,以及TheoPhysEval 中最初被拒绝的正确答案都表明,存在缺陷的任务或预期答案可能会扭曲评估结果。

Khomutov 建议,应选择与你所在领域相关的最新基准测试;在将分数视为智能体性能的可靠证据之前,先调查那些出人意料的通过或失败。

第 3 步:在可重复的测试环境中运行智能体

可重复的测试环境是一种受控设置,你可以在其中让 AI 智能体在相同的初始条件下运行相同的测试用例,并比较结果。它可以包括一个存放测试用例的文件夹、一个运行智能体的 Python 脚本,或一组用于评估结果的检查。

你可以先将具有代表性的输入存储为 JSON 文件,然后使用 Python 脚本执行智能体的工作流,并通过断言检查其输出。对于我们制造工厂的库存智能体,可重复的测试环境可能如下所示:

要搭建可重复的测试环境,请按以下步骤操作:

  1. 保存具有代表性的输入。按照应用在生产环境中接收数据的相同结构,存储实际事件或测试用例。在我们的场景中,你需要将一条包含机器 ID、所需备件和维护日期的维护请求保存为 JSON 文件,同时保存库存和已批准零件数据的快照。
  2. 执行工作流。让每个输入都经过智能体处理,包括其检索步骤、工具调用和响应生成。
  3. 记录结果和追踪记录。捕获最终输出和相关的中间操作(例如库存查询),这样你不仅能看到智能体是否失败,还能看到它在哪里失败。
  4. 根据失败的严重程度、频率和修复难度重复运行用例。LLM 应用具有非确定性(相同的输入可能产生不同的结果),因此一次成功的运行并不能保证下一次也会成功。请报告成功试验的比例,并检查失败情况。

对于后者,Khomutov 建议衡量 pass@1(智能体单次尝试成功的频率)和 pass@k(在指定次数的尝试中至少成功一次的概率)。如果报告 pass@k,请注明尝试次数,因为在多个答案中产生一个正确答案,并不意味着智能体知道该选择哪一个。

随着应用规模扩大,可以使用 pytest 等测试框架来组织和运行测试,并考虑将大型测试数据集和结果存储在数据库中。

第 4 步:为每项检查选择合适的评分器

评分器(也常被称为评估器)是一种机制,其形式可以是一段代码、由评分细则引导的 LLM,或人工审核员,用于根据既定标准检查智能体的输出或操作。评分器会返回通过/失败判定,并给出指明相关证据的解释。

提示:评分细则是一组标准和说明,用于定义什么才算正确或可接受的结果。

合适的评分器类型取决于你要验证的内容。以下是三种方法的比较:

评分器

最适用于

示例

主要局限

基于代码

精确、可验证的条件

推荐的备件是否在已批准的兼容清单上?

无法可靠地评估所有主观决策

LLM 作为评判者

依赖上下文的评估

智能体是否解释了无法推荐替代件的原因?

其判断可能出错或不一致

人工

需要领域专业知识的场景及不确定的案例

维护经理是否认为智能体的建议恰当?

大规模应用成本高昂

有时,同一次运行的不同方面可能需要不同的评估方法,因此你可能需要组合使用多种评分器。

如何组合评分器?

你需要问:“结果能否根据已知规则或预期值进行验证,还是需要类似人类的判断?”

  • 如果可以精确验证结果,就从基于代码的评分器入手。基于代码的评分器还可以验证结构化输出、有效字段值、工具参数或数据库的最终状态。
  • 如果检查需要解读上下文,请采用LLM 作为评判者的方式。
  • 对于特定领域或存在争议的决策,请使用人工审核员。

重要提示!LLM 评分器可能会误解证据,或错误地应用评分细则。因此还需要一个额外的评估步骤:根据人工判断进行校准。

根据人工判断校准 LLM 评分器。

从本质上讲,校准需要领域专家评估智能体的实际运行情况。然后,专家将自己的判断与 LLM 的判断进行比较,并根据分歧完善评分细则。

以下是五步评分器校准流程:

  1. 收集智能体输入、输出及相关追踪记录的示例。
  2. 请领域专家独立评估每个示例是否符合评估标准。
  3. 针对这些示例运行 LLM 评分器。
  4. 比较人工判断与模型判断。
  5. 调查存在分歧之处并完善评分器的评分细则,然后再在新示例上进行测试。

Khomutov 还强调了单独测试 LLM 评分器一致性的重要性:

“多次向它提供完全相同的已保存运行记录和文件,而不重新运行智能体。这样你就能将智能体工作中的差异与评分中的差异区分开来。”

如果同一输出得到了不同的判定,不要认为每次分数变化都源于智能体。相反,应检查混淆矩阵,它展示了评分器在哪些情况下正确识别了错误、遗漏了错误,或错误地将可接受的输出标记为有问题。

人工审核对于建立参考判断、解决有争议的案例,以及发现现有评分器在设计时未考虑检测的新失败模式,仍然至关重要。

第 5 步:比较版本并运行回归检查

假设错误分析显示,你的库存智能体经常推荐未经批准的替换零件。于是你修改了它的系统提示词,要求进行明确的兼容性检查。原先失败的用例现在通过了。但你怎么知道这一修改没有影响其他任务?

这正是回归测试的用武之地。

回归测试是指在修改智能体的提示词、模型或工作流后,重新运行之前已成功的测试用例,以确保修改没有引入新的失败。

  1. 使用测试集中保存的输入复现原始失败。
  2. 对提示词、模型或工作流进行有针对性的修改。
  3. 重新运行失败的测试,检查问题是否已解决。
  4. 运行其他测试,确认此次更改没有破坏之前正常的行为。
  5. 检查结果,并排查任何新出现的失败。

使用相同的测试用例和评分标准比较基线智能体与更新后的智能体,以获得准确的结果。

第 6 步:在生产环境中监控 AI 智能体的性能

部署应用后,智能体评估并不会就此结束。正如 Husain 和 Shankar 所解释的,开发阶段使用的评估器同样可以基于真实的生产数据运行,以衡量智能体随时间推移的表现。

这被称为在线评估,它是更广泛的生产监控流程的一部分,有助于发现反复出现的失败以及此前未知的失败。

这一过程是迭代式的,包含四项相辅相成的活动:

  • 在生产轨迹上运行经过校准的 LLM 评判器。对真实的智能体交互进行抽样,并应用你已对照人工判断验证过的评估器。
  • 持续跟踪失败率。利用错误分析阶段确立的失败类别,对反复出现的问题进行量化。
  • 继续人工审查轨迹。自动评分器只能检测出其设计时要识别的问题。请人工检查真实智能体交互的样本,以发现新的错误或不寻常的用户请求。
  • 使用 A/B 测试衡量业务成果(仅在适用时)。使用任务完成情况、用户满意度和解决时间等指标,比较不同的提示词、模型或工作流。这一过程有助于判断某项更改除了能通过单项测试之外,是否真正改善了实际的产品体验。

需要特别注意的一点是:评估不必打磨得尽善尽美,只要足以帮助改进产品即可。

AI 智能体评估中的常见误区

  • 评估不过是单元测试。并非如此;单元测试是小型的自动化检查,只是评估的一部分。评估还包括定性错误分析、人工判断、生产监控,以及用于衡量应用质量的实验。
  • 评估平台可以替你包办一切。现成的工具可以自动执行部分检查,但无法判断哪些失败模式(错误类型或不良的智能体行为)对你的产品至关重要。
  • 可以让 LLM 评估一切。这是一个严重的误区。由人主导的错误分析和评分器校准依然必不可少,因为 LLM 缺乏发现所有问题所需的业务背景。
  • A/B 测试或直接使用智能体可以取代评估。这种观点是错误的。A/B 测试可以显示哪个版本在选定指标上表现更好,但仅凭其本身无法解释背后的问题。

AI 智能体评估常见问题解答

1. AI 智能体评估与 LLM 评估有何区别?

LLM 评估衡量语言模型执行特定任务的表现,例如回答问题、总结文档或提取信息。AI 智能体评估则评估一个能够独立执行多个步骤来完成任务的系统。

与典型的 LLM 评估不同,智能体评估既考察最终结果,也考察为实现该结果所采取的一系列操作,包括工具调用、决策以及对预定义规则的遵循情况。

2. AI 智能体评估的关键指标

AI 智能体评估指标大致分为两类:

  • 技术性能指标:任务成功率、操作正确性、回答质量、可靠性(pass@1 和 pass@k)、延迟、Token 用量,以及每个成功任务的成本。
  • 业务和用户体验指标:客户满意度(CSAT)、问题解决率、升级率、转化率、任务完成时间,以及与智能体角色相关的其他成果。

例如,客服智能体可以按问题成功解决情况和客户满意度进行评估,而 AI 采购智能体则可以按补货请求准确率、审批通过率和采购周期时长来衡量。

合适的指标应同时反映智能体执行任务的可靠程度,以及其工作是否改善了业务成果。

3. 评估 AI 智能体的最佳工具有哪些?

常见选择包括:

  • 测试框架:Python 断言和 pytest 适用于运行可重复的测试用例并检查确切条件,例如智能体是否选择了正确的工具,或是否返回了有效的零件 ID。
  • AI 智能体评估框架:DeepEval 和 Google 的 agent-eval 工具包支持更复杂的评估,包括执行轨迹、基于 LLM 的评分器以及自动化回归测试。
  • 评估与可观测性平台:LangSmith、Arize Phoenix 和 MLflow 可帮助团队检查智能体行为、管理评估数据集、比较智能体版本,并监控生产环境中的性能。

4. 如何自动化 AI 智能体评估?

你可以通过构建可重复的测试、应用自动评分器,并将这些检查集成到开发和生产工作流中,来实现 AI 智能体评估的自动化:

  1. 创建评估数据集:收集具有代表性的用户任务、预期结果、已知失败案例以及智能体执行轨迹。纳入边缘情况,例如工具调用失败、信息缺失和未经授权的操作。
  2. 自动执行测试和评分:使用 pytest 或 DeepEval 等框架运行测试用例,并应用基于代码的检查或 LLM 评分器。在依赖 LLM 评分器给出的分数之前,先对照人工判断对其进行验证。
  3. 将评估集成到 CI/CD:当开发者更新智能体的提示词、模型、工具或工作流时,自动重新运行回归测试。将结果与基线进行比较,并设定质量阈值,在关键检查未通过时阻止发布。
  4. 应用经过校准的评分器评估抽样的生产轨迹,跟踪失败率和其他性能指标,并通过人工审查排查新出现的错误。