Optimiza y escala el rendimiento del tiempo de ejecución del agente

Agent Runtime proporciona parámetros de implementación que te permiten optimizar y escalar el rendimiento de tus agentes. Si configuras estos parámetros, puedes controlar de manera eficaz los patrones de tráfico impredecibles o con picos.

En esta página, se describen las prácticas recomendadas para optimizar y escalar el rendimiento de Agent Runtime, que abarcan las siguientes situaciones:

Las situaciones muestran cómo usar los parámetros de implementación para resolver cuellos de botella comunes en el rendimiento, en especial para patrones de tráfico impredecibles o con picos en aplicaciones del mundo real.

Problema de inicio en frío

Un inicio en frío ocurre cuando llega una solicitud y no hay instancias o contenedores inactivos para atenderla, lo que obliga a Agent Runtime a iniciar uno nuevo. Esto agrega una latencia significativa a la solicitud.

Por ejemplo, enviar 300 solicitudes simultáneas a un agente con el valor predeterminado min_instances=1 puede mostrar los siguientes resultados:

  • Inicio en frío (primera ejecución): Latencia promedio de aproximadamente 4.7 segundos.

  • Inicio semicaliente (segunda ejecución inmediata): Latencia promedio de aproximadamente 0.4 segundos.

La sobrecarga de más de cuatro segundos se debe casi por completo a que se inician instancias nuevas para controlar la carga.

Prueba los siguientes métodos para mitigar el problema de inicio en frío:

  • Establece un valor de min_instances que sea lo suficientemente alto para controlar tu tráfico de referencia. Por ejemplo, si estableces min_instances=10 para el agente de ejemplo, puedes reducir la latencia promedio de un inicio en frío a aproximadamente 1.4 segundos. Para las aplicaciones con tráfico alto o con picos, establece min_instances en un valor que pueda controlar tu carga típica sin necesidad de escalar desde 1. El valor máximo es 10.

  • Envía una carga estable, continua y predecible a Agent Runtime mediante una cola. Por ejemplo, ejecutar una prueba de carga sostenida de 1,500 consultas por minuto (25 consultas por segundo) durante 60 segundos en un agente basado en el Kit de desarrollo de agentes (ADK) con min_instances=10 y el valor predeterminado concurrency (9) puede producir el siguiente resultado:

    • La latencia promedio es constantemente baja, de aproximadamente 1.6 segundos.

Una carga estable y continua mantiene el servicio semicaliente y genera un rendimiento óptimo.

Trabajadores asíncronos subutilizados

De forma predeterminada, container_concurrency está configurado para el código síncrono, en el que cada instancia de Agent Platform controla solo una solicitud a la vez. Los agentes asíncronos, como los basados en el Kit de desarrollo de agentes (ADK), pueden controlar varias solicitudes vinculadas a E/S (como llamadas a LLM o herramientas) de forma simultánea.

Por ejemplo, enviar 300 solicitudes simultáneas a un agente basado en ADK con min_instances=10 y el valor predeterminado container_concurrency=9 puede producir el siguiente resultado:

  • Si bien la latencia mediana es de aproximadamente 4 segundos, la latencia máxima aumenta a 60 segundos. Esto indica que las solicitudes se ponen en cola en gran medida mientras el servicio se propaga lentamente.

Para mitigar los trabajadores asíncronos subutilizados, aumenta container_concurrency para permitir que cada instancia de Agent Platform controle varias solicitudes. La cantidad de solicitudes simultáneas que puede controlar cada proceso de agente es container_concurrency / 9. El valor 9 representa la cantidad de procesos de agente que se ejecutan en paralelo dentro de cada contenedor.

Por ejemplo, enviar 300 solicitudes simultáneas al mismo agente basado en ADK con min_instances=10 y container_concurrency=36 puede producir el siguiente resultado:

  • La latencia máxima disminuye de 60 segundos a aproximadamente 7 segundos. Esto demuestra que las instancias existentes pueden absorber el aumento en el tráfico de manera más eficaz.

Para los agentes asíncronos (como los agentes basados en ADK), establece container_concurrency en un múltiplo de 9 (por ejemplo, 36) como punto de partida. Esto mejora la capacidad de respuesta a los picos de tráfico y reduce la latencia de la propagación.

Ten en cuenta que establecer un valor demasiado alto para container_concurrency puede generar errores de falta de memoria (OOM).

¿Qué sigue?

Guía

Obtén información para administrar los agentes que se implementaron en el entorno de ejecución administrado de Agent Platform.

Guía

Usa un agente con Agent Platform Runtime.

Recurso

Obtén información sobre las cuotas y los límites de Agent Platform.