En este tutorial, demostramos cómo crear un sistema de IA colaborativo mediante la infraestructura de ChatDev y exploraremos su estructura de comunicación de agentes basada en roles, ChatChain. ChatDev utiliza agentes de IA con roles asignados para simular una empresa de software virtual. Cada agente inteligente colabora con otros a través de una comunicación estructurada, siguiendo un flujo de trabajo secuencial basado en fases del ciclo de vida del desarrollo de software.
Para potenciar estos agentes, integramos IBM® watsonx.ai, la interfaz de programación de aplicaciones (API), como backend modelo. Mediante una integración de watsonx.ai con Hugging Face, configuramos el marco para usar Llama-4-Maverick y generar una solución de software simple. Este ejemplo sirve como base para explorar ChatChain y otros mecanismos internos de comunicación de agentes que guían el comportamiento y la toma de decisiones de los agentes a lo largo del flujo de trabajo.
Al final de este tutorial, debería tener experiencia práctica en la configuración y ejecución de ChatDev, y una comprensión más clara de cómo los protocolos de comunicación de los agentes permiten una colaboración multiagente eficaz y confiable.
IA colaborativa: sistemas de inteligencia artificial diseñados para trabajar junto con humanos o agentes de IA, a menudo mediante el uso de aprendizaje profundo u otras técnicas avanzadas para permitir la cooperación, la toma de decisiones compartida y la resolución conjunta de problemas para lograr objetivos comunes.
Colaboración multiagente: múltiples agentes autónomos que comparten información y se coordinan para lograr un objetivo compartido. Estos agentes pueden tener diferentes niveles de conocimiento, capacidades y perspectivas, y su colaboración a menudo implica negociación, planificación y acción coordinada.
Agentes de juego de roles: agentes de IA que simulan roles o personajes específicos para interactuar y colaborar de manera orientada a objetivos. Estos roles pueden reflejar profesiones o personajes del mundo real, lo que permite interacciones más conscientes del contexto y basadas en propósitos.
Protocolos de comunicación de agentes: estándares o infraestructura que definen cómo los agentes de IA interactúan entre sí mediante el intercambio de mensajes de datos estructurados. Estos protocolos rigen el formato, la semántica y las reglas de comunicación para los agentes que se coordinan dentro de sistemas multiagente.
ChatDev es una implementación basada en roles de IA colaborativa, donde los agentes individuales asumen roles especializados para trabajar hacia un objetivo compartido. Este diseño refleja los principios de la inteligencia colectiva (esencialmente, una colaboración eficaz) y posiciona a ChatDev como un recurso valioso para estudiar y avanzar en este campo.
ChatDev es una infraestructura de código abierto multiagente desarrollada por OpenBMB, una iniciativa impulsada por la investigación centrada en el avance de las herramientas de IA y la inteligencia artificial general (AGI). La infraestructura utiliza el proceso de desarrollo de software como un dominio práctico para estudiar agentes de IA. Cada agente está impulsado por un modelo de lenguaje grande (LLM) y se le da una instrucción para asumir roles específicos, como director ejecutivo (CEO), director de tecnología (CTO), diseñador, evaluador y programador.1
A partir de una entrada breve y descriptiva del usuario, estos agentes colaboran para diseñar, implementar y probar iterativamente un proyecto de software completo. Cada agente se implementa como una clase de Python que se comunica secuencialmente mediante instrucciones estructuradas en lenguaje natural. Estas instrucciones siguen plantillas predefinidas que incluyen el rol del agente, las instrucciones específicas de la tarea y el contexto relevante de interacciones anteriores. Esta estrategia de plantillas ayuda a garantizar la continuidad y la coherencia mediante la incorporación de la identidad del rol y la memoria compartida dentro de la instrucción misma.
El equipo de agentes especializados de ChatDev trabaja en conjunto para generar una solución de software simple a partir de una entrada de usuario de una línea que describe su idea.
Entrada del usuario: 'Crear una lista de tareas pendientes' → El CEO delega al CTO → El CTO asigna al desarrollador → El desarrollador escribe el código → El evaluador valida
Las interacciones de los agentes están orquestadas por ChatChain, la lógica de coordinación personalizada dentro de la infraestructura de ChatDev. La comunicación entre agentes se produce a través de un diálogo de varios turnos, o sistema de paso de mensajes, donde los agentes intercambian secuencialmente mensajes JSON estructurados. Estos mensajes representan salidas y actualizaciones de contexto y actúan como un búfer de memoria compartido, lo que permite a los agentes aprovechar los resultados de los demás a lo largo de las fases de desarrollo.
Esta arquitectura permite una comunicación coherente y una colaboración consciente del contexto mediante la combinación de lenguajes naturales y de programación para completar el proyecto de principio a fin. El proceso se basa en la comunicación coordinada entre múltiples agentes, con mecanismos internos que actúan como protocolos para orquestar una comunicación eficaz entre los agentes de IA para completar cada fase.
Los usuarios pueden monitorear y revisar el flujo de trabajo mediante la herramienta Visualizer de ChatDev, una interfaz web basada en Flask que admite tanto el análisis posterior a la ejecución como el monitoreo en tiempo real. El visualizador proporciona varios modos, como un visor de registros para inspeccionar las interacciones de los agentes en tiempo real, un visor de repetición para visualizar los registros de conversaciones multiagente guardados y un visor de ChatChain para examinar el flujo de coordinación de tareas. Esta interfaz interactiva permite a los usuarios depurar, experimentar y estudiar la colaboración multiagente a través de un entorno estructurado a través de un navegador local.
Este tutorial utiliza una versión personalizada de ChatDev adaptada específicamente para la API de IBM watsonx.ai. Si bien el núcleo de ChatDev admite múltiples proveedores de modelos, esta versión se modificó mediante el uso de un enfoque pragmático de "vibe coding", lo que lo hace funcional pero no probado exhaustivamente en todos los escenarios.
Las adaptaciones clave incluyen:
Envolver la API de IBM watsonx.ia para que se ajuste a la interfaz LLM esperada de ChatDev.
Ajustar las plantillas de instrucciones para que funcionen con los requisitos de token y formato de la API de IBM watsonx.ai
Modificar la lógica de selección de modelos para admitir IBM watsonx.ai como opción de backend de modelo de IA.
Esta implementación demuestra cómo se puede ampliar ChatDev para admitir proveedores de LLM alternativos. Otros proveedores de modelos (por ejemplo, OpenAI, Ollama) no se han probado con esta versión personalizada de ChatDev y requerirían ajustes a nivel de código.
Al igual que con muchos flujos de trabajo de IA generativa, el resultado puede variar entre ejecuciones. Si bien los agentes generalmente producen código y documentación coherentes y bien estructurados, las aplicaciones resultantes pueden requerir un refinamiento manual para volverse completamente funcionales. Factores como el diseño de instrucciones, la complejidad de las tareas y la variabilidad inherente de las respuestas de LLM contribuyen a esta imprevisibilidad.
Este tutorial sirve como introducción práctica a los sistemas colaborativos multiagente, centrándose en cómo los agentes se comunican y coordinan dentro de ChatDev. No pretende ser una solución lista para la producción, sino una base para el aprendizaje, la experimentación y explorar la colaboración de agentes impulsada por LLM. Agradecemos a los investigadores detrás de ChatDev por hacer posible este tipo de exploración mediante su trabajo de código abierto.
Si bien ChatDev está diseñado para ser multiplataforma, los usuarios pueden encontrar problemas específicos de la plataforma durante la configuración o la ejecución. Por ejemplo, PowerShell en Windows puede requerir ajustes en los comandos de shell destinados a sistemas basados en Unix. Las variaciones en el sistema operativo, las versiones de Python y las arquitecturas de CPU también pueden afectar el rendimiento o el comportamiento. Para ayudar a garantizar una configuración y usabilidad fluidas, los usuarios deben consultar la documentación oficial de ChatDev y las guías de instalación para la resolución de problemas y las instrucciones específicas del entorno.
Con eso en mente, comencemos por configurar el entorno para ejecutar la aplicación. Puede seguir estos pasos en el archivo Markdown dentro de la carpeta del proyecto en GitHub o aquí.
Desde el directorio de proyectos del tutorial, cree un entorno virtual mediante Python 3.11:
Esto instala las dependencias del proyecto.
La variable está configurada para la sesión actual del terminal (cerrar el terminal los restablecerá).
Aunque este tutorial utiliza IBM watsonx.ai como modelo de backend, la infraestructura de ChatDev se diseñó originalmente para admitir múltiples proveedores de LLM, incluyendo un OpenAI predeterminado. Algunas partes del código base (por ejemplo, la lógica de selección de modelos o las interfaces compartidas) siguen haciendo referencia a la variable de entorno
Opcionalmente, puede ejecutar Visualizer de ChatDev, una GUI basada en Flask que le permite inspeccionar los registros de los agentes en tiempo real, explorar el flujo de trabajo de ChatChain o repetir los diálogos de agentes guardados. Esta herramienta es útil para depurar, monitorear o estudiar las interacciones de los agentes, pero no es necesaria para ejecutar el flujo de trabajo multiagente principal de ChatDev.
Para iniciar el visualizador, primero instale Flask:
Luego, ejecute la aplicación:
Una vez ejecutado, abra un navegador y vaya a:
Nota: Este tutorial utiliza una versión de ChatDev que está preconfigurada para usar la API de IBM watsonx.ai como backend del modelo. No se requiere ninguna configuración adicional ni cambios en la configuración del modelo para que el tutorial funcione correctamente. Si bien es personalizable, la modificación de las configuraciones de LLM puede derivar en resultados incompletos, incorrectos y variados.
ChatDev se basa en la infraestructura CAMEL, que gestiona los roles de los agentes, las tareas y las interacciones con los modelos de lenguaje. La implementación original utiliza la API de OpenAI como backend del modelo para interactuar con los modelos ChatGPT, como GPT-4, y utiliza GPT-3.5-turbo de forma predeterminada. El proyecto de código abierto también está diseñado para admitir múltiples modelos de proveedores de LLM a través de una interfaz de modelo unificada.
Omita este paso si tiene previsto utilizar la configuración predeterminada de IBM watsonx.ai. Para la experimentación, el tipo de modelo, los parámetros y los límites de token se pueden ajustar para que funcionen con la API de IBM watsonx.ai.
Para experimentar con diferentes tipos de modelos, actualice la entrada
Los parámetros del modelo se pueden configurar dentro de
El límite de token para el modelo se puede configurar en
Este paso ejecuta el flujo de trabajo principal de ChatDev. Cuando ejecute este script, los agentes simularán un proceso de desarrollo de software colaborativo basado en su entrada. El código generado, la documentación y los artefactos relacionados se guardarán en el directorio WareHouse del proyecto. Puede inspeccionar registros o repetir conversaciones mediante Visualizer.
El script toma los siguientes argumentos:
Ejemplo de script:
Nota: Aunque la arquitectura de ChatDev es extensible, esta versión del tutorial solo funciona de manera confiable con
El producto de software final se guarda en la carpeta
Un resultado típico podría verse así:
El resultado puede variar entre ejecuciones debido a la naturaleza probabilística de las herramientas de IA generativa.
Este directorio contiene un proyecto de software completo generado por agentes de IA. Junto con el código y la documentación de la aplicación, encontrará archivos de configuración que definen:
Roles del agente (RoleConfig.json)
Fases de desarrollo (PhaseConfig.json)
Flujo de trabajo del agente (ChatChainConfig.json)
Un registro de diálogo que se puede volver a colocar en Visualizer de ChatDev
Para ejecutar la aplicación, siga las instrucciones de la pantalla
La interoperabilidad de los agentes se refiere a la capacidad de los agentes autónomos para comprender, comunicarse y colaborar de manera efectiva mediante el uso de un protocolo o estándar compartido. Esta capacidad es esencial para escalar sistemas de IA agentiva en todas las tareas, integrar grandes conjuntos de datos y resolver problemas complejos de forma cooperativa.
Los sistemas multiagente a menudo utilizan protocolos de comunicación de agente (ACP), que proporcionan estándares para la comunicación de agente a agente, pero utilizan mecanismos de comunicación interna como lenguajes de comunicación de agente (ACL), como KQML o FIPA-ACL. Estos definen "actos comunicativos" estándar (por ejemplo, informar, solicitar, consultar) para permitir el diálogo estructurado y la coordinación en entornos dinámicos.
Sin embargo, ChatDev adopta un enfoque diferente. Logra la interoperabilidad de los agentes a través de ChatChain, un mecanismo de comunicación que estructura el flujo de trabajo de coordinación de agentes. ChatChain gestiona un flujo de información sincrónico y por turnos entre agentes a lo largo de todas las etapas del proceso de desarrollo de software. Si bien no se basa en ACL formales, ChatChain facilita un intercambio similar a un protocolo mediante el uso de convenciones optimizadas para LLM.
La comunicación con los agentes de ChatDev se basa en:
Plantillas de instrucciones: al inicio de cada fase, cada uno de los agentes participantes recibe un mensaje estructurado con su rol, tarea actual e historial de conversación relevante. ChatDev utiliza una instrucción inicial para integrar esta información directamente en la instrucción, lo que ayuda a mantener la coherencia y la alineación de objetivos en todas las interacciones.
Formatos de mensajes estructurados: los agentes se comunican a través de mensajes JSON estructurados que codifican salidas y actualizaciones de contexto. Esto permite un intercambio de datos y una trazabilidad constantes en todo el flujo de trabajo.
Acondicionamiento de roles: cada agente se inicializa con una instrucción que refuerza su rol asignado, incluyendo responsabilidades, metas y expectativas conductuales, una estrategia clave en la desalucinación comunicativa.
En conjunto, estos mecanismos forman una infraestructura ligera y escalable que permite a ChatDev generar software de forma colaborativa a partir de una única instrucción. Esto ilustra cómo la colaboración estructurada basada en LLM puede estimular los flujos de trabajo tradicionales de múltiples agentes.
ChatChain es el mecanismo de comunicación central en ChatDev, que orquesta la secuencia de interacciones de los agentes a lo largo del flujo de trabajo de desarrollo de software. Estructura la colaboración en un proceso iterativo similar a una cadena compuesto por distintas fases, cada una con objetivos y patrones de comunicación específicos.
Durante cada fase, ChatChain inicia un diálogo de agente dual entre dos agentes específicos del rol (por ejemplo, CEO y CTO, programador y revisor). Uno suele actuar como instructor y el otro como asistente. Estos intercambios estructurados y multiturno agilizan la toma de decisiones colaborativa al tiempo que preservan la claridad en roles y responsabilidades claramente definidos. Las instrucciones para cada fase incorporan instrucciones de tareas, identidad de roles y contexto relevante para guiar la interacción.
El flujo de trabajo general de ChatDev sigue un modelo en cascada modificado, una metodología tradicional de ingeniería de software que divide las tareas en tres fases secuenciales: diseño, programación y pruebas. Las fases de programación y prueba se dividen en subtareas para reflejar un proceso de desarrollo iterativo.
De forma predeterminada, ChatChain divide el flujo de trabajo en los siguientes pasos ordenados y automatizados:
Análisis de la demanda: defina la estructura y los componentes clave de la aplicación.
Selección de idioma: decida qué lenguaje de programación usar para crear y ejecutar el software.
Programación: los agentes escriben el código para crear la aplicación.
CodeCompleteAll: complete el código, incluidas las funciones o clases que faltan.
CodeReview: revise y modifique el código para la funcionalidad.
Prueba: ejecute el software y modifique el código en función del informe de prueba.
EnvironmentDoc: documente el entorno.
Manual: documente y escriba un manual para la aplicación.
Cada fase está definida por un objeto de configuración que especifica atributos que definen su comportamiento y propiedades. Por ejemplo, el atributo
Para guiar la comunicación adecuada entre los agentes, ChatDev utiliza instrucciones de inicio como estrategia de inicialización del agente antes de cada ronda de subtareas. Las instrucciones iniciales son una técnica de ingeniería rápida que se puede utilizar para integrar roles, objetivos y responsabilidades para una comunicación eficaz con los agentes.
Veamos un ejemplo de cómo las instrucciones iniciales guían a dos agentes para iniciar, mantener y concluir una subtarea.
Antes de cada subtarea, cada agente recibe indicaciones como parámetros que definen instrucciones, características, responsabilidades y objetivos específicos de su rol. Dos ejemplos incluyen
Estas son las instrucciones del rol del sistema basadas en los roles del agente para el instructor y el agente asistente en la fase LanguageChoose:
Estas dos instrucciones inicializan el comportamiento deseado del agente describiendo su función, experiencia y responsabilidades. La estrategia de instrucciones también guía el comportamiento y las respuestas de los respectivos roles durante las interacciones al dar instrucciones personalizadas sobre cómo completar la tarea asignada.
La comunicación de los agentes se guía de manera efectiva por instrucciones cuidadosas para ayudar a garantizar que ambos roles tengan expectativas claras y puedan colaborar de manera efectiva.
Para abordar posibles alucinaciones de programación (generación de código incompleta o incorrecta), ChatDev utiliza un patrón de comunicación llamado desalucinación comunicativa. Este patrón es esencial para estructurar la conversación durante el proceso de revisión de código.
El proceso de revisión de código consta de dos fases:
En este ejemplo, el agente Code Review detecta un error en los resultados del agente Programmer y lo comunica, junto con una sugerencia para corregir el problema en el código fuente. Luego, el agente Programmer corrige su resultado original en función de esa retroalimentación.
Aquí se muestra parte de los resultados del agente Code Review durante una iteración del
El agente programador responde con el código corregido durante el siguiente
El revisor de código y el programador continúan refinando el código hasta 10 iteraciones o hasta que se alcanza el consenso después de dos fases de modificación consecutivas e idénticas.
El patrón de desalucinación de la comunicación ayuda a garantizar que el código final sea preciso, y que esté completo y alineado con los requisitos previstos a través del refinamiento iterativo, al tiempo que facilita la finalización efectiva de las subtareas.
En este tutorial, exploramos cómo ChatDev habilita la IA colaborativa mediante la simulación de una empresa de software virtual compuesta por agentes de IA basados en roles. Utilizando la API de IBM watsonx.ai como backend del modelo, ChatDev guía a los agentes a través del ciclo de vida del desarrollo de software mediante el uso de comunicación estructurada tanto en lenguajes naturales como de programación.
Aunque ChatDev no utiliza un protocolo formal de comunicación de agentes, logra la interoperabilidad de los agentes a partir de las habilidades naturales del LLM con técnicas de comunicación de agentes como ChatChain, instrucciones de inicio y desalucinación comunicativa. Esto destaca la importancia de orquestar una comunicación eficaz entre los agentes para una colaboración exitosa y mejorar la calidad de los resultados.
Con herramientas de visualización integradas para monitorear y repetir las interacciones de los agentes, ChatDev proporciona una plataforma poderosa para estudiar los flujos de trabajo de múltiples agentes y la dinámica de Teamworks. Demuestra el potencial real de la IA colaborativa en la creación de software y más allá.
Ponga la IA a trabajar en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.
Reinvente los flujos de trabajo y las operaciones críticas añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.