Antes de começar
Antes de gerenciar as métricas de avaliação, verifique se você tem o seguinte:
- Um Google Cloud projeto com a API Agent Platform ativada.
- (Opcional) Se você estiver usando o SDK da Agent Platform, inicialize o cliente conforme descrito em Avaliar seus agentes.
O registro de métricas permite definir, armazenar e gerenciar configurações reutilizáveis para avaliar seus agentes. Em vez de configurar critérios para cada execução de teste, você pode salvar métricas padronizadas, como uma rubrica personalizada baseada em LLM para segurança ou uma função Python para precisão de execução, e aplicá-las de forma consistente a avaliações off-line e monitores on-line contínuos.
Tipos de métricas
A Agent Platform oferece suporte a três tipos de métricas no registro:
- Métricas predefinidas:métricas gerenciadas fornecidas pelo Google, incluindo classificadores multiturno para sucesso de tarefas, qualidade do uso de ferramentas e conformidade de trajetória.
- Métricas personalizadas de LLM:rubricas de linguagem natural em que um "LLM de avaliação" avalia a resposta de um agente com base nos seus critérios e escalas de classificação específicos.
- Métricas personalizadas de código:funções Python que validam programaticamente o comportamento do agente, como verificar um formato de saída específico ou verificar uma resposta de ferramenta.
Além das métricas gerenciadas fornecidas pelo Google, você pode usar métricas registradas personalizadas para avaliação.
Métricas predefinidas
A Agent Platform oferece um conjunto de métricas predefinidas para avaliar agentes. Essas métricas são gerenciadas pelo Google e abrangem dimensões de avaliação comuns para interações de agente de turno único e multiturno.
É possível acessar métricas predefinidas no SDK usando types.RubricMetric.METRIC_NAME. Para conferir todos os detalhes das métricas gerenciadas
baseadas em rubricas, incluindo requisitos de entrada e formatos de saída, consulte
Detalhes das métricas gerenciadas baseadas em rubricas.
Métricas de agente de turno único
As métricas a seguir avaliam uma única interação do agente (um comando e uma resposta, possivelmente com chamadas de ferramenta intermediárias):
| Métrica | Tipo | Acessador do SDK | Descrição |
|---|---|---|---|
| Qualidade da resposta final do agente | Rubrica adaptativa | types.RubricMetric.FINAL_RESPONSE_QUALITY |
Avaliação abrangente que gera automaticamente critérios de rubrica com base na configuração do agente (instruções do sistema e declarações de ferramentas) e no comando do usuário. |
| Alucinação de agentes | Rubrica estática | types.RubricMetric.HALLUCINATION |
Verifica a veracidade dos fatos segmentando a resposta em declarações menores e verificando se cada declaração é baseada no uso de ferramentas de eventos intermediários. |
| Qualidade do uso de ferramentas do agente | Rubrica adaptativa | types.RubricMetric.TOOL_USE_QUALITY |
Avalia a seleção de ferramentas apropriadas, o uso correto de parâmetros e a adesão à sequência de operações especificada. |
| Segurança | Rubrica estática | types.RubricMetric.SAFETY |
Avalia se a resposta viola as políticas de segurança, incluindo dados demográficos e PII, discurso de ódio, conteúdo perigoso, assédio ou conteúdo sexualmente explícito. Retorna 1 para seguro e 0 para não seguro. |
Métricas de agente multiturno
As métricas a seguir avaliam conversas de agentes multiturno. Elas analisam o contexto completo da conversa para avaliar a performance geral do agente em vários turnos:
| Métrica | Tipo | Acessador do SDK | Descrição |
|---|---|---|---|
| Sucesso da tarefa multiturno do agente | Rubrica adaptativa | types.RubricMetric.MULTI_TURN_TASK_SUCCESS |
Avalia se o agente atingiu o objetivo ou os objetivos da conversa. Essa métrica sem referência se concentra em se o objetivo foi alcançado, não como ele foi alcançado. |
| Qualidade do uso de ferramentas multiturno do agente | Rubrica adaptativa | types.RubricMetric.MULTI_TURN_TOOL_USE_QUALITY |
Avalia a qualidade das chamadas de função feitas durante uma conversa multiturno. Avalia se o agente chamou as ferramentas certas com argumentos corretos no momento certo. |
| Qualidade da trajetória multiturno do agente | Rubrica adaptativa | types.RubricMetric.MULTI_TURN_TRAJECTORY_QUALITY |
Avalia a trajetória geral (caminho) da conversa. Ao contrário do sucesso da tarefa, essa métrica avalia como o agente atingiu o objetivo, ou seja, se o caminho de raciocínio foi lógico e eficiente. |
Usar métricas predefinidas no 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()
Gerenciar métricas no console
No Google Cloud console, navegue até a página Agent Platform > Agentes > Avaliação.
Clique na guia Métricas para conferir o registro.
Criar uma métrica:clique em Nova métrica e selecione Métrica personalizada de LLM ou Métrica personalizada de código.
Definir rubricas:para métricas de LLM, use os botões Exemplo para preencher rapidamente instruções, critérios (por exemplo, Clareza ou Entusiasmo) e pontuações de classificação.
Visualizar e editar: clique em qualquer nome de métrica para conferir a definição no modo somente leitura ou use o ícone Mais opções more_vert para Duplicar ou Excluir o recurso.
Gerenciar métricas com o SDK
É possível registrar e usar métricas programaticamente usando o SDK da Agent Platform.
Registrar uma métrica personalizada de 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
)
Registrar uma métrica personalizada de código
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
)