分析评估结果和失败集群

准备工作

如需查看和分析评估结果,请确保您具备以下条件:

  • 按照评估智能体运行离线评估中的说明运行至少一次评估。
  • 如果运行离线评估,则为评估输出配置了 Cloud Storage 存储桶。
  • (可选)如果使用 SDK 获取结果,请确保您的环境已通过身份验证。

运行评估后,Agent Platform 会提供诊断工具,帮助您确定失败的根本原因。您可以从三个层面分析结果:信息中心内的汇总趋势、故障集群中的语义组,以及各个轨迹中的精细逻辑路径。

在线监控器的评估信息中心

对于具有有效在线监控器的代理,您可以在信息中心内查看汇总的性能趋势:

  1. 在 Google Cloud 控制台中,前往 Agent Platform > 智能体页面。
  2. 在左侧导航菜单中,选择部署
  3. 选择您的代理。

    转到部署

  4. 点击信息中心标签页,然后选择评估子部分。

  • 效果趋势:直观呈现任务成功率工具使用质量等指标的分数在不同智能体版本或时间范围内的变化情况。
  • 零状态:对于没有有效在线监控器的代理,此视图可识别覆盖范围缺口,并提供开始评估的号召性用语。

使用 SDK 查看评估结果

您可以使用 Agent Platform SDK 以编程方式访问评估结果。 该 SDK 为 Colab 和 Jupyter 笔记本环境提供内置的交互式可视化图表,可同时显示汇总摘要指标和每个病例的详细结果。

运行评估后,对结果对象调用 .show(),以直接在笔记本中呈现交互式报告:

from vertexai import evals, types

# Run an evaluation
result = client.evals.evaluate(
    dataset=eval_dataset,
    metrics=[
        types.RubricMetric.FINAL_RESPONSE_QUALITY,
        types.RubricMetric.TOOL_USE_QUALITY,
        types.RubricMetric.HALLUCINATION,
        types.RubricMetric.SAFETY,
    ],
)

# Visualize aggregate and per-case results in your notebook
result.show()

可视化图表包括:

  • 摘要指标:所有评估情形的汇总得分,包括每项指标的平均得分和通过率。
  • 每个用例的结果:各个评估用例的得分,您可以展开这些得分以检查详细结果。

以下示例展示了 result.show() 中的摘要指标:

评估摘要报告,其中显示了每个指标的平均得分和标准差。

您可以展开各个评估案例,查看每个指标的得分、评分准则判定结果和理由:

每个用例的评估结果,其中显示了指标得分以及各个评分准则的通过或未通过判定结果和说明。

解读评估结果

预定义指标会以两种格式返回结果,具体取决于指标类型:

  • 自适应评分标准指标会根据代理的配置和用户提示自动生成评分标准。每个评分准则都会获得单独的通过未通过判定结果,并附有自然语言推理,用于解释评判 LLM 的推理过程。总得分表示通过率,即获得通过判定的评分标准所占的比例。
  • 静态评分准则指标使用一组固定的评估标准。例如,幻觉检测功能会将回答分割为原子声明,并根据工具使用证据检查每个声明。针对个人身份信息、仇恨言论、危险内容和其他政策违规行为的安全检查。这些指标会返回一个介于 0 到 1 之间的数值分数。

识别和确定故障的优先级

查看评估结果后,下一步是找出系统性故障模式并对其进行分诊,以改进客服。Agent Platform 提供自动损失分析功能,该功能可分析基于评分准则的指标的通过或失败信号,将失败归类为预定义的损失模式,并将其分组为语义聚类。这有助于您了解智能体不仅失败了,还了解了失败的原因和方式。

在控制台中访问故障集群

  1. 前往 Agent Platform > 智能体 > 评估页面。
  2. 选择评估标签页。
  3. 点击已完成的评估运行的名称以打开报告。
  4. 如果评估检测到集群,则会在报告的 Failure Clusters(故障集群)部分中显示这些集群。

使用 SDK 生成失败集群

您还可以使用 generate_loss_clusters 方法以编程方式生成故障集群:

# Generate failure clusters from evaluation results
loss_clusters = client.evals.generate_loss_clusters(
    eval_result=result,
)

# Visualize the loss pattern analysis in your notebook
loss_clusters.show()

以下示例展示了 loss_clusters.show() 中的损失模式分析:

损失模式分析报告,显示按类别分组的故障集群,并提供示例场景和理由。

流失模式分类

自动损失分析会将每次故障归类为一种或多种预定义的损失模式。这些模式旨在提供具体可行的建议,直接对应于您可以改进的代理的具体方面。

我们提供两种预定义的分类,每种分类都与特定指标相对应:

代理任务成功分类

此分类法与代理多轮任务成功情况指标 (multi_turn_task_success_v1) 搭配使用。它涵盖了幻觉、指令遵循、工具调用、工具输出处理和工具质量方面的高级代理行为失败:

类别 缺失模式 说明
幻觉 动作幻觉 智能体声称已完成某项操作,但未执行必要的工具调用。
缺失信息幻觉 智能体编造了用户查询或工具输出中不存在的细节(例如值、事实或日期)。
工具或功能出现幻觉 智能体声称拥有其不具备的工具或功能。
遵循说明 违反限制条件 代理执行任务,但违反了明确的用户限制(例如格式设置规则或否定限制)。
无用的动作(踢空) 智能体采取了无关的操作,而不是说明无法使用现有工具完成任务。
执行不完整 智能体部分完成了任务,但过早停止或针对明确请求的步骤请求了不必要的权限。
过度弃踢 智能体拒绝执行任务,声称缺少其实际上拥有的工具或能力。
工具调用 工具选择错误 智能体从可用选项中选择了错误的工具。
语义上不正确的工具参数 工具调用在语法上有效,但参数值中包含逻辑或语义错误。
语法不正确的工具调用 工具调用存在语法错误、缺少必需参数或实参值无效。
工具输出处理 工具输出处理不正确 智能体接收到有效的工具输出,但提取、处理或解读信息时出现错误。
工具质量 工具输出不足 工具执行成功,但返回的数据不足或缺少代理继续运行所需的数据。
工具故障 该工具因身份验证失败、超时或内部错误等基础架构问题而失败。

工具使用质量分类

此分类法与代理多轮工具使用质量指标 (multi_turn_tool_use_quality_v1) 搭配使用。它专门侧重于工具调用正确性和工具响应处理:

类别 缺失模式 说明
幻觉 参数值出现幻觉 对于用户未提供或无法从上下文推导出的参数,代理会编造一个特定值。
工具幻觉 智能体尝试调用其定义的工具集中不存在的函数。
工具调用 未能设置参数 代理省略了满足用户限制条件所需的参数,默认采用了一个意外的值。
参数数据类型不正确 代理为参数提供的数据类型值有误(例如,需要整数时却提供了字符串)。
参数映射不正确 代理为错误的参数分配了值(例如,交换了开始日期和结束日期)。
参数值不正确 代理提供的参数值在逻辑上或事实上不正确,或者未能应用必要的数据转换。
工具选择错误 智能体从其可用工具集中选择了错误的函数。
工具调用语法无效 智能体生成的函数调用存在语法错误,导致无法解析或执行。
不存在的形参 代理包含的参数实参未在工具的签名中定义。
省略了必需的工具调用 智能体未能执行必要的功能,无论是直接回答、跳过复合请求的一部分,还是跳过前提步骤。
弃踢不足 当智能体应以自然语言回答(例如要求澄清或拒绝超出范围的请求)时,却强制进行工具调用。
工具响应 工具响应不相关 工具成功执行,但返回的数据与用户的特定查询无关。
工具错误 由于外部问题(例如 API 中断或权限无效),该工具返回了明确的错误或失败状态。

使用以下工作流程可系统地对评估失败情况进行分类:

  1. 首先查看汇总指标,以确定评估数据集中得分最低的指标。
  2. 深入分析每个测试用例的结果,找出失败的具体评估用例。
  3. 生成故障聚类,以识别故障中的系统性损失模式。
  4. 深入分析轨迹,找到发生故障的确切转弯或工具调用。在控制台中,依次前往 Agent Platform > 智能体 > 部署,选择您的智能体,然后打开轨迹标签页。选择轨迹以查看完整的对话记录,以及模型输入、工具调用和回答的确切顺序。
  5. 确定根本原因 - 使用损失模式类别来确定问题是提示问题、工具配置问题还是数据问题。
  6. 针对智能体的系统指令、工具定义或少样本示例应用有针对性的修复
  7. 重新运行评估并比较得分,以验证改进效果。