En este tutorial, demostramos cómo crear un sistema de IA colaborativo utilizando el marco ChatDev y exploramos 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 de desarrollo de software.
Para potenciar estos agentes, integramos la interfaz de programación de aplicaciones (API) IBM watsonx.ai como backend modelo. Aprovechando una integración de watsonx.ai con Hugging Face, configuramos el marco para utilizar Llama-4-Maverick para generar una solución de software sencilla. 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 agentes permiten una colaboración multiagente eficaz y fiable.
IA colaborativa: sistemas de inteligencia artificial diseñados para trabajar junto con humanos o agentes de IA, a menudo mediante el uso de deep learning 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 distintos niveles de conocimientos, capacidades y perspectivas, y su colaboración suele implicar negociación, planificación y acción coordinada.
Agentes de juego de roles: agentes de IA que simulan roles o personas 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 orientadas a un propósito.
Protocolos de comunicación de agentes: estándares o marcos que definen cómo los agentes de IA interactúan entre sí intercambiando 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 la IA colaborativa, en la que 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 un marco multiagente de código abierto desarrollado por OpenBMB, una iniciativa impulsada por la investigación centrada en el avance de las herramientas de IA y la inteligencia artificial general (AGI). El marco utiliza el proceso de desarrollo de software como un dominio práctico para estudiar agentes de IA colaborativa. Cada agente funciona con un modelo de lenguaje de gran tamaño (LLM) y se le pide que asuma funciones específicas como CEO, CTO, diseñador, tester y programador1.
A partir de una breve y descriptiva entrada 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 indicaciones siguen plantillas predefinidas que incluyen la función del agente, 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 integración de la identidad del rol y la memoria compartida dentro de la propia instrucción.
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 aplicación de lista de tareas pendientes’ → CEO delega al CTO → CTO asigna al desarrollador → desarrollador escribe código → el probador valida
Las interacciones de los agentes están orquestadas por ChatChain, la lógica de coordinación personalizada del marco ChatDev. La comunicación entre agentes se produce a través de un diálogo multiturno, o sistema de paso de mensajes, donde los agentes intercambian secuencialmente mensajes JSON estructurados. Estos mensajes representan resultados y actualizaciones de contexto y actúan como un búfer de memoria compartido, lo que permite a los agentes aprovechar los outputs de los demás a lo largo de las fases de desarrollo.
Esta arquitectura permite una comunicación coherente y una colaboración contextual mediante la combinación de lenguajes naturales y de programación para completar el proyecto de principio a fin. El proceso se basa en una comunicación multiagente coordinada, con mecanismos internos que actúan como protocolos para orquestar una comunicación eficaz del agente de IA para completar cada fase.
Los usuarios pueden monitorizar y revisar el flujo de trabajo agéntico utilizando la herramienta Visualizer de ChatDev, una interfaz web basada en Flask que admite tanto el análisis posterior a la ejecución como la monitorización en tiempo real. El Visualizer ofrece varios modos, como un Log Viewer para inspeccionar las interacciones de los agentes en tiempo real, un Replay Viewer para visualizar los registros de conversaciones multiagente guardados y un ChatChain Viewer 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. Aunque el núcleo de ChatDev admite múltiples proveedores de modelos, esta versión se modificó utilizando un enfoque pragmático de "vibecodificación", lo que lo hace funcional pero no probado exhaustivamente en todos los escenarios.
Las adaptaciones clave incluyen:
Envolver la API de IBM watsonx para que se ajuste a la interfaz LLM esperada de ChatDev.
Ajuste de las plantillas de instrucción para que funcionen con los requisitos de token y formato de la API de IBM watsonx.ai
Modificación de la lógica de selección de modelos para admitir IBM watsonx.ai como opción de backend de modelos.
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. Aunque los agentes generalmente producen código y documentación coherentes y bien estructurados, las aplicaciones resultantes pueden requerir un refinamiento manual para ser 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 de ChatDev que hayan abierto su trabajo, haciendo posible este tipo de exploración.
Aunque 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 al rendimiento o al comportamiento. Para ayudar a garantizar una configuración y una facilidad de uso sin problemas, los usuarios deben consultar la documentación oficial de ChatDev y las guías de instalación para obtener instrucciones específicas sobre la solución de problemas y el entorno.
Con eso en mente, comencemos configurando el entorno para ejecutar la aplicación. Puede seguir estos pasos en el archivo Markdown dentro de la carpeta del proyecto en GitHub o siguiéndolos aquí.
Desde el directorio de proyectos del tutorial, cree un entorno virtual utilizando Python 3.11:
Esto instala las dependencias del proyecto.
La variable se establece para la sesión actual del terminal (cerrar el terminal los restablecerá).
Aunque este tutorial utiliza IBM® watsonx.ai como backend del modelo, el marco subyacente de ChatDev se diseñó originalmente para admitir varios proveedores de LLM, incluido 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 el Visualizer de ChatDev, una interfaz gráfica de usuario basada en Flask que le permite inspeccionar los registros del agente en tiempo real, explorar el flujo de trabajo de ChatChain o reproducir los diálogos guardados del agente. Esta herramienta es útil para depurar, monitorizar 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:
A continuación, 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 utilizar 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. Aunque es personalizable, la modificación de las configuraciones de LLM puede dar lugar a resultados incompletos, incorrectos y variados.
ChatDev se basa en el marco 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 de modelo para interactuar con 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 trabajar con la API de IBM watsonx.ai.
Para experimentar con diferentes tipos de modelos , actualice la
Los parámetros del modelo se pueden configurar en
El límite de token para el modelo se puede configurar en el
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 reproducir conversaciones utilizando el Visualizer.
El script toma los siguientes argumentos:
Script de ejemplo:
Nota: aunque la arquitectura de ChatDev es extensible, esta versión del tutorial solo funciona de forma fiable con
El producto de software final se guarda en el
Un resultado típico podría ser algo como esto:
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 de 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 el visualizador de ChatDev
Para ejecutar la aplicación, siga las instrucciones del
La interoperabilidad de los agentes se refiere a la capacidad de los agentes autónomos para comprender, comunicarse y colaborar eficazmente mediante el uso de un protocolo o estándar compartido. Esta capacidad es esencial para escalar las capacidades de IA agéntica en todas las tareas, integrar grandes conjuntos de datos y resolver problemas complejos de forma cooperativa.
Los sistemas multiagente suelen utilizar protocolos de comunicación de agentes (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 agentes (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.
ChatDev, sin embargo, 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 síncrono y por turnos entre agentes a lo largo de todas las etapas del proceso de desarrollo de software. Aunque 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 comienzo de cada fase, cada uno de los agentes participantes recibe una instrucción estructurada con su función, tarea actual e historial de conversaciones relevante. ChatDev utiliza una instrucción de inicio para incrustar 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 las output y actualizaciones de contexto. Esto permite un intercambio de datos coherente y una trazabilidad en todo el flujo de trabajo.
Acondicionamiento de roles: cada agente se inicializa con una instrucción que refuerza su rol asignado, incluidas las responsabilidades, los objetivos y las expectativas de comportamiento, una estrategia clave en la desalucinación comunicativa.
Juntos, estos mecanismos forman un marco de comunicación ligero y escalable que permite a ChatDev generar software de forma colaborativa a partir de una única instrucción de usuario. Esto ilustra cómo la colaboración estructurada basada en LLM puede estimular los flujos de trabajo multiagente tradicionales.
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 funciones y responsabilidades claramente definidas. Las indicaciones 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 de cascada modificado, una metodología tradicional de ingeniería de software que divide las tareas en tres fases secuenciales: diseño, codificación y pruebas. Las fases de codificación y prueba se dividen a su vez 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 lenguaje: decida qué lenguaje de programación utilizar para crear y ejecutar el software.
Codificació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 la funcionalidad del código.
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
Para guiar la comunicación adecuada entre los agentes, ChatDev utiliza la solicitud de inicio como estrategia de inicialización del agente antes de cada ronda de subtareas. Inception prompting es una técnica de prompt engineering que se puede utilizar para integrar roles, objetivos y responsabilidades para una comunicación eficaz entre los agentes.
Veamos un ejemplo de cómo las indicaciones de inicio 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 función. Dos ejemplos son
A continuación se muestran las instrucciones del sistema basadas en los roles de 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 instrucción también guía el comportamiento y las respuestas de los respectivos roles durante las interacciones dando instrucciones personalizadas sobre cómo completar la tarea asignada.
La comunicación de los agentes se guía eficazmente por instrucciones cuidadosas para ayudar a garantizar que ambos roles tengan expectativas claras y puedan colaborar de manera efectiva.
Para abordar posibles alucinaciones de codificación (generación de código incompleto o incorrecto), 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 del código.
El proceso de revisión de código consta de dos fases,
En este ejemplo, el agente de Code Review detecta un error en el resultado del agente Programmer y lo comunica, junto con una sugerencia para corregir el problema en el código fuente. A continuación, el agente Programmer corrige su resultado original en función de ese feedback.
Esta es parte del resultado del agente Code Review durante una iteración de la fase
El agente Programmer responde con el código corregido durante el siguiente
El Code Reviewer y el Programmer continúan refinando el código durante un máximo de 10 iteraciones o hasta que se alcanza un consenso tras dos fases de modificación idénticas y consecutivas.
El patrón de desalucinación de la comunicación ayuda a garantizar que el código final sea preciso, 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 permite la IA colaborativa simulando 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 de 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, solicitud de inicio y desalucinación comunicativa. Esto pone de relieve la importancia de orquestar una comunicación eficaz entre los agentes para una colaboración satisfactoria y mejorar la calidad del resultado.
Con herramientas de visualización integradas para supervisar y reproducir las interacciones de los agentes, ChatDev proporciona una potente plataforma para estudiar los flujos de trabajo multiagente y la dinámica del trabajo en equipo impulsado por LLM. 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 líder en IA del sector de IBM y junto a su cartera de soluciones.
Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.