Antes de comenzar
Para simular y evaluar el comportamiento del agente, asegúrate de haber completado lo siguiente:
- Crea una versión del agente: La simulación requiere una instantánea inmutable de la configuración del agente, incluidas las instrucciones del sistema, las herramientas y el modelo, etc. Asegúrate de haber creado al menos una versión del agente en el Registro de agentes.
- Inicializa el SDK: Si planeas ejecutar la simulación de forma programática, instala el SDK de Agent Platform y luego, inicializa el cliente como se describe en Evalúa tus agentes.
La simulación te permite crear un conjunto de evaluación integral desde cero, incluso sin datos de producción existentes. Este proceso usa LLMs para generar automáticamente casos de prueba y, luego, simular el rol de un usuario para realizar pruebas de esfuerzo de la lógica conversacional de varias turnos del agente.
Flujo de trabajo de simulación de 2 pasos
Por lo general, la prueba de un agente nuevo sigue un proceso de dos etapas:
Genera situaciones: Crea un conjunto de datos de "especificaciones de prueba" en función de las instrucciones y las definiciones de herramientas del agente.
Simula sesiones: Ejecuta esas especificaciones haciendo que un usuario simulado interactúe con tu agente para producir seguimientos de comportamiento. Un seguimiento es un registro inmutable y factual del comportamiento del agente, incluidas las entradas del modelo, las respuestas y las llamadas a herramientas.
En el primer paso, el sistema crea casos de evaluación. Un caso de evaluación es una especificación que define la tarea de un agente. Cada caso consta de dos elementos:
- Mensaje inicial: Es el primer mensaje que un usuario envía al agente.
- Plan de conversación: Es una "instrucción" oculta para el usuario simulado que describe sus objetivos y cómo debe reaccionar si el agente hace ciertas preguntas.
En el segundo paso, el sistema genera una lista de comportamientos del agente en formato de datos de agente canónico.
Genera situaciones en la consola
En la Google Cloud consola, ve a la página Agent Platform > Agents > Evaluation.
Haz clic en New evaluation y selecciona Simulate sessions.
Ingresa una instrucción de generación para guiar las situaciones (por ejemplo, "Genera situaciones en las que el usuario intenta reservar un vuelo, pero luego cambia de opinión").
Revisa la tabla generada. Puedes editar los mensajes o agregar tus propios casos de prueba de forma manual.
Ejecuta la simulación de usuarios
Una vez que se generan las situaciones, el Simulador de usuarios actúa como el usuario para impulsar la conversación.
Configuración de la simulación de usuarios
Cuando ejecutas la simulación, puedes configurar los siguientes atributos:
- Max Turn: Es la cantidad máxima de invocaciones permitidas por la ejecución del agente de varias turnos. Esta propiedad nos permite detener una conversación en la que el agente y el simulador de usuarios entran en un bucle sin fin. (El valor predeterminado es 5).
- Model Name: Es el nombre del modelo para simular el siguiente mensaje del usuario para la ejecución del agente de varias turnos.
- Model Configuration: Es la configuración del modelo para simular el mensaje del usuario.
Ejemplo del SDK: Simulación programática
También puedes iniciar tu conjunto de evaluación con el SDK de 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
}
}
)