Voltar para o blog
Machine Learning

Simulação de Usuários Realistas para Avaliação de Agentes de IA em Conversas Multi-turno com Strands Evals

2 de abril de 2026
14:48
Conversas Multi-turnoavaliação automatizadasimulação de usuáriosStrands Evaluation SDKActorSimulatortelemetria OpenTelemetryperfil de usuário simuladoteste de agentes conversacionaisInteligência ArtificialAvaliação de agentes de IA
Simulação de Usuários Realistas para Avaliação de Agentes de IA em Conversas Multi-turno com Strands Evals

Introdução: Desafios na Avaliação de Agentes de IA em Interações Multi-turno

A avaliação de agentes de inteligência artificial (IA) em interações de turno único é um processo relativamente direto, onde um input é fornecido, a resposta do agente é coletada e avaliada. Frameworks como o Strands Evaluation SDK sistematizam essa avaliação por meio de métricas como helpfulness (utilidade), faithfulness (fidelidade) e uso correto de ferramentas.

No entanto, conversas reais com usuários geralmente envolvem múltiplos turnos, nos quais perguntas de seguimento, mudanças de contexto e expressões de frustração são comuns. Por exemplo, um assistente de viagens que responde adequadamente a "Reserve um voo para Paris" pode não lidar bem com perguntas subsequentes como "Na verdade, podemos ver trens?" ou "E hotéis próximos à Torre Eiffel?".

Esses padrões dinâmicos demandam avaliações que vão além de casos estáticos e roteirizados, exigindo escalabilidade para centenas de conversas multi-turno. A avaliação manual é impraticável nesse cenário, e roteiros fixos não capturam a complexidade do comportamento humano.

ActorSimulator: Simulação Estruturada de Usuários para Avaliação Automatizada

O ActorSimulator, componente do Strands Evaluation SDK, oferece uma solução automatizada para simular usuários realistas e orientados por objetivos, capazes de interagir naturalmente com agentes em múltiplos turnos. Essa ferramenta integra-se facilmente a pipelines de avaliação automatizadas, tornando possível escalar testes complexos.

Características Fundamentais do Usuário Simulado

  • Consistência de Persona: Mantém características estáveis de comunicação, expertise e personalidade durante toda a conversa, garantindo confiabilidade nos dados de avaliação.
  • Comportamento Orientado a Objetivos: O usuário simulado possui metas explícitas, persiste até seu alcance, adapta estratégias conforme respostas do agente e reconhece a conclusão da tarefa.
  • Adaptação Dinâmica: Responde de forma contextualizada às respostas do agente, realizando perguntas de seguimento, esclarecendo dúvidas e redirecionando a conversa conforme necessário.

Funcionamento do ActorSimulator

O processo inicia com a geração automática de um perfil do usuário, elaborado por um modelo de linguagem (LLM) a partir de um caso de teste que inclui uma consulta inicial e uma descrição da tarefa. Por exemplo, para a entrada "Preciso de ajuda para reservar um voo para Paris" com a tarefa "Reserva de voo dentro do orçamento", o simulador pode criar um perfil de viajante econômico com experiência iniciante e estilo casual.

Durante a conversa, o ActorSimulator mantém o histórico completo e gera respostas alinhadas ao perfil e aos objetivos do usuário simulado. Quando o agente responde parcialmente, o simulador formula perguntas de seguimento coerentes; se o agente pede esclarecimentos, o simulador responde condizente com a persona.

O sistema incorpora uma ferramenta interna para avaliação da conclusão da meta, encerrando a interação ao atingir o objetivo, detectar incapacidade do agente ou atingir o limite máximo de turnos configurado.

Cada resposta do usuário simulado inclui um raciocínio estruturado que explica a escolha da fala, facilitando análises detalhadas para identificação de pontos fortes e falhas do agente.

Exemplo Prático: Avaliação de Assistente de Viagens

Para iniciar, instale o SDK com:

pip install strands-agents-evals

Em seguida, defina um caso de teste, crie o agente e o simulador, e execute a conversa multi-turno:

from strands import Agent
from strands_evals import ActorSimulator, Case

case = Case(
    input="Quero planejar uma viagem para Tóquio com hotel e atividades",
    metadata={"task_description": "Pacote de viagem completo"}
)

agent = Agent(system_prompt="Você é um assistente de viagens útil.", callback_handler=None)

user_sim = ActorSimulator.from_case_for_user_simulator(case=case, max_turns=5)

user_message = case.input
conversation_history = []

while user_sim.has_next():
    agent_response = agent(user_message)
    agent_message = str(agent_response)
    conversation_history.append({"role": "assistant", "content": agent_message})

    user_result = user_sim.act(agent_message)
    user_message = str(user_result.structured_output.message)
    conversation_history.append({"role": "user", "content": user_message})

print(f"Conversa concluída em {len(conversation_history) // 2} turnos")

A conversa prossegue até que o simulador indique término por sucesso, falha ou limite de turnos.

Integração com Pipelines de Avaliação e Telemetria

Para avaliações em ambiente de produção, é essencial capturar métricas detalhadas da interação. O ActorSimulator integra-se com a coleta de telemetria via OpenTelemetry, permitindo rastrear chamadas a ferramentas, invocações de modelo e tempos de resposta em cada turno.

Esses dados são organizados em sessões estruturadas que alimentam avaliadores como GoalSuccessRateEvaluator e HelpfulnessEvaluator, possibilitando análises completas da conversa em vez de avaliações isoladas por turno.

Perfis Customizados para Testes Específicos

Além da geração automática, o ActorSimulator permite definir perfis manuais para simular diferentes tipos de usuários, como especialistas impacientes ou iniciantes técnicos, possibilitando identificar pontos fortes e limitações do agente em variados contextos.

from strands_evals.types.simulation import ActorProfile
from strands_evals import ActorSimulator
from strands_evals.simulation.prompt_templates.actor_system_prompt import DEFAULT_USER_SIMULATOR_PROMPT_TEMPLATE

actor_profile = ActorProfile(
    traits={
        "personality": "analítico e detalhista",
        "communication_style": "direto e técnico",
        "expertise_level": "especialista",
        "patience_level": "baixo"
    },
    context="Viajante de negócios experiente com status elite que valoriza eficiência",
    actor_goal="Reservar voo em classe executiva com assento específico e acesso à sala VIP"
)

user_sim = ActorSimulator(
    actor_profile=actor_profile,
    initial_query="Preciso reservar um voo em classe executiva para Londres na próxima terça",
    system_prompt_template=DEFAULT_USER_SIMULATOR_PROMPT_TEMPLATE,
    max_turns=10
)

Boas Práticas para Avaliação com Simulação

  • Configure max_turns conforme a complexidade da tarefa: 3-5 para tarefas específicas, 8-10 para fluxos multi-etapas.
  • Utilize descrições claras da tarefa para que o simulador avalie a conclusão com precisão.
  • Combine perfis gerados automaticamente para ampla cobertura e perfis customizados para reproduzir padrões reais observados em produção.
  • Analise tendências gerais na suíte de testes em vez de focar em transcrições isoladas.

O ActorSimulator no Strands Evaluation SDK oferece uma abordagem estruturada e escalável para avaliação de agentes de IA em conversas multi-turno. Ao simular usuários realistas com perfis consistentes, objetivos explícitos e comportamento adaptativo, é possível gerar dados de avaliação que refletem melhor os desafios enfrentados em ambientes reais, facilitando a identificação precisa de melhorias e regressões no desempenho dos agentes.

Links Úteis