Antes de comenzar
Antes de administrar las métricas de evaluación, asegúrate de tener lo siguiente:
- Un Google Cloud proyecto 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 a 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 a las evaluaciones sin conexión y a los supervisores en línea continuos.
Tipos de métricas
Agent Platform admite tres tipos de métricas en el registro:
- Métricas predefinidas: Métricas administradas que proporciona Google, incluidos evaluadores de varios turnos para el éxito de la tarea, la calidad del uso de herramientas y el cumplimiento de la trayectoria.
- Métricas de LLM personalizadas: Rúbricas de lenguaje natural en las que un "LLM de juez" evalúa la respuesta de un agente en función de tus criterios y escalas de calificación específicos.
- Métricas de código personalizadas: 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 y abarca 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 todas 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 | Accesor 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 veracidad segmentando la respuesta en afirmaciones atómicas y verificando que cada afirmación se base en el uso de la herramienta de 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 infringe 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 sexualmente explícito. Devuelve 1 para seguro y 0 para inseguro. |
Métricas de agentes de varios turnos
Las siguientes métricas evalúan las conversaciones de 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 | Accesor 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ó correctamente el objetivo o los objetivos de la conversación. Esta métrica sin referencias 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 adecuadas 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 general (ruta) de la conversación. A diferencia del éxito de la tarea, esta métrica evalúa cómo el agente logró 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
En la Google Cloud consola, navega a la página Agent Platform > Agents > Evaluation.
Haz clic en la pestaña Métricas para ver el registro.
Crea una métrica: Haz clic en Nueva métrica y selecciona Métrica de LLM personalizada o Métrica de código personalizada.
Define rúbricas: Para las métricas de LLM, usa los botones Ejemplo para propagar rápidamente instrucciones, criterios (por ejemplo, Claridad o Entusiasmo) y puntuaciones de calificación.
Ver y editar: Haz clic en cualquier nombre de métrica para ver su definición en modo de solo lectura o usa el ícono Más opciones more_vert 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
)