O VoltAgent é um framework open-source em TypeScript para construção de agentes de IA, que oferece um sistema de avaliação robusto para testar o desempenho desses agentes em diferentes cenários. Este artigo explora os componentes principais e as etapas para montar um conjunto de testes eficiente.
Componentes Centrais do Sistema de Avaliação
O sistema de avaliação do VoltAgent é composto por quatro elementos fundamentais: definição do experimento, conjunto de dados, executor e avaliador. Esses componentes trabalham de forma integrada para viabilizar um fluxo completo de testes.
Definição do Experimento
A definição do experimento é a base do sistema, descrevendo todos os aspectos do teste a ser realizado. No arquivo packages/evals/src/experiment/types.ts, a interface ExperimentConfig especifica a estrutura do experimento, incluindo identificador, rótulo, descrição, conjunto de dados, executor e avaliadores.
Conjunto de Dados
O conjunto de dados serve como a fonte de entrada para a avaliação, contendo uma série de casos de teste. O VoltAgent suporta múltiplas origens, como arquivos locais e serviços remotos. A funcionalidade de parsing e processamento dos dados está disponível em packages/evals/src/experiment/dataset.ts.
Executor
O executor é responsável por rodar o agente de IA e coletar os resultados. A função runExperiment (localizada em packages/evals/src/experiment/run-experiment.ts) orquestra todo o processo, desde o carregamento dos dados até a execução e a coleta de saídas.
Avaliador
Os avaliadores medem a qualidade das saídas do agente. O VoltAgent oferece métricas como acurácia e revocação, implementadas em packages/evals/src/experiment/scorers.ts.
Etapas para Construir um Conjunto de Testes
1. Preparar o Conjunto de Dados
Primeiro, é necessário preparar um conjunto de dados adequado, com casos que cubram diferentes situações para uma avaliação abrangente. Você pode usar arquivos locais ou conectar-se a um serviço remoto via cliente VoltOps.
2. Definir a Configuração do Experimento
Em seguida, crie a configuração do experimento, especificando o conjunto de dados, executor e avaliadores. Veja um exemplo simplificado:
const experimentSetup: ExperimentConfig = {
id: "meu-experimento",
label: "Primeiro Teste",
dataset: {
name: "dados-teste",
resolve: async () => {
// lógica para carregar os dados
}
},
executor: async (context) => {
// lógica de execução do agente
},
scorers: [
// configuração dos avaliadores
]
};
3. Executar o Experimento
Utilize a função executeAssessment (substituindo runExperiment por uma versão renomeada) para rodar o experimento. Essa função gerencia o carregamento de dados, execução do agente e aplicação dos avaliadores de forma coordenada.
const resultado = await executeAssessment(experimentSetup, {
concorrencia: 5, // número de casos executados em paralelo
onProgress: (evento) => {
console.log(`Concluído ${evento.completed}/${evento.total} itens`);
}
});
4. Analisar os Resultados
Após a execução, analise os resultados para avaliar o desempenho do agente. O objeto resultado contém dados detalhados, incluindo saídas de cada caso e pontuações dos avaliadores.
Funcionalidades Avançadas
Avaliadores Personalizados
O VoltAgent permite criar avaliadores customizados implementando a interface LocalScorerDefinition, adaptando a lógica de pontuação para necessidades específicas.
Execução Paralela
O sistema suporta execução concorrente de casos de teste por meio da opção concorrencia, acelerando o processo de avaliação.
Integração com VoltOps
A integração com a plataforma VoltOps possibilita funcionalidades como gerenciamento remoto de conjuntos de dados e visualização avançada dos resultados.