Este documento descreve como usar a avaliação de agentes para medir e melhorar a performance, a segurança e a qualidade dos seus agentes.
Para saber mais sobre a avaliação de modelos, consulte Visão geral do serviço de avaliação de IA generativa.
Resumo do procedimento
| Fase | Atividade | Objetivo |
|---|---|---|
| Design | Definir casos de avaliação | Especifique as tarefas do agente e os resultados esperados. |
| Execução | Executar inferências | Gere traces de conversas simuladas ou do mundo real. |
| Pontuação | Calcular métricas | Classifique os traces usando avaliadores automatizados (sucesso da tarefa, segurança). |
| Refinamento | Otimizar agente | Proponha e verifique melhorias nas instruções ou ferramentas. |
Processo de avaliação
A avaliação segue um fluxo de trabalho estruturado e iterativo:
- Definir casos de avaliação: um caso de avaliação é uma especificação que define a tarefa de um agente. Um caso de avaliação pode incluir uma ou várias etapas de conversa, o contexto da conversa (o estado do agente) e uma especificação para simular respostas do usuário durante a inferência.
- Executar inferências: inferência é a execução de um caso de avaliação. Se um caso de avaliação contiver um plano de conversa, as respostas do usuário serão simuladas durante a inferência.
- Gerar traces: cada execução de inferência captura o comportamento do agente em um trace. Um trace é um registro factual e imutável do comportamento do agente, incluindo entradas de modelo, respostas e chamadas de ferramentas.
- Calcular métricas: métricas são pontuações calculadas para cada trace usando avaliadores personalizados ou pré-criados. Algumas métricas, como Correspondência exata, são baseadas em referência e exigem um caso de avaliação com uma resposta de referência. Outras, como Utilidade, são sem referência e avaliam o trace por conta própria. Essa avaliação automatizada permite que você pontue traces capturados do tráfego de produção ou de registros externos, independentemente de um ambiente de teste gerenciado.
- Realizar análise: analise métricas, instruções e veredictos para identificar os principais problemas do agente, vincular os problemas do agente aos casos de teste e gerar insights para melhoria.
- Otimizar o agente: use a otimização para gerenciar todo o ciclo de avaliação. Esse processo automatizado analisa os resultados, propõe melhorias ao agente e executa o processo de forma iterativa para verificar os ganhos de performance.
Fluxo de trabalho de avaliação
É possível integrar a avaliação em duas etapas principais do fluxo de trabalho:
- Iteração de desenvolvimento local: avalie um agente baseado no Kit de Desenvolvimento de Agente (ADK) localmente para iterar rapidamente na engenharia de comando e nas configurações de ferramentas.
- Avaliação de agentes implantados: meça a qualidade dos agentes implantados analisando traces históricos ou executando benchmarks sintéticos em endpoints de agentes.
Recursos principais
A avaliação de agentes ajuda a criar um conjunto de avaliação inicial, mesmo sem dados de teste. Os recursos a seguir ajudam a automatizar o processo de geração de casos de teste e refinar seus sistemas de agentes:
Geração de cenários e simulação de usuários: gere automaticamente cenários de teste sintéticos diversos e de várias rodadas com base nas instruções e definições de ferramentas do agente. Essa automação permite que você comece a testar imediatamente, eliminando a necessidade de criar casos de teste iniciais manualmente.
Simulação de ambiente: intercepte chamadas de ferramentas específicas para injetar comportamentos personalizados, dados simulados ou erros simulados (como erros HTTP 503 erros ou picos de latência). Essa simulação permite validar a resiliência do agente sem afetar os back-ends de produção.
Avaliação de várias rodadas: avalie automaticamente todo o histórico de conversas usando avaliadores automáticos de várias rodadas. Esses avaliadores analisam a extração de intents, geram instruções dinamicamente e fornecem veredictos de validação objetivos para ajudar a garantir a conformidade com as instruções.
Otimização de comandos: gere e valide instruções de sistema refinadas de forma programática usando a otimização de comandos. A estrutura de otimização identifica pontos de falha e propõe atualizações direcionadas de forma iterativa.