¿Qué es ChatDev?

Autores

Vanna Winland

AI Advocate & Technology Writer

Erika Russi

Data Scientist

IBM

¿Qué es ChatDev?

ChatDev es un marco agéntico de código abierto que implementa la colaboración multiagente a través de un equipo organizado de agentes inteligentes especializados que funcionan con modelos de lenguaje de gran tamaño (LLM). Cada agente de IA está orquestado para colaborar en tareas dentro de las fases centrales del ciclo de vida de desarrollo de software para generar y producir de forma autónoma una aplicación de software.

ChatDev simula una empresa de software virtual que opera a través de varios agentes inteligentes que desempeñan diferentes funciones dentro del entorno de la organización. Estos agentes forman una estructura organizativa multiagente en la que pueden colaborar participando en seminarios funcionales que ayudan a agilizar el proceso de desarrollo de software. ChatDev aplica la IA al modelo de "cascada", ampliamente adoptado, un modelo de ciclo de vida de desarrollo de software que divide el proceso de desarrollo en fases: diseño, codificación, pruebas y documentación. Los agentes especializados trabajan en colaboración para completar cada fase.

Los objetivos principales de ChatDev son ofrecer un marco de orquestación de LLM agéntico, personalizable y escalable, y servir como escenario ideal para estudiar la inteligencia colectiva. La inteligencia colectiva es una colaboración eficaz, el fenómeno por el que un grupo puede superar a un individuo en una tarea compleja. El enfoque ampliamente aceptado de la inteligencia colectiva define a las personas como entidades que pueden actuar con propósito y razón y adaptarse a un entorno1. En marcos agénticos como ChatDev, estas entidades inteligentes se conocen como agentes.

Inteligencia colectiva en sistemas multiagente (MAS)

Las aplicaciones de inteligencia colectiva en IA y machine learning incluyen sistemas o marcos de inteligencia colectiva denominados sistemas multiagente (MAS). Un MAS puede describirse como una red interconectada de entidades de resolución de problemas, o agentes, que colaboran para resolver problemas que superan las capacidades o los conocimientos de un único agente2.

Las herramientas de IA, como los sistemas multiagente, son un enfoque del diseño de inteligencia colectiva (COIN). COIN es un amplio sistema multiagente que se caracteriza por una comunicación o control centralizados mínimos o nulos. Cuenta con una función de utilidad global que evalúa las historias potenciales de todo el sistema3. El campo del MAS se ocupa de las interacciones entre los agentes dentro del sistema, así como de la composición de cada agente. Aunque hay varias formas de diseñar un MAS, el objetivo principal sigue siendo el mismo: lograr una tarea global a través de las acciones de sus componentes.

Las últimas novedades sobre tecnología, respaldadas por conocimientos de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Interacciones cooperativas multiagente

Uno de los pasos más difíciles en el diseño de un MAS funcional es la coordinación de los agentes de manera que ayude a garantizar que cooperen en la tarea global4. La colaboración eficaz requiere tanto habilidades individuales para resolver tareas como interacciones bien coordinadas entre las personas participantes5. La planificación de un entorno MAS implica las siguientes consideraciones:

  1. Las restricciones que las actividades de otros agentes imponen a la elección de acciones de un agente
  2. Las restricciones que los compromisos de un agente con otros imponen a la elección de acciones de un agente
  3. La evolución impredecible del mundo causada por otros agentes no modelados6

Una forma de abordar este desafío de diseño es modelar el trabajo en equipo explícitamente a través de la colaboración multiagente.

El patrón de diseño multicolaborativo desglosa una instrucción compleja y delega las tareas abstraídas a agentes que las ejecutan en función de sus funciones especializadas7. Por ejemplo, ChatDev utiliza un diseño de comunicación de agente dual llamado ChatChain para facilitar la comunicación cooperativa.

Agentes de IA

Cinco tipos de agentes de IA: funciones autónomas y aplicaciones del mundo real

Descubra cómo la IA basada en objetivos y servicios se adapta a flujos de trabajo y entornos complejos.

¿Cómo funciona ChatDev?

Los marcos como ChatDev amplían la funcionalidad de los LLM más allá de sus excepcionales capacidades de procesamiento del lenguaje natural para la generación de texto. ChatDev posiciona a los LLM como agentes versátiles a través de sus técnicas de orquestación que implican incitar y evaluar a múltiples agentes colaborativos con diversos roles sociales (por ejemplo, ingeniero de software, director de tecnología, director ejecutivo, diseñador, tester).

Cada agente utiliza su función especializada para trabajar en colaboración en las fases principales del ciclo de vida del desarrollo de software. Este proceso implica una amplia comunicación entre los agentes en sus funciones especializadas para comprender y analizar los requisitos a través del lenguaje natural, y el desarrollo y la depuración mediante lenguajes de programación. Las fases de la ChatChain tienen diferentes niveles de participación tanto en lenguajes naturales como de programación, según la función y la instrucción de los agentes.

Cómo ChatDev instruye a sus agentes de IA autónomos

Los agentes de ChatDev utilizan el juego de roles y las indicaciones de inicio como guías para completar sus tareas. La solicitud de inicio es un método de sugerencia automática conversacional LLM que permite a los agentes sugerirse mutuamente para resolver tareas mediante juegos de rol8.

ChatDev aplica prompt engineering al inicio de cada fase de subtarea. Aunque ChatChain define bien el proceso de resolución de tareas, el simple hecho de que los agentes intercambien respuestas sin ninguna indicación o barrera adicional no es eficaz para la comunicación de varias rondas y orientada a tareas. Para avanzar en la progresión de las comunicaciones productivas y evitar desafíos como el cambio de roles, la repetición de instrucciones y las respuestas falsas, ChatDev emplea un mecanismo de solicitud de inicio.

El mecanismo de solicitud de inicio funciona hipnotizando a los LLM con la instrucción del instructor y del sistema del asistente a medida que se instancian. La hipnosis LLM puede tener una connotación negativa (se puede utilizar de forma maliciosa para manipular un modelo), pero en este caso, es una forma de dar instrucciones eficazmente a los agentes que interpretan roles. En la instrucción, se especifican tareas y roles para ayudar a garantizar que el LLM instruya a los agentes sobre cómo cumplir su rol de colaboración y seguir las instrucciones.

Estas instrucciones iniciales para cada función guían a los agentes para que den las respuestas adecuadas sin cambiar de función. Las instrucciones para ambos roles en el sistema son casi idénticas y abordan la descripción general y los objetivos de la subtarea actual, los roles especializados, las herramientas externas disponibles, los protocolos de comunicación, las condiciones de terminación y las restricciones o requisitos para evitar comportamientos no deseados9. Este mecanismo funciona como una barrera de protección LLM, mejorando la calidad de las respuestas y reduciendo la necesidad de intervención humana.

Cómo interactúan los agentes de IA en ChatDev

Para guiar la comunicación cooperativa adecuada entre los agentes, ChatDev introduce un flujo de trabajo de agencia llamado ChatChain para dividir aún más cada fase en subtareas más manejables. Este proceso guía las comunicaciones multiturno entre diferentes roles para proponer y validar soluciones para cada subtarea. Los agentes se rigen por un mecanismo llamado desalucinación comunicativa, un patrón comunicativo para aliviar alucinaciones inesperadas. Con este mecanismo, los agentes solicitan información más detallada antes de responder directamente y luego continúan con la siguiente fase de comunicación basada en estos detalles10.

ChatDev proporciona un visualizador basado en navegador para estudiar las interacciones de cada agente individual que actúa dentro de su función y entorno. Esta interfaz proporciona a los usuarios la capacidad de investigar el propio diseño del sistema multiagente. Los usuarios pueden ver la estructura de cooperación artificial que permite a los agentes trabajar juntos para completar una tarea global más allá de sus capacidades individuales.

ChatChain

ChatChain sigue un diseño de comunicación de agente dual que simplifica el proceso de resolución de tareas a lo largo del flujo de trabajo agéntico. El patrón de diseño agéntico comienza segmentando el proceso de desarrollo de software en tres fases secuenciales: diseño, codificación y pruebas. Las fases de codificación y prueba se dividen en subtareas: escritura y finalización de código, y revisión de código (pruebas estáticas) y pruebas del sistema (pruebas dinámicas).

Cada fase de comunicación dentro de una ChatChain está compuesta por un agente instructor y un agente asistente. En cada subtarea, dos agentes con distintos roles especializados (como un revisor y un programador de diseño de GUI) cumplen las funciones de instructor y asistente. El agente instructor instruye al discurso para que complete una tarea, mientras que el agente asistente recibe y sigue estas instrucciones y responde con las soluciones adecuadas11. Los agentes entablan un diálogo de varios turnos hasta que se completa la tarea o se alcanza un consenso. Las soluciones extraídas de la fase de comunicación van desde el texto (por ejemplo, una descripción de la funcionalidad deseada de la aplicación) hasta el código (por ejemplo, el código fuente inicial).

Este flujo de trabajo de agentes simplifica las comunicaciones al evitar complicadas topologías multiagente y agilizar eficazmente el proceso de consenso12. Este enfoque proporciona una transición fluida entre subtareas, ya que las soluciones de tareas anteriores sirven como puentes hacia la siguiente fase. Este flujo de trabajo continúa hasta que se completan todas las subtareas, guiando a los agentes a lo largo del camino. La estructura en cadena del flujo de trabajo vincula las subtareas del lenguaje natural y del lenguaje de programación, guiando eficazmente a los agentes sobre qué comunicar. ChatChain es una solución al problema más desafiante del diseño de MAS, la cooperación agéntica.

Utilizando la configuración predeterminada, ChatChain produce software en el siguiente orden:

  • Análisis de demanda: decida el proceso general de procedimiento de método para 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/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.

Desalucinación comunicativa

Las alucinaciones LLM se producen cuando los modelos producen output inexacto o sin sentido. Las alucinaciones de codificación son un tipo de alucinación que afecta las salidas de los modelos que realizan tareas relacionadas con la programación. Los investigadores de ChatDev han descubierto que las alucinaciones de codificación aparecen con frecuencia cuando el agente que realiza la funcionalidad del asistente tiene dificultades para seguir instrucciones precisas13. Los asistentes tienen dificultades para cumplir con las instrucciones, generalmente debido a la vaguedad que requiere múltiples interacciones y ajustes de seguimiento. Para evitar resultados no deseados, ChatDev introduce la desalucionación comunicativa.

La desalucionación comunicativa da la instrucción al asistente para solicitar activamente sugerencias más detalladas al instructor antes de dar una respuesta formal14. Los asistentes asumen un papel similar al de un instructor y buscan de forma proactiva más información (por ejemplo, los nombres precisos de las dependencias externas, o en qué repositorio de GitHub enviar los cambios), asumiendo una "inversión de roles" deliberada antes de dar una respuesta. El asistente realiza una optimización precisa después de que el instructor responda con modificaciones. El patrón de comunicación instruye a los agentes sobre cómo comunicarse, lo que permite un intercambio de información detallado y, al mismo tiempo, reduce las alucinaciones de codificación.

Visualizer

Visualizer de ChatDev es una aplicación de Python que ejecuta una demostración web local donde los usuarios pueden ver registros en tiempo real, registros reproducidos y ChatChain. La aplicación contiene tres visores de registros separados para cada uno.

  • Log Visualizer: un registro en tiempo real que imprime la información de diálogo del agente, los cambios en el entorno y otra información del sistema útil para la depuración.
  • Replay Visualizer: el registro de reproducción imprime la información de diálogo del agente.
  • ChatChain Visualizer: los usuarios pueden cargar cualquier archivo de configuración de ChatChain y ver la cadena de flujo de trabajo de los agentes para cualquier proyecto de software actual o anterior. Esta característica ofrece una visión transparente de todo el proceso de desarrollo de software para que los usuarios examinen cada solución de subtarea e identifiquen cualquier posible ineficiencia.

El Visualizer también contiene una página de reproducir chat que muestra los diálogos en lenguajes naturales entre agentes para una aplicación de software generada determinada.

Integración LLM de ChatDev

El concepto del patrón de diseño agéntico de ChatDev es como la mezcla de expertos en técnicas de machine learning, excepto sus agentes de IA, que son expertos especializados en el manejo de tareas complejas. Se necesitan sistemas de orquestación para coordinar la colaboración entre una mezcla de agentes especializados.

La base de estas orquestaciones son los modelos de transformadores preentrenados, como los modelos GPT de OpenAI15. Los modelos fundacionales, como la serie Granite de IBM, también se pueden utilizar para poner a tierra agentes con sólidas capacidades lingüísticas y otorgarles funcionalidades especializadas. Por ejemplo, Granite Code es una familia de modelos que van desde tamaños de parámetros 3B y 34B y está entrenado en 116 lenguajes de programación. Esta oferta es beneficiosa para los marcos de trabajo agénticos que planean utilizar agentes comunicativos para el desarrollo de software. En el momento de escribir este artículo, ChatDev es compatible con los modelos GPT-3.5-turbo y GPT-4 de OpenAI para impulsar a sus agentes inteligentes.

Cómo escala ChatDev

ChatDev está implementando una forma de escalar la colaboración multiagente basada en LLM con redes de colaboración multiagente (MacNet). MacNet se inspira en la ley de escala neuronal, que sugiere que el aumento de neuronas conduce a habilidades emergentes16. ChatDev propone un principio similar que se aplica al aumento de agentes en la colaboración multiagente.

MacNet utiliza gráficos acíclicos para estructurar los agentes y mejorar su razonamiento interactivo mediante la ordenación topológica. Las soluciones se derivan de las interacciones de los agentes. Este proceso supera sistemáticamente a los modelos de referencia, lo que facilita la colaboración eficiente entre agentes de diferentes topologías de red y permite la cooperación entre más de mil agentes. A través de esta aplicación, ChatDev identificó una ley de escalado colaborativo que muestra que la calidad de las soluciones mejora en un patrón de crecimiento logístico a medida que aumenta el número de agentes.

Sistemas multiagente para el desarrollo de software

En lugar de intentar abarcar todas las capacidades dentro de un solo modelo, los sistemas multiagente dividen las tareas entre varios agentes especializados. Los agentes pueden utilizar el mismo modelo de lenguaje o diferentes, lo que les proporciona el potencial para realizar una amplia gama de tareas.

ChatDev realizó una evaluación en un popular artículo de investigación que compara su rendimiento con el de otros dos marcos de orquestación de desarrollo de software basados en LLM, GPT-Engineer y MetaGPT. Las métricas se basaron en la integridad, la ejecutabilidad, la coherencia y la calidad. ChatDev y MetaGPT superaron a GPT-Engineer, un enfoque de orquestación de un solo agente, lo que demuestra que las tareas complejas son más difíciles de resolver en una solución de un solo paso. Estos resultados de rendimiento sugieren que dividir las tareas complejas en subtareas más manejables mejora la eficacia de la finalización de las tareas.

ChatDev superó significativamente a MetaGPT en la métrica de calidad gracias a los métodos de comunicación cooperativa de los agentes, que utilizan tanto el lenguaje natural como el lenguaje de programación. Los agentes que son capaces de comunicarse de manera eficiente pudieron guiar cada subtarea hasta su finalización, superando las restricciones que suelen estar vinculadas a las reglas de optimización establecidas manualmente17. Este resultado sugiere que los marcos multiagente que utilizan agentes comunicativos y colaborativos ofrecen funciones más versátiles y adaptables.

Otros marcos multiagente

GPT-Engineer: un marco de orquestación de agente único para crear aplicaciones de software. El usuario proporciona una instrucción a la IA para crear una aplicación con la funcionalidad de software deseada y puede comunicarse con el sistema para realizar mejoras o actualizaciones18. Los usuarios pueden comparar sus propias implementaciones de agentes con conjuntos de datos populares a través de ‘bench’, una herramienta instalada en el sistema que contiene una interfaz de referencia simple.

MetaGPT:un marco multiagente que funciona como una entidad de software colaborativo que asigna diferentes agentes de rol a los modelos GPT para completar tareas complejas. Al igual que ChatDev, los agentes mantienen varios roles dentro de un entorno virtual similar a una empresa de software. MetaGPT también utiliza SOP (Procedimientos Operativos Standard) cuidadosamente orquestada para generar software.

crewAI: crewAI es un marco multiagente de código abierto que opera en LangChain. Organiza a los agentes de IA autónomos en equipos que gestionan los flujos de trabajo y las tareas relacionadas con las aplicaciones LLM. crewAI se integra con cualquier LLM.

AutoGen: el marco de conversación multiagente de código abierto de Microsoft proporciona una abstracción elevada de los modelos fundacionales. AutoGen es un marco basado en agentes que emplea varios agentes para interactuar y abordar tareas. Sus características clave incluyen agentes de IA personalizables que participan en diálogos multiagente con patrones adaptables, lo que permite la creación de diversas aplicaciones LLM.

Soluciones relacionadas
Desarrollo de agentes de IA de IBM 

Permita a los desarrolladores crear, implementar y monitorizar agentes de IA con el estudio IBM watsonx.ai.

 

Explore watsonx.ai
Soluciones de inteligencia artificial

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.

Explore las soluciones de IA
Consultoría y servicios de IA

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.

Explore los servicios de IA
Dé el siguiente paso

Tanto si opta por personalizar las aplicaciones y habilidades prediseñadas como si prefiere crear e implementar servicios agentivos personalizados mediante un estudio de IA, la plataforma IBM watsonx le ofrece todo lo que necesita.

Explore watsonx Orchestrate Explore watsonx.ai