管理评估指标

准备工作

在管理评估指标之前,请确保您具备以下条件:

  • 启用了 Agent Platform API 的 Google Cloud 项目。
  • (可选)如果使用 Agent Platform SDK,请按照 评估智能体 中的说明初始化客户端。

借助指标注册表 ,您可以定义、存储和管理智能体评估方式的可重复使用配置。您无需为每次测试运行配置标准,而是可以保存标准化指标(例如基于 LLM 的自定义安全评分准则或用于执行准确性的 Python 函数),并将其一致地应用于离线评估和持续在线监控。

指标类型

Agent Platform 支持注册表中的三种指标类型:

  • 预定义指标: 由 Google 提供的受管指标,包括用于评估任务成功率、工具使用质量和轨迹合规性的多轮评分器。
  • 自定义 LLM 指标: 自然语言评分准则,其中“Judge LLM”会根据您的具体标准和评分等级评估智能体的回答。
  • 自定义代码指标: 以编程方式验证智能体行为的 Python 函数,例如检查特定输出格式或验证工具响应。

除了 Google 提供的受管指标之外,您还可以使用自定义的注册指标进行评估。

预定义指标

Agent Platform 提供了一组用于评估智能体的预定义指标。这些指标由 Google 管理,涵盖单轮和多轮智能体交互的常见评估维度。

您可以使用 types.RubricMetric.METRIC_NAME 在 SDK 中访问预定义指标。如需详细了解所有受管 基于评分准则的指标(包括输入要求和输出格式),请参阅 基于评分准则的受管指标的详细信息

单轮智能体指标

以下指标用于评估单次智能体交互(一个提示和一个回答,可能包含中间工具调用):

指标 类型 SDK 访问器 说明
智能体最终回答质量 自适应评分准则 types.RubricMetric.FINAL_RESPONSE_QUALITY 全面评估,根据智能体的配置(系统说明和工具 声明)和用户提示自动生成评分准则标准。
智能体幻觉 静态评分准则 types.RubricMetric.HALLUCINATION 通过将回答拆解为最基本的“原子声明”并 验证每项声明是否有据可依(根据中间事件中的工具使用情况),来 检查真实性。
智能体工具使用质量 自适应评分准则 types.RubricMetric.TOOL_USE_QUALITY 评估工具选择的恰当性、参数 使用的正确性,以及是否遵循了指定的操作顺序。
安全 静态评分准则 types.RubricMetric.SAFETY 评估回答是否违反安全政策,包括 个人身份信息和人口统计数据、仇恨言论、危险内容、骚扰内容或 露骨色情内容。安全时返回 1,不安全时返回 0。

多轮智能体指标

以下指标用于评估多轮智能体对话。它们会分析完整的对话上下文,以评估智能体在多轮交互中的总体表现:

指标 类型 SDK 访问器 说明
智能体多轮任务成功率 自适应评分准则 types.RubricMetric.MULTI_TURN_TASK_SUCCESS 评估智能体是否成功实现了对话的目标 。此无参考指标侧重于 目标是否已实现,而不是如何实现
智能体多轮工具使用质量 自适应评分准则 types.RubricMetric.MULTI_TURN_TOOL_USE_QUALITY 评估多轮 对话期间进行的函数调用的质量。评估智能体是否在正确的时间使用 正确的参数调用了正确的工具。
智能体多轮轨迹质量 自适应评分准则 types.RubricMetric.MULTI_TURN_TRAJECTORY_QUALITY 评估对话的整体轨迹(路径)。与 任务成功率不同,此指标评估的是智能体如何实现 目标,即推理路径是否符合逻辑且高效。

在 SDK 中使用预定义指标

from vertexai import evals, types

# Run an evaluation with predefined metrics
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 results in Colab
result.show()

在控制台中管理指标

  1. 在 Google Cloud 控制台中,依次前往 Agent Platform > 智能体 > 评估 页面。

    前往“评估”

  2. 点击指标 标签页以查看注册表。

  3. 创建指标: 点击新建指标 ,然后选择自定义 LLM 指标自定义代码指标

  4. 定义评分准则: 对于 LLM 指标,使用示例 按钮可快速填充说明、标准(例如清晰度兴奋度 )和评分。

  5. 查看和修改: 点击任何指标名称以在只读 模式下查看其定义,或使用 更多选项 图标来 复制删除 资源。

使用 SDK 管理指标

您可以使用 Agent Platform SDK 以编程方式注册和使用指标。

注册自定义 LLM 指标

from vertexai import evals, types

# Define a metric with a specific rubric
tone_check_metric = types.LLMMetric(
        name="tone_check",
        prompt_template="Analyze the tone of the response ...",
        result_parsing_function="""
          import json, re
          def parse_results(responses):
              response = json.loads(responses[0])
              return {"score": response.get("score", 0.0),
                      "explanation": response.get("explanation", "default explanation")}
          """
)

# Register the custom metric
tone_check_metric_path = client.evals.create_evaluation_metric(
    metric=tone_check_metric
)

注册自定义代码指标

from vertexai import evals, types

# Define a metric with custom python code
accuracy_metric_code = """
def evaluate(instance: dict) -> float:
    agent_data = instance.get('agent_eval_data', {})
    turns = agent_data.get('turns', [])
    for turn in turns:
        ...
"""

accuracy_metric = types.CodeExecutionMetric(
    name="multi_turn_accuracy",
    custom_function=accuracy_metric_code
)

# Register the custom metric
accuracy_metric_path = client.evals.create_evaluation_metric(
    metric=accuracy_metric
)