Multi-Agent-as-a-Service: descripción general de un ingeniero sénior | por Saman (Sam) Rajaei | agosto de 2024

Ha habido mucho Discusión sobre los agentes de IAUnidades autónomas fundamentales capaces de realizar tareas de forma autónoma, impulsadas por instrucciones específicas y comprensión del contexto.De hecho, el tema se ha vuelto casi tan discutido como los LLM. En este artículo, analizo los agentes de IA y, más específicamente, el concepto de Multiagentes como servicio desde la perspectiva de los ingenieros líderes, arquitectos e ingenieros de confiabilidad del sitio (SRE) que deben lidiar con agentes de IA en sistemas de producción en el futuro.

Contexto: ¿Qué problemas pueden resolver los agentes de IA?

Los agentes de IA son expertos en tareas que se benefician de interacciones amigables con los humanos:

  1. Comercio electrónico: Los agentes impulsados ​​por tecnologías como RAG basado en LLM o Text-to-SQL responden a las consultas de los usuarios con respuestas precisas basadas en las políticas de la empresa, lo que permite una experiencia de compra y un recorrido del cliente más personalizados que pueden revolucionar el comercio electrónico.
  2. Servicio al cliente: Esta es otra aplicación ideal. Muchos de nosotros hemos tenido que esperar mucho tiempo para hablar con un representante por consultas sencillas, como actualizaciones del estado de un pedido. Algunas empresas emergentes… Decágono Por ejemplo, están logrando avances para abordar estas ineficiencias a través de agentes de IA.
  3. Creación de productos y contenidos personalizados: Un buen ejemplo de esto es Wix — Para la creación de sitios web de bajo código o sin código, Wix desarrolló un chatbot que, a través de sesiones interactivas de preguntas y respuestas, crea un sitio web inicial para los clientes de acuerdo con su descripción y requisitos..

“Los humanos establecen objetivos, pero un agente de IA elige independientemente las mejores acciones que debe realizar para alcanzar esos objetivos.

En general, los agentes basados ​​en LLM funcionarían muy bien para imitar el diálogo humano natural y los flujos de trabajo comerciales simples, y a menudo producirían resultados que son efectivos e impresionantemente satisfactorios.

La visión de un ingeniero: agentes de IA y entornos de producción empresarial

Teniendo en cuenta los beneficios mencionados, ¿se ha preguntado alguna vez cómo funcionarían los agentes de IA en entornos de producción empresarial? ¿Qué patrones de arquitectura y componentes de infraestructura los respaldan mejor? ¿Qué hacemos cuando las cosas inevitablemente salen mal y los agentes alucinar¿Se bloquea o (quizás incluso peor) lleva a cabo un razonamiento o una planificación incorrectos al realizar una tarea crítica?

Como ingenieros de alto nivel, debemos considerar cuidadosamente lo anterior. Además, debemos plantearnos una pregunta aún más importante: ¿Cómo definimos en primer lugar lo que significa una implementación exitosa de una plataforma multiagente?

Para responder a esta pregunta, tomemos prestado un concepto de otro campo de la ingeniería de software: los objetivos de nivel de servicio (SLO) de la ingeniería de confiabilidad. Los SLO son un componente fundamental para medir el rendimiento y la confiabilidad de los servicios. En pocas palabras, los SLO definen la proporción aceptable de mediciones “exitosas” con respecto a “todas” las mediciones y su impacto en las experiencias de los usuarios. Estos objetivos nos ayudan a determinar los niveles de servicio requeridos y esperados de nuestros agentes y los flujos de trabajo más amplios que respaldan.

Entonces, ¿qué relevancia tienen los SLO para nuestra discusión sobre el agente de IA?

Utilizando una visión simplificada, consideremos dos objetivos importantes (“Disponibilidad” y “Precisión”) para los agentes e identifiquemos algunos SLO más granulares que contribuyen a ellos:

  1. Disponibilidad: Esto se refiere al porcentaje de solicitudes que reciben alguno Respuesta exitosa (piense en el código de estado HTTP 200) de los agentes o la plataforma. Históricamente, el tiempo de actividad y el éxito del ping de los servidores subyacentes (es decir, las medidas temporales) eran indicadores clave correlacionados de disponibilidad. Pero con el auge de los microservicios, el tiempo de actividad nocional se ha vuelto menos relevante. En cambio, los sistemas modernos se centran en la cantidad de respuestas exitosas frente a las fallidas a las solicitudes de los usuarios como un indicador más preciso de la disponibilidad. Se pueden considerar otras métricas relacionadas como Estado latente y Rendimiento.
  2. Exactitud: Por otra parte, esto tiene menos que ver con la rapidez y la consistencia con la que los agentes devuelven respuestas a los clientes, sino más bien con la forma en que correctamenteDesde una perspectiva empresarial, pueden realizar sus tareas y devolver datos sin que haya una persona presente en el proceso para verificar su trabajo. Los sistemas tradicionales también rastrean objetivos de nivel de servicio similares, como la exactitud y la calidad de los datos.

El acto de medir los dos objetivos anteriores normalmente ocurre a través del envío de métricas de aplicación internas en tiempo de ejecución, ya sea en intervalos de tiempo establecidos (por ejemplo, cada 10 minutos) o en respuesta a eventos (solicitudes de usuario, llamadas ascendentes, etc.). Sintético El sondeo, por ejemplo, se puede utilizar para imitar las solicitudes de los usuarios, desencadenar eventos relevantes y monitorear los números. llave idea Lo que hay que explorar aquí es lo siguiente: los sistemas tradicionales son deterministas en gran medida y, por lo tanto, generalmente es más sencillo instrumentarlos, investigarlos y evaluarlos. Por otro lado, en nuestro hermoso pero no determinista mundo de agentes GenAI, este no es necesariamente el caso.

Nota: el enfoque de esta publicación se centra más en el primero de nuestros dos objetivos: disponibilidadEsto incluye determinar los criterios de aceptación que establecen la estabilidad de la nube y del entorno de referencia para ayudar a los agentes a responder a las consultas de los usuarios. Para obtener más información exactitud (es decir, definir un alcance de tarea razonable para los agentes, optimizar el rendimiento de los métodos de pocos intentos y los marcos de evaluación), Esta entrada de blog Actúa como una base maravillosa.

Ahora, volvamos a las cosas que los ingenieros deben hacer bien para garantizar la viabilidad de la infraestructura al implementar agentes. Para lograr nuestros objetivos de nivel de servicio y brindar una plataforma confiable y segura, los ingenieros sénior tienen en cuenta constantemente los siguientes elementos:

  1. Escalabilidad:Cuando el número de solicitudes aumenta (a veces repentinamente), ¿puede el sistema gestionarlas de manera eficiente?
  2. Rentabilidad:El uso de LLM es costoso, entonces ¿cómo podemos monitorear y controlar el costo?
  3. Alta disponibilidad: ¿Cómo podemos mantener el sistema siempre disponible y con capacidad de respuesta para los clientes? ¿Pueden los agentes repararse a sí mismos y recuperarse de errores o fallas?
  4. Seguridad¿Cómo podemos garantizar que los datos estén seguros en reposo y en tránsito, realizar auditorías de seguridad, evaluaciones de vulnerabilidad, etc.?
  5. Cumplimiento y normativas:Un tema importante para la IA: ¿cuáles son las regulaciones de privacidad de datos relevantes y otros estándares específicos de la industria que debemos cumplir?
  6. Observabilidad¿Cómo podemos obtener visibilidad en tiempo real de las actividades, la salud y los niveles de utilización de recursos de los agentes de IA para identificar y resolver problemas antes de que afecten la experiencia del usuario?

¿Le suena familiar? Son similares a los desafíos que enfrentan las aplicaciones web modernas, los microservicios El patrón y la infraestructura de la nube tienen como objetivo abordar…

¿Y ahora qué? Proponemos un marco de desarrollo y mantenimiento de agentes de IA que se adhiera a las mejores prácticas desarrolladas a lo largo de los años en una variedad de disciplinas de ingeniería y software.

Multiagente como servicio (MAaaS)

Esta vez, tomemos prestados algunos de Mejores prácticas para aplicaciones basadas en la nube Para redefinir cómo se diseñan los agentes en los sistemas de producción:

  • Contexto claro y delimitado: Cada agente debe tener un ámbito de responsabilidad bien definido y reducido, con límites de funcionalidad claros. Este enfoque modular garantiza que los agentes sean más precisos, más fáciles de gestionar y escalar de forma independiente.
  • Comunicación entre servicios asincrónica y RESTful: Uso de API RESTful para la comunicación entre usuarios y agentes, y aprovechamiento de intermediarios de mensajes para la comunicación asincrónica. Esto desacopla a los agentes, lo que mejora la escalabilidad y la tolerancia a fallos.
  • Almacenamiento de datos aislados por agente: Cada agente debe tener su propio almacenamiento de datos para garantizar la encapsulación de datos y reducir las dependencias. Utilice soluciones de almacenamiento de datos distribuidos cuando sea necesario para respaldar la escalabilidad.
  • Contenerización y orquestación: Usar contenedores (por ejemplo, Docker) para empaquetar e implementar agentes de manera uniforme en diferentes entornos, lo que simplifica la implementación y el escalamiento. Utilizar plataformas de orquestación de contenedores como Kubernetes para administrar la implementación, el escalamiento y el ciclo de vida operativo de los servicios de los agentes.
  • Pruebas y CI/CD: Implementar pruebas automatizadas (unidades, integración, contratos y pruebas de extremo a extremo) para garantizar una gestión de cambios confiable para los agentes. Usar herramientas de integración continua para crear y probar agentes automáticamente cada vez que se confirmen cambios en el código. Establecer canales de CD para implementar cambios en la producción sin inconvenientes, lo que reduce el tiempo de inactividad y garantiza ciclos de iteración rápidos.
  • Observabilidad: Implementar una instrumentación de observabilidad robusta, como métricas, seguimiento y registro para los agentes y su infraestructura de soporte, a fin de crear una vista en tiempo real de la confiabilidad de la plataforma (el seguimiento podría ser de particular interés aquí si una solicitud de usuario determinada pasa por varios agentes). Calcular y realizar un seguimiento de los SLO y los presupuestos de error para los agentes y el flujo de solicitudes agregado. Sondeo sintético y alertas eficientes sobre advertencias y fallas para asegurarse de que los problemas de salud del agente se detecten antes de que afecten ampliamente a los usuarios finales.

Al aplicar estos principios, podemos crear un marco sólido para los agentes de IA y transformar el concepto en “Multi-Agent as a Service” (MAaaS). Este enfoque aprovecha las mejores prácticas de las aplicaciones basadas en la nube para redefinir cómo se diseñan, implementan y administran los agentes.