IaFoco
Voltar para o blog
HuggingFace

Como Avaliar Agentes de IA para Produção com Strands Evals: Guia Prático e Passo a Passo

19 de março de 2026
00:26
inteligência artificialmodelos de linguagemavaliação de agentes IAStrands Evalstestes de IAsimulação multi-turnoavaliação automatizadaagentes conversacionaisAWS Machine Learningframework de avaliação
Como Avaliar Agentes de IA para Produção com Strands Evals: Guia Prático e Passo a Passo

A transição de agentes de inteligência artificial (IA) do protótipo para a produção apresenta desafios que os testes tradicionais não conseguem resolver. Agentes de IA são flexíveis, adaptativos e sensíveis ao contexto, características que dificultam avaliações sistemáticas baseadas em resultados determinísticos. Para superar essa barreira, o Strands Evals oferece um framework estruturado para avaliação de agentes construídos com o Strands Agents SDK, combinando avaliadores baseados em modelos de linguagem, simulações multi-turno e relatórios detalhados.

Por que Avaliar Agentes de IA é Diferente?

Ao perguntar a um agente "Como está o tempo em Tóquio?", existem múltiplas respostas válidas, como apresentar temperatura em Celsius ou Fahrenheit, incluir ou não informações sobre umidade e vento. Testes tradicionais baseados em resultados fixos não capturam essa variabilidade. Além disso, agentes não apenas geram texto, mas também executam ações, como chamadas a ferramentas externas, tornando insuficiente avaliar apenas a resposta final.

Outro desafio é a conversa multi-turno, onde respostas anteriores influenciam as seguintes, exigindo avaliação da manutenção da coerência e do contexto ao longo do tempo. Por isso, Strands Evals utiliza modelos de linguagem (LLMs) como avaliadores para julgar aspectos qualitativos como utilidade, coerência e fidelidade, que não podem ser verificados mecanicamente.

Conceitos Fundamentais do Strands Evals

O framework adapta o padrão de testes unitários para a avaliação baseada em julgamento, com três elementos centrais:

  • Cases: Cenários de teste individuais contendo a entrada do usuário, saídas esperadas, sequências de ferramentas (trajectórias) e metadados.
  • Experiments: Conjuntos de Cases avaliados por um ou mais avaliadores, semelhantes a suítes de teste tradicionais.
  • Evaluators: Os "juízes" que analisam as respostas e trajetórias do agente, principalmente usando LLMs para avaliações qualitativas.

Exemplo básico de um Case em Python:

from strands_evals import Case

case = Case(
    name="Consulta do Tempo",
    input="Como está o tempo em Tóquio?",
    expected_output="Deve incluir temperatura e condições climáticas",
    expected_trajectory=["weather_api"]
)

Função de Tarefa (Task Function): Ligando o Agente à Avaliação

A Task Function é uma função que recebe um Case e retorna o resultado da execução do agente para aquele cenário, incluindo resposta e trajetória. Existem dois padrões principais:

  1. Avaliação Online: Invoca o agente em tempo real para cada caso, recomendada durante desenvolvimento e integração contínua.
  2. Avaliação Offline: Utiliza dados históricos de sessões gravadas, útil para análise de tráfego em produção e comparações entre versões.

Exemplo de Task Function online:

from strands import Agent

def online_task(case):
    agent = Agent(tools=[search_tool, calculator_tool])
    result = agent(case.input)
    return {
        "output": str(result),
        "trajectory": agent.session
    }

Avaliadores Embutidos para Avaliação Abrangente

Strands Evals oferece 10 avaliadores prontos para uso, divididos em três categorias:

  • Rubric-based: Permitem definir critérios customizados via rubricas em linguagem natural, como OutputEvaluator para respostas finais, TrajectoryEvaluator para sequências de ações, e InteractionsEvaluator para sistemas multi-agente.
  • Semânticos: Avaliadores especializados para dimensões comuns, como HelpfulnessEvaluator (utilidade), FaithfulnessEvaluator (fidelidade às fontes), e HarmfulnessEvaluator (segurança e conteúdo nocivo).
  • Nível de Ferramenta: Avaliam a seleção e parâmetros das chamadas a ferramentas, com ToolSelectionAccuracyEvaluator e ToolParameterAccuracyEvaluator.
  • Nível de Sessão: Avaliam o sucesso global da conversa, como o GoalSuccessRateEvaluator, que mede se o usuário alcançou seu objetivo.

Exemplo de OutputEvaluator com rubrica personalizada:

from strands_evals.evaluators import OutputEvaluator

output_evaluator = OutputEvaluator(
    rubric="Score 1.0 se a resposta estiver correta e bem estruturada. "
           "Score 0.5 se parcialmente correta. Score 0.0 se incorreta ou irrelevante."
)

Simulação de Usuários para Testes Multi-turno

Testar conversas com múltiplas interações é complexo, pois usuários reais não seguem scripts fixos. O ActorSimulator do Strands Evals cria usuários simulados baseados em LLMs, com perfis realistas, personalidades e objetivos específicos, que interagem com o agente de forma dinâmica.

Exemplo básico de uso do ActorSimulator:

from strands_evals import Case, ActorSimulator
from strands import Agent

case = Case(
    input="Preciso de ajuda para abrir uma conta bancária",
    metadata={"task_description": "Abrir uma conta corrente com sucesso"}
)

user_sim = ActorSimulator.from_case_for_user_simulator(case=case, max_turns=10)
agent = Agent(system_prompt="Você é um assistente bancário útil.")
user_message = case.input

while user_sim.has_next():
    agent_response = agent(user_message)
    user_result = user_sim.act(str(agent_response))
    user_message = str(user_result.structured_output.message)

Após a simulação, a transcrição da conversa pode ser avaliada com o GoalSuccessRateEvaluator para verificar se o agente ajudou o usuário a atingir seu objetivo.

Hierarquia de Avaliação e Verdade de Referência

Strands Evals permite avaliações em diferentes níveis:

  • Nível de Sessão: Avalia toda a conversa, incluindo contexto e ações.
  • Nível de Turno: Avalia respostas individuais considerando histórico parcial.
  • Nível de Ferramenta: Avalia chamadas específicas a ferramentas.

Além disso, o framework suporta ground truth (valores esperados) para comparação, com campos como expected_output e expected_trajectory nos Cases, que ajudam a medir precisão e conformidade.

Fluxo Típico de Avaliação

Um fluxo comum envolve:

  1. Definir os Cases com cenários e expectativas.
  2. Implementar a Task Function para executar o agente ou carregar dados históricos.
  3. Configurar os Evaluators que medirão aspectos essenciais da qualidade.
  4. Executar o Experiment para orquestrar a avaliação e gerar relatórios.
  5. Iterar, refinando Cases e avaliações conforme o agente evolui.

Links úteis para aprofundamento