miércoles, 2 de julio de 2025

Hablemos de agentes (IV): sistemas multi-agente

En este post, el cuarto de la serie dedicada a hablar de agentes, vamos a dar el salto de considerar un agente individual, como hemos hecho hasta ahora (y como, con frecuencia, haremos en futuros artículos), a mirar hacia una multitud de agentes interaccionando entre sí.

Y, como en los posts anteriores de esta serie, la argumentación fundamental la obtendremos del libro  'Building Agentic AI systems' de Anjanava Biswas y Wrick Talukdar.


Un paradigma que viene de antiguo


Antes no puedo evitar una consideración. Esta idea de los sistemas distribuidos, integrados por unos módulos (que ahora llamamos agentes) que colaboran entre sí para resolver un problema o conseguir un objetivo, no es algo nuevo ni mucho menos.

Es un paradigma recurrente, que aparece una y otra vez a lo largo de la historia de la computación.

Por poner un ejemplo, cuando surgió con fuerza el paradigma de la programación orientada a objetos, allá hacia finales los años noventa (¡Uf! el siglo pasado), a veces se hablaba de los objetos precisamente como módulos que colaboraban entre sí para resolver un problema. No se me olvida una conferencia que pronunció en la ya desaparecida Telefónica Investigación y Desarrollo, allá por el año 94 o así, el mismísimo Grady Booch, a la sazón reconocido como experto en metodología de orientación a objetos, y cómo utilizó, como metáfora visual, la de las hormigas, precisamente por ese trabajo en colaboración entre los objetos.

Un poco en esa línea, surgió poco después la ya muy olvidada arquitectura CORBA ('Common Object Request Broker Architecture') que daba la base para un sistema de objetos distribuidos que podían colaborar entre sí.

Lo cierto es que aunque, en efecto, los objetos como tales han sido un éxito, no lo han sido tanto como sistemas colaborativos, sino mediante paradigmas de invocación y respuesta (una especie de cliente/servidor) con una lógica dirigida y que se aleja de la visión colaborativa de igual a igual. 

Y como estos, hay seguro muchos más ejemplos.

A pesar de esa recurrencia, creo que el éxito práctico de estos sistemas distribuidos de módulos colaborativos, entendiendo como éxito que se trate de un paradigma dominante y muchas implantaciones, yo lo juzgo, al menos hasta ahora, como bastante limitado.

¿Y por  qué sucede esto?

Pues, a bote pronto, diría que porque esos sistemas distribuidos son de un ámbito de aplicación más de nicho y porque creo que son inherentemente más complejos, así que, aunque como idea es muy atractiva (y tiene y tendrá ámbitos de aplicación interesantísimos) la mayor parte de las veces seguimos recurriendo a sistemas no distribuidos / colaborativos bastante más sencillos en la práctica.


Definición


En cualquier caso, el paradigma de los módulos que colaboran de igual a igual, vuelve con cierta fuerza en la Agentic AI en forma de sistemas multi-agente.

Los autores citados arriba, definen un sistema multiagente (MAS, 'Multi-Agent System') como:


un sistema compuesto por múltiples agentes autónomos que pueden interactuar, colaborar y cooperar para alcanzar objetivos compartidos.


Como se observa de la definición, lo importante no es sólo la modularidad sino, mucho más importante, la autonomía de esos agentes y la cooperación en la consecución de objetivos


Características


Los autores identifican las siguientes como las características fundamentales de los sistemas multi-agente:


  • Autonomía: Cada agente es independiente y se autogobierna con base en su percepción del entorno y sus objetivos. No existe un control centralizado.

  • Interacción: Los agentes se comunican entre sí mediante protocolos establecidos que les permiten intercambiar información, negociar tareas y coordinarse.

  • Adaptabilidad: Estos sistemas exhiben la capacidad de adaptarse y cambiar su comportamiento como respuesta a cambios en el entorno o en los objetivos de los agentes individuales.

  • Control distribuido: Como decíamos, el control no es central, sino distribuido entre los agentes. Esta forma de actuar proporciona resiliencia al conjunto frente a un eventual mal funcionamiento de un agente concreto.

  • Escalabilidad: Se trata de un planteamiento inherentemente escalable mediante la adición o eliminación de agentes en el sistema.

  • Heterogeneidad: Los agentes individuales dentro de un sistema multi-agente pueden ser diferentes entre sí, con diferentes capacidades y diferentes objetivos. Esto permite añadir nuevas posibilidades al conjunto.

  • Conocimiento y datos distribuidos: No sólo el control, también el conocimiento y los datos se encuentran distribuidos entre los agentes, proporcionando robustez al conjunto al evitar puntos únicos de fallo.


Mecanismos de interacción


Existen, tres esquemas o mecanismos básicos de interacción entre los agentes de un sistema multi-agente, a saber:


  • Cooperación: Los agentes trabajan conjuntamente para conseguir un objetivo común, un objetivo que, además, normalmente no pueden alcanzar por separado. Un ejemplo sería la cooperación de personas, drones y vehículos robóticos en la localización y rescate de víctimas de una catástrofe natural como un terremoto.

  • Coordinación: En este caso, existen interdependencias debido a solapes e incluso conflictos entre las responsabilidades y acciones de los diferentes agentes y es necesaria esa mayor coordinación. Algunos mecanismos de coordinación pueden ser la planificación de tareas, la asignación de recursos, etc. Podría ser el caso de robots colaborando en un proceso de producción.

  • Negociación: En este mecanismo los agentes alcanzan acuerdos entre ellos para la compartición de recursos, reparto de tareas, etc. Implica que los agentes hagan ofertas, contraofertas y alcancen compromisos. Utilizan técnicas como votaciones, subastas, etc. Tienden a aplicarse en situaciones de recursos limitados u objetivos que compiten entre sí.


Se observa que, como esquemas de trabajo e interacción, son muy genéricos y aplican a todo tipo de agentes, no sólo los agentes de la Agentic AI, aunque sea en ese contexto en que se mencionan en la obra citada y en que los traemos a colación en este post..

Además, y aunque no lo veremos aquí, esos mecanismos se pueden (y deben) concretar en protocolos específicos y detallados de interacción, algo de lo que seguramente hablemos en otro momento en esta serie.


Una conexión a explorar: swarm robotics


Hay una conexión, o un caso particular, si se quiere que, antes o después, espero explorar en este blog. 

Se trataría de la relación de esto que estamos viendo como sistemas multi-agente con la denominada robótica de enjambre ('swarm robotics').

Desde un punto de vista conceptual, sin ninguna duda esos enjambres de robots son sistemas multi-agente. Lo que quiero explorar es ya en el detalle de protocolos y algoritmos y comprobar cuántas coincidencias hay o si vemos realizaciones especializadas.


Conclusiones


Como vemos, el paradigma de los sistemas multi-agente viene de antiguo y existen planteamientos interesantes sobre su realización, aunque, quizá, todavía de no mucha implantación.

Quizá, el interés más inmediato sea comprobar hasta qué punto los nuevos agentes de la Agentic AI basados en LLMs o modelos fundacionales nos pueden permitir construir sistemas multi-agente prácticos y efectivos y de una manera relativamente sencilla.


Artículos de este blog relacionados