Simular o comportamento do agente

Antes de começar

Para simular e avaliar o comportamento do agente, verifique se você concluiu o seguinte:

  • Crie uma versão do agente: a simulação exige um snapshot imutável da configuração do agente, incluindo instruções do sistema, ferramentas, modelo etc. Crie pelo menos uma versão do agente no Registro de agentes.
  • Inicialize o SDK: se você planeja executar a simulação de forma programática, instale o SDK da Agent Platform e inicialize o cliente conforme descrito em Avaliar seus agentes.

Com a simulação, é possível criar um pacote de avaliação abrangente do zero, mesmo sem dados de produção. Esse processo usa LLMs para gerar automaticamente casos de teste e simular um usuário para testar a lógica de conversa de várias rodadas do seu agente.

O fluxo de trabalho de simulação em duas etapas

O teste de um novo agente geralmente segue um processo de duas etapas:

  1. Gerar cenários:crie um conjunto de dados de "especificações de teste" com base nas instruções do seu agente e nas definições de ferramentas.

  2. Simular sessões:execute essas especificações fazendo com que um usuário simulado interaja com seu agente para produzir rastreamentos de comportamento. Um rastreamento é um registro factual e imutável do comportamento do agente, incluindo entradas do modelo, respostas e chamadas de ferramentas.

Na primeira etapa, o sistema cria casos de avaliação, que são especificações que definem a tarefa de um agente. Cada caso consiste em dois elementos:

  • Comando inicial:a primeira mensagem que um usuário envia ao agente.
  • Plano de conversa:uma "instrução" oculta para o usuário simulado, descrevendo as metas dele e como ele deve reagir se o agente fizer determinadas perguntas.

Na segunda etapa, o sistema gera uma lista de comportamentos do agente no formato de dados canônicos do agente.

Gerar cenários no console

  1. No console do Google Cloud , navegue até a página Agent Platform > Agentes > Avaliação.

    Acessar "Avaliação"

  2. Clique em Nova avaliação e selecione Simular sessões.

  3. Insira uma instrução de geração para orientar os cenários (por exemplo, "Gere cenários em que o usuário tenta reservar um voo, mas muda de ideia").

  4. Revise a tabela gerada. Você pode editar os comandos ou adicionar manualmente seus próprios casos de teste.

Executar simulação de usuário

Depois que os cenários são gerados, o Simulador de usuário age como o usuário para continuar a conversa.

Configurações de simulação de usuário

Ao executar a simulação, é possível configurar os seguintes atributos:

  • Max Turn:número máximo de invocações permitidas pela execução do agente de várias rodadas. Essa propriedade permite interromper uma conversa em que o agente e o simulador de usuário entram em um loop sem fim. O valor padrão é 5.
  • Nome do modelo:o nome do modelo para simular a próxima mensagem do usuário em uma execução de agente de várias interações.
  • Configuração do modelo:a configuração do modelo para simular a mensagem do usuário.

Exemplo de SDK: simulação programática

Você também pode inicializar o conjunto de avaliação usando o SDK da Agent Platform:

# 1. Define agent
travel_agent = Agent(
    model="gemini-3-flash-preview",
    name='travel_agent',
    instruction='You are a travel expert, help users to find flights, book flights with flight ID',
    tools=[find_flights, book_flight],
)

# 2. Generate scenarios from agent info
travel_agent_info = types.evals.AgentInfo.load_from_agent(agent=travel_agent)

eval_dataset = client.evals.generate_conversation_scenarios(
    agent_info=travel_agent_info,
    config={
        "count": 5,
        "generation_instruction": "Generate scenarios where the user tries to book a flight.",
        "environment_context": "Today is Monday. I am located in San Francisco. Flights to Paris, New York, Tokyo, Chicago, Sydney, etc are available.",
    },
)

# 3. Simulate multi-turn interactions
eval_dataset_with_traces = client.evals.run_inference(
    agent=travel_agent,
    src=eval_dataset,
    config={
        "user_simulator_config": {
            "max_turn": 5
        }
    }
)