Administra las métricas de evaluación

Antes de comenzar

Antes de administrar las métricas de evaluación, asegúrate de tener lo siguiente:

  • Un proyecto Google Cloud con la API de Agent Platform habilitada
  • (Opcional) Si usas el SDK de Agent Platform, inicializa el cliente como se describe en Evalúa tus agentes.

El Registro de métricas te permite definir, almacenar y administrar configuraciones reutilizables para evaluar tus agentes. En lugar de configurar criterios para cada ejecución de prueba, puedes guardar métricas estandarizadas, como una rúbrica personalizada basada en LLM para la seguridad o una función de Python para la precisión de la ejecución, y aplicarlas de manera coherente tanto a las evaluaciones sin conexión como a los monitores en línea continuos.

Tipos de métricas

Agent Platform admite tres tipos de métricas en el registro:

  • Métricas predefinidas: Son métricas administradas que proporciona Google, incluidos los evaluadores de varios turnos para el éxito de la tarea, la calidad del uso de herramientas y el cumplimiento de la trayectoria.
  • Métricas personalizadas de LLM: Rúbricas de lenguaje natural en las que un "LLM de juez" evalúa la respuesta de un agente según tus criterios específicos y escalas de calificación.
  • Métricas de código personalizadas: Son funciones de Python que validan de forma programática el comportamiento del agente, como verificar un formato de salida específico o verificar la respuesta de una herramienta.

Además de las métricas administradas que proporciona Google, puedes usar métricas registradas personalizadas para la evaluación.

Métricas predefinidas

Agent Platform proporciona un conjunto de métricas predefinidas para evaluar agentes. Google administra estas métricas, que abarcan dimensiones de evaluación comunes para las interacciones de agentes de un solo turno y de varios turnos.

Puedes acceder a las métricas predefinidas en el SDK con types.RubricMetric.METRIC_NAME. Para obtener todos los detalles de las métricas administradas basadas en rúbricas, incluidos los requisitos de entrada y los formatos de salida, consulta Detalles de las métricas administradas basadas en rúbricas.

Métricas de agentes de un solo turno

Las siguientes métricas evalúan una sola interacción del agente (una instrucción y una respuesta, posiblemente con llamadas a herramientas intermedias):

Métrica Tipo Accessor del SDK Descripción
Calidad de la respuesta final del agente Rúbrica adaptable types.RubricMetric.FINAL_RESPONSE_QUALITY Evaluación integral que genera automáticamente criterios de rúbrica en función de la configuración del agente (instrucciones del sistema y declaraciones de herramientas) y la instrucción del usuario.
Alucinación del agente Rúbrica estática types.RubricMetric.HALLUCINATION Verifica la facticidad segmentando la respuesta en afirmaciones atómicas y verificando que cada afirmación se base en el uso de la herramienta de los eventos intermedios.
Calidad del uso de herramientas del agente Rúbrica adaptable types.RubricMetric.TOOL_USE_QUALITY Evalúa la selección de herramientas adecuadas, el uso correcto de los parámetros y el cumplimiento de la secuencia de operaciones especificada.
Seguridad Rúbrica estática types.RubricMetric.SAFETY Evalúa si la respuesta incumple las políticas de seguridad, incluidos los datos demográficos y la PII, la incitación al odio o a la violencia, el contenido peligroso, el hostigamiento o el contenido sexual explícito. Devuelve 1 si es seguro y 0 si no lo es.

Métricas de agentes de varios turnos

Las siguientes métricas evalúan las conversaciones de los agentes de varios turnos. Analizan el contexto completo de la conversación para evaluar el rendimiento general del agente en varios turnos:

Métrica Tipo Accessor del SDK Descripción
Éxito de la tarea en varios turnos del agente Rúbrica adaptable types.RubricMetric.MULTI_TURN_TASK_SUCCESS Evalúa si el agente logró los objetivos de la conversación. Esta métrica sin referencia se enfoca en si se logró el objetivo, no en cómo se logró.
Calidad del uso de herramientas en varios turnos del agente Rúbrica adaptable types.RubricMetric.MULTI_TURN_TOOL_USE_QUALITY Evalúa la calidad de las llamadas a funciones realizadas durante una conversación de varios turnos. Evalúa si el agente llamó a las herramientas correctas con argumentos correctos en el momento adecuado.
Calidad de la trayectoria de varios turnos del agente Rúbrica adaptable types.RubricMetric.MULTI_TURN_TRAJECTORY_QUALITY Evalúa la trayectoria (ruta) general de la conversación. A diferencia de Task Success, esta métrica evalúa cómo el agente alcanzó el objetivo, es decir, si la ruta de razonamiento fue lógica y eficiente.

Usa métricas predefinidas en el 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()

Administra métricas en la consola

  1. En la consola de Google Cloud , navega a la página Agent Platform > Agents > Evaluation.

    Ir a Evaluación

  2. Haz clic en la pestaña Métricas para ver el registro.

  3. Crea una métrica: Haz clic en Métrica nueva y selecciona Métrica personalizada de LLM o Métrica de código personalizada.

  4. Define rúbricas: Para las métricas de LLM, usa los botones de Ejemplo para completar rápidamente las instrucciones, los criterios (por ejemplo, Claridad o Entusiasmo) y las calificaciones.

  5. Ver y editar: Haz clic en el nombre de cualquier métrica para ver su definición en modo de solo lectura o usa el ícono de Más opciones para Duplicar o Borrar el recurso.

Administra métricas con el SDK

Puedes registrar y usar métricas de forma programática con el SDK de Agent Platform.

Registra una métrica de LLM personalizada

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
)

Registra una métrica de código personalizada

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
)