¿Qué es ChatDev?

Autores

Vanna Winland

AI Advocate & Technology Writer

Erika Russi

Data Scientist

IBM

¿Qué es ChatDev?

ChatDev es una infraestructura de agencia de código abierto que implementa la colaboración de múltiples agentes a través de un equipo organizado de agentes inteligentes especializados que funcionan con modelos de lenguaje grandes (LLM). Cada agente de IA está orquestado para colaborar en tareas dentro de las fases centrales del ciclo de vida del 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 roles dentro del entorno de la organización. Estos agentes forman una estructura organizativa multiagente en la que pueden colaborar 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, programación, pruebas y documentación. Los agentes especializados trabajan en colaboración para completar cada fase.

Los objetivos principales de ChatDev son ofrecer una infraestructura de orquestación de LLM agéntica personalizable y escalable y servir como un escenario ideal para estudiar la inteligencia colectiva. La inteligencia colectiva es una colaboración eficaz, el fenómeno en el que un grupo puede superar a una persona 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 entorno.1 En infraestructuras 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 llamados 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 exceden las capacidades o el conocimiento de un solo agente.2

Las herramientas de IA, como los sistemas multiagente, son un enfoque para el 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 mundial que evalúa las historias potenciales de todo el sistema.3 El campo de 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 central sigue siendo el mismo: lograr una tarea global a través de las acciones de sus componentes.

Las últimas tendencias de IA presentadas por expertos

Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. 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 una manera que ayude a garantizar que cooperen en la tarea global.4 La colaboración eficaz requiere tanto habilidades individuales para resolver tareas como interacciones bien coordinadas entre las personas participantes.5 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 sobre la elección de acciones de un agente
  3. La evolución impredecible del mundo causada por otros agentes no representados6

Una forma de abordar este desafío de diseño es representar el trabajo en equipo explícitamente a través de la colaboración entre múltiples agentes.

El patrón de diseño multicolaborativo desglosa una instrucción compleja y delega las tareas abstractas a agentes que las ejecutan en función de sus roles especializados.7 Por ejemplo, ChatDev utiliza un diseño de comunicación de agente dual, que se llama ChatChain, para facilitar la comunicación cooperativa.

Agentes de IA

Cinco tipos de agentes de IA: funciones autónomas y aplicaciones reales

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

¿Cómo funciona ChatDev?

Las infraestructuras como ChatDev amplían la funcionalidad de los LLM más allá de sus excepcionales capacidades de procesamiento de 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, evaluador).

Cada agente utiliza su rol especializado para trabajar en colaboración en las fases centrales del ciclo de vida del desarrollo de software. Este proceso implica una amplia comunicación entre los agentes en sus roles especializados 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 ChatChain tienen diferentes niveles de participación tanto en lenguajes naturales como de programación, según el rol y la instrucción de los agentes.

Cómo ChatDev da instrucciones a sus agentes autónomos de IA

Los agentes de ChatDev utilizan el juego de roles y las instrucciones iniciales como guías para completar sus tareas. Las instrucciones de inicio son un método conversacional de instrucciones automáticas de LLM que permite a los agentes darse instrucciones entre sí para resolver tareas a través del juego de roles.8

ChatDev aplica ingeniería rápida al comienzo 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 indicaciones ni medidas de protección adicionales no es eficaz para la comunicación de múltiples 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 instrucciones de inicio.

El mecanismo de instrucciones de inicio funciona hipnotizando a los LLM con el instructor y la instrucción del sistema asistente a medida que se instancian. La hipnosis de los 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 de juego de roles. En las instrucciones, se especifican tareas y roles para ayudar a garantizar que el LLM indique a los agentes sobre cómo cumplir con su rol de colaboración y seguir las instrucciones.

Estas instrucciones iniciales para cada rol guían a los agentes para que den las respuestas adecuadas sin cambiar de rol. 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 indeseables.9 Este mecanismo funciona como una barrera de protección del LLM, que mejora la calidad de las respuestas y reduce 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 agentes llamado ChatChain para desglosar aún más cada fase en subtareas más manejables. Este proceso guía las comunicaciones de varios turnos entre diferentes roles para proponer y validar soluciones para cada subtarea. Los agentes se rigen con un mecanismo llamado desalucinación comunicativa, un patrón comunicativo para mitigar alucinaciones inesperadas. Con este mecanismo, los agentes solicitan información más detallada antes de responder directamente y luego continuar con la siguiente fase de comunicación basada en estos detalles.10

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 de los agentes. El patrón de diseño agéntico comienza segmentando el proceso de desarrollo de software en tres fases secuenciales: diseño, programación y pruebas. Las fases de programación y pruebas se dividen en subtareas: escritura y finalización de código, y revisión (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 roles especializados distintos (como un revisor y un programador de diseño de GUI) cumplen las funciones de un instructor y un asistente. El agente instructor instruye el discurso para completar una tarea, mientras que el agente asistente recibe y sigue estas instrucciones y responde con las soluciones adecuadas.11 Los agentes entablan un diálogo de varios turnos hasta que se completa la tarea o se llega a un consenso. Las soluciones extraídas de la fase de comunicación van desde texto (por ejemplo, una descripción de la funcionalidad deseada de la aplicación) hasta código (por ejemplo, el código fuente inicial).

Este flujo de trabajo simplifica las comunicaciones al evitar complicadas topologías multiagente y agilizar eficazmente el proceso de consenso.12 Este enfoque proporciona una transición fluida entre las 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, l cual guia a los agentes a lo largo del camino. La estructura de estilo de cadena del flujo de trabajo vincula el lenguaje natural y las subtareas del lenguaje de programación, lo cual guia 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.

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

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

Desalucinación comunicativa

Las alucinaciones del LLM ocurren cuando los modelos producen resultados inexactos o sin sentido. Las alucinaciones de programación son un tipo de alucinación que afecta los resultados de los modelos que realizan tareas relacionadas con la programación. Los investigadores de ChatDev han descubierto que las alucinaciones de programación aparecen con frecuencia cuando el agente que realiza la funcionalidad del asistente tiene dificultades para seguir instrucciones precisas.13 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 desalucinación comunicativa.

La desalucinación comunicativa da la instrucción al asistente para solicitar activamente sugerencias más detalladas al instructor antes de dar una respuesta formal.14 Los asistentes asumen un rol similar al de un instructor y buscan proactivamente más información (por ejemplo, los nombres precisos de las dependencias externas, o en qué repositorio de GitHub confirmar 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 responde 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 programación.

Visualizer

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

  • Log Visualizer: un registro en tiempo real que imprime la información del diálogo del agente, los cambios en el entorno y otra información del sistema útil para la depuración.
  • Replay Visualizer: el registro repetido 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 visualizador también contiene una página de repetición de chat que muestra los diálogos en lenguajes naturales entre agentes para una aplicación de software generada determinada.

Integración de LLM de ChatDev

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

La base de tales orquestaciones son los modelos de transformadores previamente entrenados, como los modelos GPT de OpenAI.15 Los modelos fundacionales, como la serie Granite de IBM, también se pueden utilizar para aterrizar a los agentes con capacidades de lenguaje sólidas y otorgarles una funcionalidad especializada. 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 las infraestructuras de agentes que planean usar agentes comunicativos para el desarrollo de software. En el momento de escribir este artículo, ChatDev admite los modelos GPT-3.5-turbo y GPT-4 de OpenAI para potenciar 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 escalamiento neuronal, que sugiere que el aumento de neuronas conduce a habilidades emergentes.16 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 a través del ordenamiento topológico. 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 escalamiento 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 tratar de 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 hizo una evaluación en un artículo de investigación popular que compara su rendimiento y 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 agente único, 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 debido a los métodos de comunicación cooperativa de los agentes que utilizan lenguajes naturales y 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 manualmente.17 Este resultado sugiere que las infraestructuras 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 da 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 actualizaciones.18 Los usuarios pueden comparar sus propias implementaciones de agentes con conjuntos de datos populares a través de "bench", un binario instalado en el sistema que contiene una interfaz simple de evaluación comparativa para el punto de referencia.

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 estándar) cuidadosamente orquestados para generar software.

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

AutoGen. La infraestructura 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 múltiples 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 de LLM.

Soluciones relacionadas
Desarrollo de agentes de IA de IBM 

Permita a los desarrolladores crear, desplegar y monitorear 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 en IA líder en la industria y la cartera de soluciones de IBM a su lado.

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

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.

Conozca los servicios de IA
Dé el siguiente paso

Ya sea que elija personalizar aplicaciones y habilidades predefinidas o crear y desplegar servicios agénticos personalizados utilizando un estudio de IA, la plataforma IBM watsonx responde a sus necesidades.

Explore watsonx Orchestrate Explore watsonx.ai