Utilice ChatDev ChatChain para la comunicación con los agentes en IBM watsonx.ai

Autores

Vanna Winland

AI Advocate & Technology Writer

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.

IA colaborativa en Chatdev

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

Cómo funciona ChatDev

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.

Nota sobre la compatibilidad de los modelos y la variabilidad del resultado

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.

Pasos

Paso 1. Configure su entorno

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í. 

  1.  Asegúrese de tener Python 3.11 instalado en su sistema.
    > Puede comprobar su versión de Python utilizando el comandopython3 –-version
  2. Clone el repositorio de GitHub.
    > Para conocer los pasos detallados sobre cómo clonar un repositorio, consulte la documentación de GitHub
  3. Verifique que la estructura del proyecto se parece a la siguiente:
tutorials/projects/chatdev_watsonx/ 
   
├── camel/ 
│   ├── model_backend.py  # Unified interface for interacting with multiple AI models 
│   ├── typing.py         # Defines various type classes including supported AI models  
│   ├── configs.py        # Defines the model parameters based on model interface 
│   ├── utils.py          # Various utility functions including model token limit configuration 
│   └── ... 
├── Visualizer/ 
│   └──app.py             # Runs a Flask application in a local web browser to view logs and ChatChain  
├── WareHouse             # Where the generated software is saved  
├── run.py                # Application entry point 
└── chatdev_watsonx.md    # A markdown version of this tutorial

Paso 2. Obtenga las credenciales de la API de watsonx

  1. Inicie sesión en watsonx.ai utilizando su cuenta de IBM® Cloud.
  2. Cree un proyecto watsonx.ai. >Tome nota de su ID de proyecto en proyecto > Gestionar > General > ID de proyecto. 
    Necesitará este ID para este tutorial.
  3. Cree una instancia de servicio watsonx.ai Runtime (elija el plan Lite, que es una instancia gratuita).
  4. Genere una clave de API de watsonx.
  5. Asocie el servicio watsonx.ai Runtime al proyecto que ha creado en watsonx.ai

Paso 3. Cree un entorno virtual

Desde el directorio de proyectos del tutorial, cree un entorno virtual utilizando Python 3.11:

  python3.11 -m venv venv 
  source venv/bin/activate

Paso 4. Instale requisitos.txt

Esto instala las dependencias del proyecto.

  pip install -r requirements.txt 

Paso 5. Establezca variables de entorno para la integración de LLM

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 entornoOPENAI_API_KEY . Para evitar errores de tiempo de ejecución, se requiere un valor ficticio incluso si no se utiliza OpenAI. 

export OPENAI_API_KEY="your_openai_api_key_or_dummy_value" 
export WATSONX_URL="https://us-south.ml.cloud.ibm.com" 
export WATSONX_APIKEY="your_watsonx_api_key" 
export WATSONX_PROJECT_ID="your_watsonx_project_id"

Paso 6. (Opcional) Ejecute la aplicación del visualizador para la interfaz de ChatDev

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:

pip install flask

 

A continuación, ejecute la aplicación: 

python visualizer/app.py

 

Una vez ejecutado, abra un navegador y vaya a: https://127.0.0.1:8000/

Paso 7. (Opcional) Configure LLM

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.

  • Tipo de modelo

Para experimentar con diferentes tipos de modelos , actualice laWATSONX entrada en el enumModelType encamel/typing.py

# camel/typing.py 

class ModelType(Enum):
WATSONX = "meta-llama/llama-4-maverick-17b-128e-instruct-fp8" # Model identifier used by the Watsonx APIThe model parameters can be configured within camel/configs.py under the WatsonxConfig data class.

 

  • Parámetros del modelo

Los parámetros del modelo se pueden configurar encamel/configs.py  en la clase de datos WatsonxConfig .

# camel/configs.py 
 
@dataclass(frozen=True) 
class WatsonxConfig: 
     """Defines the parameters for generating completions using watsonx.ai models.""" 
   
     temperature: float = 0.3 
     top_k: int = 100 
     top_p: float = 0.0

 

  • Límite de token

El límite de token para el modelo se puede configurar en elcamel/utils.py .zip.

# camel/utils.py 
 
def get_model_token_limit(model: ModelType) -> int: 
     if model == ModelType.WATSONX: 
         return 128000  # Token limit for Watsonx.ai models

Paso 8. Ejecute el script para generar una aplicación

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:

  • –-task : la descripción de la solución de software deseada

  • –-name : el nombre de la aplicación o proyecto

  • –-model : el modelo de IA que se va a utilizar (debe establecerse enWATSONX para este tutorial)

Script de ejemplo:

python3 run.py --task "Build a simple website using Flask for a local bookstore called 'Turn the Page'. The website should include a homepage, an about page, and a product page. " --name "bookstore-site" --model "WATSONX"

Nota: aunque la arquitectura de ChatDev es extensible, esta versión del tutorial solo funciona de forma fiable conWATSONX . Extenderlo para usar otros proveedores de LLM requiere modificar la interfaxcamel/model_backend.py y la lógica de configuración relacionada.

Resultado de ejemplo

El producto de software final se guarda en elWareHouse en un subdirectorio con el nombre del proyecto, el nombre predeterminado de la organización y una marca de tiempo.

Un resultado típico podría ser algo como esto:

├── WareHouse/ 
└── bookstore-site_DefaultOrganization_20250506162935/ 
     ├── templates/      # Web page templates 
     │   └── about.html 
     │   └── index.html 
     │   └── products.html 
     ├── manual.md      # The project’s README with instructions to run the software 
     ├── main.py        #The main application file for the website 
     ├── requirements.txt          # Project dependencies 
     ├── ChatChainConfig.json      # System design for collaborative agent workflows 
     ├── RoleConfig.json       # System prompts for agent roles 
     ├── PhaseConfig.json      # System prompts for phases 
     └── bookstore-site_DefaultOrganization_20250506162935.log  # Log of the agent dialogue

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 delmanual.md .zip.

Captura de pantalla que muestra la pantalla "Chatdev"

Cómo gestiona ChatDev la comunicación con los agentes

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

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:

  1. Análisis de la demanda: defina la estructura y los componentes clave de la aplicación. 

  2. Selección de lenguaje: decida qué lenguaje de programación utilizar para crear y ejecutar el software.

  3. Codificación: los agentes escriben el código para crear la aplicación.

  4. CodeCompleteAll: complete el código, incluidas las funciones o clases que faltan.

  5. CodeReview: revise y modifique la funcionalidad del código.

  6. Prueba: ejecute el software y modifique el código en función del informe de prueba.

  7. EnvironmentDoc: documente el entorno.

  8. 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, elneed_reflect desencadena una reflexión posterior a la fase en la que los agentes analizan y refinan los resultados de la interacción anterior.

Captura de pantalla que muestra el diagrama de Chatchain

Solicitud de inicio

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. 

Ejemplo de solicitud de inicio en ChatDev

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 sonassistant_role_prompt yuser_role_prompt . Estos parámetros definen las funciones y responsabilidades asignadas a cada agente que participa en la conversación, en función del contexto de la tarea.

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:

// RoleConfig.json 
 

   "Chief Executive Officer": [ 
     "{chatdev_prompt}", 
     "You are Chief Executive Officer. Now, we are both working at ChatDev and we 
     share a common interest in collaborating to successfully complete a task 
     assigned by a new customer.", 
     "Your main responsibilities include being an active decision-maker on users' 
     demands and other key policy issues, leader, manager, and executor. Your 
     decision-making role involves high-level decisions about policy and strategy; 
     and your communicator role can involve speaking to the organization's 
     management and employees.", 
     "Here is a new customer's task: {task}.", 
     "To complete the task, I will give you one or more instructions, and you 
     must help me to write a specific solution that appropriately solves the 
     requested instruction based on your expertise and my needs." 
   ], 
   "Chief Technology Officer": [ 
     "{chatdev_prompt}", 
     "You are Chief Technology Officer. we are both working at ChatDev. We share 
     a common interest in collaborating to successfully complete a task assigned 
     by a new customer.", 
     "You are very familiar to information technology. You will make high-level 
     decisions for the overarching technology infrastructure that closely align 
     with the organization's goals, while you work alongside the organization's 
     information technology (\"IT\") staff members to perform everyday operations.", 
     "Here is a new customer's task: {task}.", 
     "To complete the task, You must write a response that appropriately solves 
     the requested instruction based on your expertise and customer's needs." 
   ],

 

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.

Desalucinación comunicativa

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,CodeReviewComment yCodeReviewModification . Los agentes Code Review y Programmer realizan iteraciones entre estas dos fases hasta que dos modificaciones consecutivas no cambian, o después de diez rondas. Veamos un ejemplo de desalucinación comunicativa a partir de un registro de proyecto.

Ejemplo de desalucinación comunicativa en ChatDev

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 faseCodeReviewComment :

/* bookstore-site_DefaultOrganization_20250506162935.log */ 
... 
 
## Step 7: Highest Priority Comment 
A high-priority comment is that the templates directory needs to be created, and 
the HTML files should be placed inside it for the application to find and render 
them correctly. Without this setup, running `app.py` will result in a 
`TemplateNotFound` error because Flask looks for templates in a `templates` 
folder by default. 
 
## Step 8: Instructions for Fixing 
To fix this, create a new directory named `templates` in the same directory 
where `app.py`

 

El agente Programmer responde con el código corregido durante el siguienteCodeReviewModification :

/* bookstore-site_DefaultOrganization_20250506162935.log */ 
 
Here is the list of your developed codes: main.py, index.html, about.html, products.html. 
 
### main.py 
```python 
... 
 
### templates/index.html 
 
```html 
<!-- 
Homepage template for Turn the Page bookstore website. 
Provides navigation links to other pages. 
--> 
... 
 
</html> 
### templates/about.html 
```html 
<!--  About page template for Turn the Page bookstore website. 
Provides information about the bookstore and navigation links. --> 
… 
</html>

 

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.

Conclusión

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á.

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