Ir al contenido

IDEAS PRÁCTICAS · ASIMOV INGENIERÍA

18. Arquitecturas multi-agente: cuando varios agentes colaboran

Cómo combinar varios agentes de inteligencia artificial especializados para resolver problemas complejos mediante colaboración, comunicación, memoria compartida y coordinación de tareas.

Table of contents

No titles in the blog post

En el artículo anterior vimos el patrón ReAct y cómo un agente puede combinar razonamiento y acciones para resolver una tarea. El agente puede analizar un objetivo, utilizar una herramienta, observar el resultado y decidir cuál debe ser su siguiente paso. Este enfoque permite construir sistemas mucho más capaces que un chatbot tradicional.

Sin embargo, llega un punto en el que pedirle a un solo agente que haga absolutamente todo puede convertirse en un problema. Imaginemos, por ejemplo, un sistema que debe investigar información en internet, analizar documentos, consultar una base de datos, escribir un reporte y posteriormente revisar que el resultado sea correcto. Un único agente podría intentar realizar todas esas funciones, pero sus instrucciones, herramientas y responsabilidades comenzarían a crecer demasiado.

Aquí aparece una idea fundamental en el desarrollo moderno de agentes de IA: utilizar varios agentes especializados que colaboren entre sí. En lugar de tener una única inteligencia artificial encargada de todo el proceso, podemos crear un equipo de agentes, donde cada uno tenga una función concreta.

Esta forma de trabajar recibe el nombre de arquitectura multi-agente. En este artículo veremos qué significa, por qué puede ser útil, cómo se comunican los agentes, qué tipos de estructuras existen y qué problemas debemos considerar antes de implementarla.

1. ¿Qué es una arquitectura multi-agente?

Una arquitectura multi-agente es un sistema formado por dos o más agentes de inteligencia artificial que trabajan juntos para alcanzar uno o varios objetivos.

Cada agente puede utilizar su propio conjunto de instrucciones, herramientas, memoria y responsabilidades. No necesariamente todos tienen que utilizar las mismas herramientas ni realizar el mismo tipo de razonamiento.

Por ejemplo, podríamos tener un sistema compuesto por cuatro agentes:

  • Un agente investigador que busca información.
  • Un agente analista que interpreta los datos.
  • Un agente redactor que genera un reporte.
  • Un agente revisor que comprueba el resultado.

El usuario solamente tendría que proporcionar una solicitud general. Internamente, el sistema dividiría el trabajo y cada agente realizaría una parte.

La idea es muy parecida a la forma en que trabaja un equipo humano. En una empresa, una persona puede investigar, otra analizar, otra redactar y otra revisar. No significa que una persona sea incapaz de realizar todas esas tareas, sino que la especialización puede hacer que el proceso sea más organizado y eficiente.

2. ¿Por qué utilizar varios agentes?

La primera pregunta que debemos hacernos antes de construir un sistema multi-agente es si realmente lo necesitamos.

Un solo agente puede ser suficiente para muchas aplicaciones. Si solamente queremos responder preguntas, consultar una API o realizar una tarea sencilla, añadir otros agentes puede hacer el sistema innecesariamente complicado.

Los sistemas multi-agente comienzan a tener sentido cuando el problema puede dividirse en responsabilidades claramente diferenciadas.

Por ejemplo, supongamos que una empresa quiere automatizar el análisis de una solicitud de un cliente. El sistema podría necesitar leer documentos, consultar información interna, verificar datos y finalmente redactar una respuesta.

En lugar de crear un agente enorme con veinte herramientas y cientos de instrucciones, podemos separar las responsabilidades.

Un agente puede encargarse de los documentos, otro de la base de datos y otro de revisar la respuesta final.

Esto puede facilitar el desarrollo porque cada componente tiene una responsabilidad más clara.

3. Un agente contra varios agentes

Para entender mejor la diferencia, imaginemos una aplicación que recibe la siguiente solicitud:

“Analiza las ventas de este mes, compáralas con el mes anterior y genera un reporte con las principales conclusiones.”

Un agente único podría tener acceso a:

  • Base de datos.
  • Python.
  • Archivos.
  • Herramientas de generación de reportes.
  • Instrucciones para análisis.
  • Instrucciones para redacción.

Todo podría funcionar, pero el agente tendría que decidir qué herramienta utilizar y en qué orden.

En una arquitectura multi-agente podríamos separar el trabajo.

El primer agente consulta las ventas. El segundo analiza los datos utilizando Python. El tercero interpreta los resultados desde una perspectiva de negocio. Finalmente, un cuarto agente redacta el reporte.

El resultado puede ser similar, pero la organización interna es diferente.

La arquitectura multi-agente busca principalmente dividir un problema complejo en problemas más pequeños y especializados.

4. La especialización de los agentes

Uno de los conceptos más importantes en este tipo de sistemas es la especialización.

No todos los agentes deben saber hacer todo.

Un agente especializado puede recibir instrucciones como:

“Tu función es analizar datos de ventas. No redactes informes ni modifiques información de la base de datos. Utiliza Python cuando necesites realizar cálculos.”

Otro agente podría tener:

“Tu función es revisar documentos técnicos. Extrae información relevante y señala inconsistencias.”

La especialización permite reducir el número de decisiones que cada agente debe tomar.

También facilita las pruebas. Si el agente encargado del análisis produce resultados incorrectos, podemos evaluar ese componente sin tener que revisar todo el sistema.

Esta separación de responsabilidades es especialmente útil cuando estamos desarrollando sistemas grandes.

5. El agente coordinador

Cuando tenemos varios agentes aparece inmediatamente un problema:

¿Quién decide qué debe hacer cada agente?

Una solución común es utilizar un agente coordinador, también llamado supervisor u orquestador.

Su función no necesariamente es resolver directamente el problema. Su trabajo principal consiste en determinar cómo debe organizarse el proceso.

Por ejemplo, recibe:

“Investiga las principales tecnologías de baterías para vehículos eléctricos y prepara un reporte.”

El coordinador podría determinar que primero se necesita investigación.

Entonces envía una tarea al agente investigador.

Después de recibir la información, puede solicitar al agente analista que compare las tecnologías.

Finalmente puede enviar los resultados al agente redactor para preparar el documento.

El coordinador funciona como una especie de director del equipo.

6. Comunicación entre agentes

Para que varios agentes puedan colaborar necesitan alguna forma de intercambiar información.

La comunicación puede ser tan sencilla como pasar el resultado de un agente directamente al siguiente.

Por ejemplo:

Agente investigador → resultados de búsqueda → agente analista

El analista recibe la información y produce:

análisis → agente redactor

El redactor genera:

reporte → agente revisor

El revisor finalmente devuelve:

resultado validado → usuario

En sistemas más complejos, los agentes pueden utilizar estructuras de datos, bases de datos, sistemas de mensajes o memoria compartida.

Lo importante es que la información intercambiada tenga una estructura clara.

Si un agente produce una respuesta enorme y poco organizada, el siguiente agente tendrá más dificultades para interpretar qué información es realmente importante.

7. Arquitectura secuencial

Una de las arquitecturas multi-agente más sencillas es la secuencial.

En este modelo, un agente trabaja después de otro.

Podemos imaginar el proceso:

Agente A → Agente B → Agente C → Agente D

Cada agente recibe el resultado producido por el anterior.

Un ejemplo podría ser un sistema para generar contenido técnico.

El primer agente investiga el tema.

El segundo organiza la información.

El tercero redacta el artículo.

El cuarto revisa la calidad.

Esta arquitectura es relativamente sencilla de implementar y resulta fácil de entender.

Su principal desventaja es que los agentes dependen unos de otros. Si el segundo agente no puede continuar, los siguientes tampoco pueden hacerlo.

8. Arquitectura paralela

No siempre es necesario que los agentes trabajen uno después de otro.

Supongamos que queremos investigar un producto tecnológico.

Podemos tener simultáneamente:

  • Un agente investigando especificaciones.
  • Otro buscando precios.
  • Otro analizando opiniones.
  • Otro investigando alternativas.

Los cuatro pueden trabajar al mismo tiempo.

Después, un agente coordinador reúne los resultados.

Este enfoque puede reducir el tiempo total de ejecución cuando las tareas son independientes.

La idea es similar a dividir un problema grande en varias tareas que pueden resolverse simultáneamente.

Sin embargo, la ejecución paralela también puede aumentar el consumo de recursos y hacer más complicada la coordinación.

9. Agentes que revisan el trabajo de otros agentes

Otra aplicación interesante es utilizar un agente como revisor o evaluador.

En lugar de confiar completamente en el primer agente, podemos pedir a otro que revise su trabajo.

Por ejemplo:

Agente redactor: genera una respuesta.

Agente revisor: busca errores, información contradictoria o problemas de formato.

Si encuentra un problema, puede devolver la respuesta al primer agente para que la corrija.

Esto genera un ciclo:

crear → revisar → corregir → revisar nuevamente

Este patrón puede ser muy útil cuando la calidad es más importante que la velocidad.

Por ejemplo, puede utilizarse en generación de código, documentación técnica, análisis de información y elaboración de reportes.

10. Un agente puede tener herramientas diferentes a otro

La especialización también puede aplicarse a las herramientas.

Recordemos que en artículos anteriores vimos que los agentes pueden utilizar APIs, bases de datos, buscadores, Python y otras herramientas.

En un sistema multi-agente no tenemos que entregar todas las herramientas a todos los agentes.

Un agente investigador puede tener acceso a búsqueda web.

Un agente de datos puede utilizar Python y una base de datos.

Un agente documental puede acceder a archivos.

Un agente redactor puede no necesitar ninguna herramienta externa.

Esto permite aplicar el principio de mínimo acceso necesario.

Si un agente no necesita modificar una base de datos, no deberíamos darle permisos para hacerlo.

11. Memoria compartida

Los agentes también pueden compartir información mediante una memoria común.

Imaginemos un sistema que analiza una máquina industrial.

Un agente recibe información de sensores y detecta una temperatura anormal.

Otro agente puede consultar esa información y compararla con registros anteriores.

Un tercer agente puede utilizar los resultados para generar una recomendación de mantenimiento.

La memoria compartida permite que los agentes no tengan que repetir todo el proceso.

Puede implementarse mediante una base de datos tradicional, una base de datos vectorial, archivos, estructuras en memoria u otros mecanismos.

La elección depende del tipo de información y de las necesidades del sistema.

12. Un ejemplo de multi-agente aplicado a IoT

Imaginemos ahora una aplicación de Internet de las Cosas para monitorear una instalación.

Tenemos sensores de temperatura, presión y gas.

En lugar de crear un único agente encargado de todo, podemos dividir el sistema.

El agente de monitoreo recibe las lecturas.

El agente de análisis estudia si los valores están dentro de los límites normales.

El agente de diagnóstico intenta determinar la posible causa de una anomalía.

El agente de notificaciones prepara una alerta para el usuario.

Finalmente, un coordinador decide cuándo debe intervenir cada uno.

Supongamos que un sensor registra un aumento repentino de temperatura.

El agente de monitoreo detecta el cambio.

El agente de análisis determina que la temperatura está fuera del rango normal.

El agente de diagnóstico consulta información histórica y encuentra que el comportamiento puede estar relacionado con una condición determinada.

El agente de notificaciones genera una alerta.

De esta forma, cada componente tiene una función concreta.

13. Arquitecturas jerárquicas

Cuando un sistema se vuelve todavía más grande, podemos utilizar diferentes niveles de coordinación.

Por ejemplo:

Coordinador principal

→ Equipo de investigación

→ Equipo de análisis

→ Equipo de generación de resultados

Dentro del equipo de investigación puede existir otro coordinador encargado de varios agentes especializados.

Esto genera una estructura jerárquica.

La ventaja es que podemos organizar sistemas muy complejos sin tener un único agente responsable de controlar absolutamente todo.

La desventaja es que aumenta considerablemente la complejidad del sistema.

Cada nivel necesita comunicarse correctamente con los demás.

a man sitting in front of two computer monitors

14. ¿Los agentes realmente “trabajan en equipo”?

Es importante entender correctamente esta idea.

Cuando hablamos de colaboración entre agentes no significa necesariamente que cada agente tenga una personalidad diferente o que exista una conversación humana entre ellos.

La colaboración normalmente consiste en intercambiar información y resultados estructurados.

Por ejemplo:

El agente A puede devolver:

Producto: batería de litio-ion

Ventaja: alta densidad energética

Desventaja: degradación con ciclos

Fuente: documento técnico

El agente B utiliza esa información para realizar una comparación.

La colaboración es, por lo tanto, principalmente una cuestión de arquitectura y flujo de información.

15. El problema de tener demasiados agentes

Más agentes no significa automáticamente un mejor sistema.

Uno de los errores más comunes es crear agentes para absolutamente todo.

Si una tarea puede resolverse con una función de Python, probablemente no necesitamos un agente.

Si una API puede proporcionar directamente un dato, tampoco necesariamente necesitamos varios agentes.

Cada agente adicional introduce:

  • Mayor consumo de tokens.
  • Mayor tiempo de ejecución.
  • Más posibilidades de error.
  • Más comunicación entre componentes.
  • Mayor dificultad de depuración.
  • Mayor complejidad de seguridad.

Por eso, antes de crear un sistema multi-agente debemos preguntarnos:

¿Esta tarea realmente necesita otro agente?

Si la respuesta es no, probablemente una función, una regla o una herramienta tradicional sea una solución mejor.

16. Los errores pueden propagarse

Existe otro problema importante: los agentes dependen de la información producida por otros agentes.

Si el agente investigador obtiene información incorrecta, el analista podría utilizarla.

Después, el redactor podría convertir ese análisis incorrecto en un reporte aparentemente correcto.

Por eso, los sistemas multi-agente necesitan mecanismos de validación.

Un agente revisor puede comprobar resultados.

También podemos utilizar reglas tradicionales para validar determinados datos.

Por ejemplo, si un sensor de temperatura solamente puede producir valores entre -40 y 125 grados Celsius, podemos comprobar ese rango mediante código antes de entregarlo a un agente.

No debemos utilizar inteligencia artificial para resolver problemas que una simple regla puede solucionar de forma más confiable.

17. Seguridad y permisos

La seguridad se vuelve todavía más importante cuando tenemos varios agentes.

Imaginemos un agente que tiene acceso a una base de datos y otro que solamente debe generar reportes.

No existe razón para que el segundo tenga permisos para modificar la base de datos.

Debemos separar cuidadosamente las capacidades.

También es recomendable controlar acciones críticas.

Por ejemplo, un agente puede recomendar:

“Cerrar la válvula.”

Pero eso no significa necesariamente que deba ejecutar inmediatamente la acción.

Podemos establecer una política:

Analizar → recomendar → solicitar autorización → ejecutar

Esto resulta especialmente importante en sistemas industriales, financieros o cualquier aplicación donde una decisión incorrecta pueda producir consecuencias reales.

18. Un ejemplo completo

Supongamos que queremos construir un sistema que analice una empresa y produzca un reporte mensual.

El usuario solicita:

“Analiza el rendimiento de la empresa durante este mes y genera un reporte.”

El coordinador recibe la solicitud.

Primero asigna la tarea al agente de datos.

El agente consulta la base de datos y obtiene las ventas, ingresos y otros indicadores.

Después entrega los datos al agente analista.

El agente analista utiliza Python para calcular estadísticas y detectar tendencias.

Los resultados pasan al agente de negocio.

Este agente interpreta qué significan las tendencias desde una perspectiva empresarial.

Finalmente, el agente redactor crea el reporte.

Antes de entregarlo, el agente revisor comprueba que los números coincidan con los datos originales.

Podríamos representar conceptualmente el proceso como:

Usuario → Coordinador → Datos → Análisis → Interpretación → Redacción → Revisión → Usuario

Aquí tenemos varios agentes, pero cada uno tiene una responsabilidad concreta.

a man is looking through a microscope at a computer

19. Frameworks para construir sistemas multi-agente

Crear toda esta infraestructura desde cero es posible, pero puede requerir bastante código.

Por esta razón existen frameworks que facilitan el desarrollo de agentes y flujos de colaboración.

Entre las opciones conocidas se encuentran CrewAI y LangGraph, además de otras herramientas del ecosistema de agentes.

CrewAI está orientado a la creación de equipos de agentes con roles y tareas diferenciadas.

LangGraph permite representar flujos de trabajo de agentes como estructuras donde podemos controlar estados, decisiones, ciclos y diferentes caminos de ejecución.

La elección depende de lo que queramos construir.

No debemos elegir un framework simplemente porque sea popular. Primero debemos entender el problema y después elegir la herramienta que mejor se adapte a la arquitectura.

20. ¿Cuándo conviene utilizar multi-agente?

Una arquitectura multi-agente puede ser especialmente interesante cuando tenemos:

Problemas complejos: una solicitud requiere varias etapas diferentes.

Tareas especializadas: cada parte necesita conocimientos o herramientas diferentes.

Procesos paralelos: varias investigaciones pueden realizarse simultáneamente.

Revisión: necesitamos que un agente compruebe el trabajo de otro.

Herramientas diferentes: algunos agentes necesitan APIs, otros bases de datos y otros Python.

Procesos empresariales: una tarea requiere diferentes áreas o responsabilidades.

En cambio, para tareas simples puede ser mejor utilizar un solo agente.

La regla más importante es comenzar con la arquitectura más sencilla que resuelva correctamente el problema.

21. Cómo diseñar tu primer sistema multi-agente

Si queremos experimentar con esta tecnología, no es recomendable comenzar creando diez agentes.

Es mejor comenzar con dos.

Por ejemplo:

Agente 1: investigador

Su función es buscar y recopilar información.

Agente 2: analista

Su función es recibir esa información y obtener conclusiones.

Después podemos añadir un tercero:

Agente 3: revisor

Su función es verificar el resultado.

Finalmente podemos agregar un coordinador si el flujo comienza a necesitar decisiones más complejas.

Este proceso incremental permite entender cómo se comunican los agentes sin introducir demasiadas variables al mismo tiempo.

22. El futuro de los sistemas multi-agente

Los sistemas multi-agente representan una evolución interesante porque permiten pasar de un agente que realiza tareas individuales a sistemas capaces de organizar procesos completos.

En lugar de pensar únicamente:

“Tengo una IA que responde preguntas.”

Podemos comenzar a pensar:

“Tengo un sistema compuesto por diferentes agentes que colaboran para alcanzar un objetivo.”

Esto abre posibilidades en investigación, programación, análisis de datos, automatización empresarial, soporte técnico, ingeniería e IoT.

Sin embargo, la verdadera dificultad no está simplemente en crear muchos agentes.

El reto está en diseñar correctamente sus responsabilidades, comunicación, permisos, memoria y mecanismos de validación.

Una arquitectura bien diseñada puede ser poderosa. Una arquitectura excesivamente complicada puede convertirse rápidamente en un sistema difícil de controlar.

Conclusiones

Las arquitecturas multi-agente permiten dividir problemas complejos entre varios agentes de inteligencia artificial especializados. Cada agente puede tener diferentes instrucciones, herramientas, permisos y responsabilidades, mientras que un coordinador puede encargarse de organizar el trabajo.

La colaboración puede realizarse de forma secuencial, paralela, jerárquica o mediante ciclos de revisión. También es posible utilizar memoria compartida y diferentes herramientas para cada agente.

Sin embargo, utilizar varios agentes no siempre es mejor. Cada componente adicional aumenta la complejidad, los costos y los posibles puntos de fallo. Por eso, debemos diseñar el sistema pensando primero en el problema y después en la cantidad de agentes necesarios.

En el siguiente artículo continuaremos con una pieza fundamental de estas arquitecturas: la orquestación de agentes, es decir, cómo decidir quién manda, cómo se asignan las tareas y cómo se coordinan correctamente todos los agentes de un sistema.

Anterior​​                                                                                                       Siguiente