ai-agents-for-beginners

Diseño Multi-Agente

(Haz clic en la imagen de arriba para ver el video de esta lección)

Patrones de diseño multi-agente

Tan pronto como comiences a trabajar en un proyecto que involucre múltiples agentes, necesitarás considerar el patrón de diseño multi-agente. Sin embargo, puede que no quede claro inmediatamente cuándo cambiar a multi-agentes y cuáles son las ventajas.

Introducción

En esta lección, buscamos responder las siguientes preguntas:

Objetivos de aprendizaje

Después de esta lección, deberías ser capaz de:

¿Cuál es el panorama general?

Los multi-agentes son un patrón de diseño que permite que múltiples agentes trabajen juntos para lograr un objetivo común.

Este patrón se usa ampliamente en diversos campos, incluyendo robótica, sistemas autónomos y computación distribuida.

Escenarios donde los multi-agentes son aplicables

Entonces, ¿qué escenarios son un buen caso para usar multi-agentes? La respuesta es que hay muchos escenarios en los que emplear múltiples agentes es beneficioso, especialmente en los siguientes casos:

Ventajas de usar multi-agentes sobre un agente singular

Un sistema de un solo agente podría funcionar bien para tareas simples, pero para tareas más complejas, usar múltiples agentes puede ofrecer varias ventajas:

Tomemos un ejemplo, reservemos un viaje para un usuario. Un sistema de un solo agente tendría que manejar todos los aspectos del proceso de reserva, desde encontrar vuelos hasta reservar hoteles y autos de alquiler. Para lograr esto con un solo agente, el agente necesitaría tener herramientas para manejar todas estas tareas. Esto podría llevar a un sistema complejo y monolítico que es difícil de mantener y escalar. Un sistema multi-agente, en cambio, podría tener diferentes agentes especializados en encontrar vuelos, reservar hoteles y autos de alquiler. Esto haría que el sistema sea más modular, más fácil de mantener y escalable.

Compara esto con una agencia de viajes manejada como una tienda familiar versus una agencia de viajes manejada como una franquicia. La tienda familiar tendría un solo agente manejando todos los aspectos del proceso de reserva, mientras que la franquicia tendría diferentes agentes manejando distintos aspectos del proceso de reserva.

Bloques de construcción para implementar el patrón de diseño multi-agente

Antes de que puedas implementar el patrón de diseño multi-agente, necesitas entender los bloques de construcción que conforman el patrón.

Hagamos esto más concreto mirando nuevamente el ejemplo de reservar un viaje para un usuario. En este caso, los bloques de construcción incluirían:

Visibilidad en las interacciones multi-agente

Es importante que tengas visibilidad sobre cómo interactúan los múltiples agentes entre sí. Esta visibilidad es esencial para depurar, optimizar y asegurar la efectividad general del sistema. Para lograr esto, necesitas herramientas y técnicas para rastrear las actividades e interacciones de los agentes. Esto podría ser en forma de herramientas de registro y monitoreo, herramientas de visualización y métricas de desempeño.

Por ejemplo, en el caso de reservar un viaje para un usuario, podrías tener un panel de control que muestre el estado de cada agente, las preferencias y restricciones del usuario y las interacciones entre agentes. Este panel podría mostrar las fechas de viaje del usuario, los vuelos recomendados por el agente de vuelos, los hoteles recomendados por el agente de hoteles y los autos de alquiler recomendados por el agente de autos de alquiler. Esto te daría una vista clara de cómo interactúan los agentes entre sí y si se están cumpliendo las preferencias y restricciones del usuario.

Veamos cada uno de estos aspectos con más detalle.

Patrones de Multi-Agente

Vamos a profundizar en algunos patrones concretos que podemos usar para crear aplicaciones multi-agente. Aquí hay algunos patrones interesantes que vale la pena considerar:

Chat grupal

Este patrón es útil cuando quieres crear una aplicación de chat grupal donde múltiples agentes puedan comunicarse entre sí. Casos de uso típicos para este patrón incluyen colaboración en equipo, soporte al cliente y redes sociales.

En este patrón, cada agente representa un usuario en el chat grupal, y los mensajes se intercambian entre agentes usando un protocolo de mensajería. Los agentes pueden enviar mensajes al chat grupal, recibir mensajes del chat grupal y responder a mensajes de otros agentes.

Este patrón puede implementarse usando una arquitectura centralizada donde todos los mensajes se enrutan a través de un servidor central, o una arquitectura descentralizada donde los mensajes se intercambian directamente.

Chat grupal

Transferencia de tareas

Este patrón es útil cuando quieres crear una aplicación donde múltiples agentes puedan transferirse tareas entre sí.

Casos de uso típicos para este patrón incluyen soporte al cliente, gestión de tareas y automatización de flujos de trabajo.

En este patrón, cada agente representa una tarea o un paso en un flujo de trabajo, y los agentes pueden transferirse tareas a otros agentes según reglas predefinidas.

Transferencia de tareas

Filtrado colaborativo

Este patrón es útil cuando quieres crear una aplicación donde múltiples agentes puedan colaborar para hacer recomendaciones a los usuarios.

La razón para querer que múltiples agentes colaboren es que cada agente puede tener experiencia diferente y contribuir al proceso de recomendación de distintas maneras.

Tomemos un ejemplo donde un usuario quiere una recomendación sobre la mejor acción para comprar en el mercado de valores.

Recomendación

Escenario: proceso de reembolso

Considera un escenario donde un cliente está tratando de obtener un reembolso por un producto, pueden involucrarse bastantes agentes en este proceso, pero dividámoslo entre agentes específicos para este proceso y agentes generales que pueden usarse en otros procesos.

Agentes específicos para el proceso de reembolso:

A continuación algunos agentes que podrían estar involucrados en el proceso de reembolso:

Agentes generales:

Estos agentes pueden ser usados por otras partes de tu negocio.

Hay bastantes agentes listados anteriormente, tanto para el proceso específico de reembolso como para los agentes generales que pueden usarse en otras partes de tu negocio. Esperamos que esto te dé una idea de cómo puedes decidir qué agentes usar en tu sistema multi-agente.

Tarea

Diseña un sistema multi-agente para un proceso de soporte al cliente. Identifica los agentes involucrados en el proceso, sus roles y responsabilidades, y cómo interactúan entre sí. Considera tanto agentes específicos para el proceso de soporte al cliente como agentes generales que pueden ser usados en otras partes de tu negocio.

Piensa un momento antes de leer la siguiente solución, puede que necesites más agentes de los que crees.

CONSEJO: Piensa en las diferentes etapas del proceso de soporte al cliente y también considera los agentes necesarios para cualquier sistema.

Solución

Solución

Comprobaciones de conocimiento

Pregunta 1

¿Cuál escenario es el más adecuado para un sistema multiagente?

Pregunta 2

¿Cuándo suele ser mejor opción un solo agente?

Solución del cuestionario

Resumen

En esta lección, hemos explorado el patrón de diseño multiagente, incluyendo los escenarios donde los multiagentes son aplicables, las ventajas de usar multiagentes sobre un agente singular, los componentes clave para implementar el patrón de diseño multiagente, y cómo tener visibilidad sobre cómo los múltiples agentes interactúan entre sí.

¿Tienes más preguntas sobre el patrón de diseño multiagente?

Únete a Microsoft Foundry Discord para conocer a otros estudiantes, asistir a horas de oficina y resolver tus preguntas sobre agentes de IA.

Recursos adicionales

Lección anterior

Diseño de planificación

Próxima lección

Metacognición en agentes de IA


Descargo de responsabilidad: Este documento ha sido traducido utilizando el servicio de traducción automática Co-op Translator. Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción profesional humana. No somos responsables de cualquier malentendido o interpretación errónea que surja del uso de esta traducción.