Antes de começar
Antes de gerenciar as métricas de avaliação, verifique se você tem o seguinte:
- Um projeto do Cloud de Confiance by S3NS com a API Agent Platform ativada.
- (Opcional) Se 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 a avaliação dos 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 maneira consistente a avaliações off-line e monitores on-line contínuos.
Tipos de métricas
A Agent Platform é compatível com três tipos de métricas no registro:
- Métricas predefinidas:métricas gerenciadas fornecidas pelo Google, incluindo avaliadores multiturno para sucesso da tarefa, qualidade do uso de ferramentas e conformidade da 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 de código personalizadas:funções Python que validam programaticamente o comportamento do agente, como verificar um formato de saída específico ou uma resposta da 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 comuns de avaliação 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 com base em rubricas, incluindo requisitos de entrada e formatos de saída, consulte Detalhes das métricas gerenciadas com base em rubricas.
Métricas de agente de uma única interação
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 uma delas tem embasamento no uso de ferramentas em 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 políticas de segurança, incluindo PII e dados demográficos, 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 com agentes multiturno. Eles analisam o contexto completo da conversa para avaliar a performance geral do agente em várias interações:
| 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 alcançou o objetivo ou os objetivos da conversa. Essa métrica sem referência se concentra em se o objetivo foi alcançado, não em 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 alcançou a meta, 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 console do Cloud de Confiance , navegue até a página Agent Platform > Agentes > Avaliação.
Clique na guia Métricas para ver o registro.
Criar uma métrica:clique em Nova métrica e selecione Métrica personalizada de LLM ou Métrica de código personalizada.
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 no nome de qualquer métrica para conferir a definição dela 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 de maneira programática com 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
)