准备工作
在管理评估指标之前,请确保您具备以下条件:
- 启用了 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()
在控制台中管理指标
在 Google Cloud 控制台中,依次前往 Agent Platform > 智能体 > 评估 页面。
点击指标 标签页以查看注册表。
创建指标: 点击新建指标 ,然后选择自定义 LLM 指标 或自定义代码指标 。
定义评分准则: 对于 LLM 指标,使用示例 按钮可快速填充说明、标准(例如清晰度 或兴奋度 )和评分。
查看和修改: 点击任何指标名称以在只读 模式下查看其定义,或使用 更多选项 more_vert 图标来 复制 或 删除 资源。
使用 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
)