Verwenden Sie ChatDev ChatChain für die Agentenkommunikation auf IBM watsonx.ai

Autoren

Vanna Winland

AI Advocate & Technology Writer

In diesem Tutorial zeigen wir Ihnen, wie Sie mit dem ChatDev-Framework ein kollaboratives KI-System aufbauen können, und stellen Ihnen dessen rollenbasierte Agentenkommunikationsstruktur ChatChain vor. ChatDev verwendet KI-Agenten mit zugewiesenen Rollen, um ein virtuelles Softwareunternehmen zu simulieren. Jeder intelligente Agent arbeitet mit anderen über eine strukturierte Kommunikation zusammen und folgt dabei einem sequenziellen Workflow, der auf den Phasen des Softwareentwicklungslebenszyklus basiert.

Um diese Agenten zu unterstützen, haben wir IBM watsonx® integriert Programmierschnittstelle (API) als Modell-Backend verwenden. Wir nutzten eine Integration von watsonx.ai mit Hugging Face und konfigurierten das Framework so, dass es Llama-4-Maverick verwendet, um eine einfache Softwarelösung zu erstellen. Dieses Beispiel dient als Grundlage für die Erforschung von ChatChain und anderen internen Agentenkommunikationsmechanismen, die das Verhalten und die Entscheidungsfindung der Agenten während des gesamten Workflows steuern. 

Am Ende dieses Tutorials sollten Sie praktische Erfahrung mit der Einrichtung und dem Betrieb von ChatDev haben und ein besseres Verständnis davon haben, wie Agenten-Kommunikationsprotokolle eine effektive und zuverlässige Zusammenarbeit zwischen mehreren Agenten ermöglichen.

Kollaborative KI: Künstliche Intelligenzsysteme, die dafür entwickelt wurden, mit Menschen oder KI-Agenten zusammenzuarbeiten, häufig unter Verwendung von Deep Learning oder anderen fortschrittlichen Techniken, um Zusammenarbeit, gemeinsame Entscheidungsfindung und gemeinsame Problemlösung zu ermöglichen und so gemeinsame Ziele zu erreichen. 

Multiagenten-Kollaboration: Mehrere autonome Agenten, die Informationen teilen und koordinieren, um ein gemeinsames Ziel zu erreichen. Diese Agenten können unterschiedliche Kenntnisse, Funktionen und Perspektiven haben, und ihre Zusammenarbeit umfasst häufig Verhandlungen, Planung und koordinierte Maßnahmen.

Rollenspielende Agenten: KI-Agenten, die bestimmte Rollen oder Personas simulieren, um zielgerichtet zu interagieren und zusammenzuarbeiten. Diese Rollen können reale Berufe oder Charaktere widerspiegeln und so kontextbezogene und zielgerichtete Interaktionen ermöglichen. 

Agenten-Kommunikationsprotokolle: Standards oder Frameworks, die festlegen, wie KI-Agenten durch den Austausch strukturierter Datennachrichten miteinander interagieren. Diese Protokolle kontrollieren das Format, die Semantik und die Regeln der Kommunikation für Agenten, die innerhalb von Multiagentensystemen koordiniert werden.

Kollaborative KI in Chatdev

ChatDev ist eine rollenbasierte Implementierung von kollaborativer KI, bei der einzelne Agenten spezialisierte Rollen einnehmen, um auf ein gemeinsames Ziel hinzuarbeiten. Dieses Design spiegelt die Prinzipien der kollektiven Intelligenz, einer im Wesentlichen effektiven Zusammenarbeit, wider und positioniert ChatDev als wertvolle Ressource für das Studium und die Weiterentwicklung in diesem Bereich.

ChatDev ist ein Open-Source-Multiagent-Framework, das von OpenBMB entwickelt wurde, einer forschungsorientierten Initiative, die sich auf die Weiterentwicklung von KI-Tools und künstlicher allgemeiner Intelligenz (Artificial General Intelligence, AGI) konzentriert. Das Framework nutzt den Softwareentwicklungsprozess als praktischen Bereich für die Untersuchung kollaborativer KI-Agenten. Jeder Agent basiert auf einem großen Sprachmodell (Large Language Models, LLM) und wird aufgefordert, bestimmte Rollen wie CEO, CTO, Designer, Tester und Programmierer zu übernehmen.1

Ausgehend von einer kurzen, beschreibenden Benutzereingabe arbeiten diese Agenten zusammen, um iterativ ein komplettes Softwareprojekt zu entwerfen, zu implementieren und zu testen. Jeder Agent wird als Python-Klasse implementiert, die über strukturierte Prompts in natürlicher Sprache sequenziell kommuniziert. Diese Prompts folgen vordefinierten Vorlagen, die die Rolle des Bearbeiters, aufgabenspezifische Anweisungen und den relevanten Kontext aus früheren Interaktionen enthalten. Diese Vorlagenstrategie trägt dazu bei, Kontinuität und Kohärenz zu gewährleisten, indem die Rollenidentität und der gemeinsame Speicher in den Prompt selbst eingebettet werden.

Das Team von ChatDev spezialisierten Agenten arbeitet zusammen, um aus einer einzeiligen Benutzereingabe, die ihre Idee beschreibt, eine einfache Softwarelösung zu generieren. 

Benutzereingabe: „Erstelle eine To-Do-Listen-App“ → CEO delegiert an CTO → CTO weist Entwickler zu → Entwickler schreibt Code → Tester validiert

Funktionsweise von ChatDev

Agenteninteraktionen werden durch ChatChain koordiniert, die benutzerdefinierte Koordinationslogik innerhalb des ChatDev-Frameworks. Die Kommunikation zwischen Agenten erfolgt über einen mehrrundigen Dialog oder ein Nachrichtenübermittlungssystem, bei dem Agenten nacheinander strukturierte JSON-Nachrichten austauschen. Diese Nachrichten stellen Ausgaben und Kontextaktualisierungen dar und fungieren als gemeinsamer Speicherpuffer, sodass Agenten in den verschiedenen Entwicklungsphasen auf den Ausgaben anderer Agenten aufbauen können.

Diese Architektur ermöglicht eine konsistente Kommunikation und kontextbezogene Zusammenarbeit, indem sie natürliche und Programmiersprachen kombiniert, um das Projekt durchgängig abzuschließen. Der Prozess basiert auf einer koordinierten Kommunikation mit mehreren Agenten, wobei interne Mechanismen als Protokolle dienen, um eine effektive KI-Agentenkommunikation für die Orchestrierung, um jede Phase abzuschließen. 

Benutzer können den Workflow überwachen und Reviews durchführen, indem sie das Visualizer-Tool von ChatDev verwenden, eine Flask-basierte Weboberfläche, die sowohl Analysen nach dem Lauf als auch Echtzeitüberwachung unterstützt. Der Visualizer bietet mehrere Modi, darunter einen Log Viewer zur Überprüfung von Agenteninteraktionen in Echtzeit, einen Replay Viewer zur Visualisierung gespeicherter Multiagent-Konversationsprotokolle und einen ChatChain Viewer zur Untersuchung des Aufgabenkoordinierungsablaufs. Diese interaktive Schnittstelle ermöglicht es Benutzern, die Zusammenarbeit mit mehreren Agenten über eine strukturierte Umgebung über einen lokalen Browser zu debuggen, damit zu experimentieren und zu untersuchen.

Hinweis zur Modellkompatibilität und Ausgabenvariabilität

Dieses Tutorial verwendet eine angepasste Version von ChatDev, die speziell für die IBM watsonx.ai API angepasst wurde. Der ChatDev-Kern unterstützt zwar mehrere Modellanbieter, diese Version wurde jedoch durch die Verwendung eines pragmatischen „Vibecoding“-Ansatzes modifiziert, sodass sie zwar funktionsfähig, aber nicht in allen Szenarien ausführlich getestet wurde.

Zu den wichtigsten Anpassungen gehören:

  • Verpackung der IBM watsonx.ai-API, um der erwarteten LLM-Schnittstelle von ChatDev zu entsprechen.

  • Anpassen der Promptvorlagen an die Token- und Formatierungsanforderungen der IBM watsonx.ai API

  • Änderung der Modellauswahllogik zur Unterstützung von IBM watsonx.ai als Modell-Backend-Option.

Diese Implementierung zeigt, wie ChatDev erweitert werden kann, um alternative LLM-Anbieter zu unterstützen. Andere Modellanbieter (z. B. OpenAI, Ollama) wurden nicht mit dieser angepassten Version von ChatDev getestet und würden Anpassungen auf Codeebene erfordern.

Wie bei vielen generativen KI-Workflows kann die Ausgabe zwischen den Durchläufen variieren. Während die Agenten in der Regel einen kohärenten, gut strukturierten Code und eine Dokumentation erstellen, müssen die daraus resultierenden Anwendungen möglicherweise manuell angepasst werden, um ihre volle Funktionalität zu gewährleisten. Faktoren wie das prompte Design, die Komplexität der Aufgaben und die inhärente Variabilität der LLM-Antworten tragen alle zu dieser Unvorhersehbarkeit bei.

Dieses Tutorial dient als praktische Einführung in kollaborative Multiagenten-Systeme und konzentriert sich darauf, wie Agenten innerhalb von ChatDev kommunizieren und koordinieren. Es ist nicht als fertige Lösung gedacht, sondern vielmehr als Grundlage für das Lernen, Experimentieren und Erkunden der LLM-gesteuerten Zusammenarbeit von Agenten. Wir danken den Forschern hinter ChatDev, die ihre Arbeit als Open-Source-Lösung zur Verfügung gestellt haben und diese Art der Erkundung ermöglicht haben.

Schritte

Schritt 1. Einrichten Ihrer Umgebung

Obwohl ChatDev plattformübergreifend konzipiert ist, können Benutzer bei der Einrichtung oder Ausführung auf plattformspezifische Probleme stoßen. Beispielsweise erfordert PowerShell unter Windows möglicherweise Anpassungen der Shell-Befehle, die für Unix-basierte Systeme vorgesehen sind. Variationen in Betriebssystemen, Python-Versionen und CPU-Architekturen können sich ebenfalls auf die Leistung oder das Verhalten auswirken. Um eine reibungslose Einrichtung und Benutzerfreundlichkeit zu gewährleisten, sollten Benutzer die offizielle ChatDev-Dokumentation und die Installationshandbücher zur Fehlerbehebung und umgebungsspezifischen Anweisungen lesen.

Vor diesem Hintergrund beginnen wir mit der Einrichtung der Umgebung für die Ausführung der Anwendung. Sie können diese Schritte in der Markdowndatei im Projektordner auf GitHub ausführen oder indem Sie der Anleitung hier folgen. 

  1.  Stellen Sie sicher, dass Sie Python 3.11 auf Ihrem System installiert haben.
    > Sie können Ihre Python-Version überprüfen, indem Sie das verwenden: Python3 –-Versions kommando. 
  2. Klonen Sie GitHub-Repository.
    > Detaillierte Schritte zum Klonen eines Repository finden Sie in der GitHub-Dokumentation
  3. Bestätigen Sie, dass die Projektstruktur der folgenden ähnelt:
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

Schritt 2. Fordern Sie die watsonx-API-Anmeldedaten an

  1. Melden Sie sich mit Ihrem IBM Cloud-Konto bei watsonx.ai an.
  2. Erstellen Sie ein watsonx.ai-Projekt. > Notieren Sie sich Ihre Projekt-ID unter „Projekt“ > „Verwalten“ > „Allgemein“ > „Projekt-ID“.
     
    Sie benötigen diese ID für dieses Tutorial.
  3. Erstellen Sie eine Instanz des watsonx.ai Runtime Service (wählen Sie den Lite-Plan als kostenlose Instanz).
  4. Generieren Sie einen watsonx-API-Schlüssel.
  5. Verknüpfen Sie den watsonx.ai Runtime Service mit dem Projekt, das Sie in watsonx.ai erstellt haben. 

Schritt 3. Erstellen einer virtuellen Umgebung

Erstellen Sie aus dem Projektverzeichnis des Tutorials eine virtuelle Umgebung mit Python 3.11:

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

Schritt 4. Installieren Sie requirements.txt

Dadurch werden die Projektabhängigkeiten installiert.

  pip install -r requirements.txt 

Schritt 5. Legen Sie Umgebungsvariablen für die LLM-Integration fest

Die Variable wird für die aktuelle Terminalsitzung festgelegt (durch Schließen des Terminals werden sie zurückgesetzt).

Obwohl in diesem Tutorial IBM watsonx.ai als Modell-Backend verwendet wird, wurde das zugrunde liegende Framework von ChatDev ursprünglich für die Unterstützung mehrerer LLM-Anbieter entwickelt, einschließlich eines Standardanbieters, OpenAI. Einige Teile der Codebasis (z. B. Modellauswahllogik oder gemeinsam genutzte Schnittstellen) verweisen immer noch auf OPENAI_API_KEY Umgebungsvariable festlegen. Um Laufzeitfehler zu verhindern, ist ein Dummy-Wert erforderlich, auch wenn OpenAI nicht verwendet wird. 

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"

Schritt 6: (Optional) Führen Sie die Visualizer-App für die ChatDev-Oberfläche aus

Optional können Sie den Visualizer von ChatDev ausführen, eine auf Flask basierende grafische Benutzeroberfläche, mit der Sie Agentenprotokolle in Echtzeit einsehen, den ChatChain-Workflow erkunden oder gespeicherte Agentendialoge erneut abspielen können. Dieses Tool ist nützlich, um Agenteninteraktionen zu debuggen, zu überwachen oder zu untersuchen, aber es ist nicht erforderlich, um den zentralen Multiagenten-Workflow von ChatDev auszuführen.

Um den Visualizer zu starten, installieren Sie zuerst Flask:

pip install flask

 

Führen Sie dann die App aus: 

python visualizer/app.py

 

Öffnen Sie nach dem Ausführen einen Browser und gehen Sie zu: https://127.0.0.1:8000/

Schritt 7. (Fakultativ) LLM-Konfiguration

Hinweis: Diese Tutorial verwendet eine Version von ChatDev, die für die Verwendung der IBM watsonx® API als Modell-Backend vorkonfiguriert ist. Für das korrekte Funktionieren des Tutorials sind keine zusätzlichen Einstellungen oder Änderungen an der Modellkonfiguration erforderlich. Die Änderung der LLM-Konfiguration ist zwar anpassbar, kann aber zu unvollständigen, falschen und unterschiedlichen Ausgaben führen.

ChatDev baut auf dem CAMEL-Framework auf, das Agentenrollen, Aufgaben und Interaktionen mit Sprachmodellen verwaltet. Die ursprüngliche Implementierung verwendet die OpenAI-API als Modell-Backend für die Anbindung an ChatGPT-Modelle wie GPT-4 und nutzt standardmäßig GPT-3.5-turbo. Das Open-Source-Projekt ist außerdem so konzipiert, dass es Modelle mehrerer LLM-Anbieter über eine einheitliche Modellschnittstelle unterstützt.

Überspringen Sie diesen Schritt, wenn Sie die standardmäßige IBM watsonx.ai-Konfiguration verwenden möchten. Für Experimente können Modelltyp, Parameter und Token-Grenzen an die Arbeit mit der IBM watsonx.ai API angepasst werden.

  • Modelltyp

Um mit verschiedenen Modelltypen zu experimentieren, aktualisieren Sie diewatsonx Eintrag inModelType enum inkamel/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.

 

  • ModellparameterDS

Die Konfiguration der Modellparameter erfolgt untercamel/configs.py  unter WatsonxConfig  Datenklasse.

# 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

 

  • Token-Limit

Die Konfiguration des Token-Limit für das Modell erfolgt unter camel/utils.py Datei vorstellen

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

Schritt 8. Führen Sie das Skript aus, um eine App zu generieren

In diesem Schritt wird der Kern-Workflow von ChatDev ausgeführt. Wenn Sie dieses Skript ausführen, simulieren die Agenten einen kollaborativen Softwareentwicklungsprozess basierend auf Ihren Eingaben. Der generierte Code, die Dokumentation und die zugehörigen Artefakte werden im WareHouse-Verzeichnis des Projekts gespeichert. Mit dem Visualizer können Sie Protokolle überprüfen oder Unterhaltungen erneut abspielen.

Das Skript verwendet die folgenden Argumente:

  • –-task : Die Beschreibung der gewünschten Softwarelösung

  • –-Name : Der Name der App oder des Projekts

  • –-model : Das zu verwendende KI-Modell (muss auf eingestellt werdenwatsonx für dieses Tutorial)

Beispiel-Skript:

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"

Hinweis: Obwohl die Architektur von ChatDev erweiterbar ist, funktioniert diese Tutorial-Version nur zuverlässig mit watsonx . Die Erweiterung auf andere LLM-Anbieter erfordert eine Änderung der Kamel/model_backend.py Schnittstelle und zugehöriger Konfigurationslogik.

Beispiel für eine Ausgabe

Das endgültige Softwareprodukt wird im WareHouse Ordner in einem Unterverzeichnis gespeichert, das nach dem Projekt, dem Standardnamen des Unternehmens und einem Zeitstempel benannt ist.

Ein typisches Ergebnis könnte in etwa so aussehen:

├── 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

Aufgrund der probabilistischen Natur von generativer KI kann die Ausgabe zwischen den Durchläufen variieren.

Dieses Verzeichnis enthält ein komplettes Softwareprojekt, das von KI-Agenten generiert wurde. Neben der Anwendung und der Dokumentation finden Sie Konfigurationsdateien, die Folgendes definieren:

  • Agentenrollen (RoleConfig.json)

  • Entwicklungsphasen (PhaseConfig.json)

  • Workflow für Agenten (ChatChainConfig.json)

  • Ein Dialogprotokoll, das im Visualizer von ChatDev repliziert werden kann

Befolgen Sie zum Ausführen der App die Anweisungen in der manuelle.md Datei vorstellen

Screenshot, der den „Chatdev“-Bildschirm zeigt

So handhabt ChatDev die Kommunikation mit Agenten

Agenteninteroperabilität bezieht sich auf die Fähigkeit autonomer Agenten, ein gemeinsames Protokoll oder einen gemeinsamen Standard effektiv zu verstehen, zu kommunizieren und zusammenzuarbeiten. Diese Funktion ist unerlässlich für die aufgabenübergreifende Skalierung agentischer KI-Systeme, die Integration großer Datensätze und die kooperative Lösung komplexer Probleme.

Multiagent-Systeme verwenden häufig Agent Communication Protocols (ACPs), die Standards für die Agent-zu-Agent-Kommunikation bereitstellen und interne Kommunikationsmechanismen wie Agent Communication Languages (ACLs) wie KQML oder FIPA-ACL verwenden. Diese definieren standardmäßige „kommunikative Handlungen“ (z. B. informieren, anfordern, abfragen), um einen strukturierten Dialog und die Koordination in dynamischen Umgebungen zu ermöglichen.

ChatDev verfolgt jedoch einen anderen Ansatz. Die Interoperabilität der Agenten wird durch ChatChain erreicht, einen Kommunikationsmechanismus, der den Workflow für die Agentenkoordination strukturiert. ChatChain verwaltet einen rundenbasierten, synchronen Informationsfluss zwischen Agenten in allen Phasen des Softwareentwicklungsprozesses. Obwohl es nicht auf formalen ACLs basiert, ermöglicht ChatChain einen protokollähnlichen Austausch durch die Verwendung von LLM-optimierten Konventionen.

Die Agentenkommunikation von ChatDev basiert auf folgenden Faktoren:

  • Prompt-Vorlagen: Zu Beginn jeder Phase erhalten die teilnehmenden Agenten jeweils eine Eingabeaufforderung, die ihre Rolle, ihre aktuelle Aufgabe und den relevanten Gesprächsverlauf enthält. ChatDev verwendet Inception-Prompting, um diese Informationen direkt in die Eingabeaufforderung einzubetten, wodurch die Kohärenz und Zielausrichtung über alle Interaktionen hinweg gewährleistet wird.

  • Strukturierte Nachrichtenformate: Agenten kommunizieren über strukturierte JSON-Nachrichten, die Ausgaben und Kontextaktualisierungen kodieren. Dies ermöglicht einen konsistenten Datenaustausch und eine Rückverfolgbarkeit im gesamten Workflow.

  • Rollenkonditionierung: Jeder Agent wird mit einer Aufforderung initialisiert, die seine zugewiesene Rolle bekräftigt, einschließlich Verantwortlichkeiten, Zielen und verhaltensbezogenen Erwartungen – eine Schlüsselstrategie bei der kommunikativen Dehalluzination.

Zusammen bilden diese Mechanismen ein leichtgewichtiges, skalierbares Framework, das es ChatDev ermöglicht, gemeinsam Software aus einem einzigen Prompt zu generieren. Dies veranschaulicht, wie eine strukturierte LLM-basierte Zusammenarbeit traditionelle Multiagent-Workflows stimulieren kann.

ChatChain

ChatChain ist der zentrale Kommunikationsmechanismus in ChatDev und steuert die Abfolge der Agenteninteraktionen während des gesamten Softwareentwicklungs-Workflows. Es strukturiert die Zusammenarbeit in einen iterativen, kettenartigen Prozess, der aus verschiedenen Phasen mit jeweils spezifischen Zielen und Kommunikationsmustern besteht.

In jeder Phase initiiert ChatChain einen Dual-Agent-Dialog zwischen zwei rollenspezifischen Agenten (z. B. CEO und CTO, Programmierer und Prüfer). In der Regel fungiert einer als Ausbilder, der andere als Assistent. Dieser strukturierte, mehrstufige Austausch rationalisiert die gemeinsame Entscheidungsfindung und sorgt gleichzeitig für Klarheit in klar definierten Rollen und Verantwortlichkeiten. Die Prompts für jede Phase enthalten Aufgabenanweisungen, Rollenidentität und relevanten Kontext, um die Interaktion zu leiten.

Der gesamte Workflow von ChatDev folgt einem modifizierten Wasserfallmodell, einer traditionellen Methodik für die Softwareentwicklung, die Aufgaben in drei aufeinanderfolgende Phasen aufteilt: Design, Codierung und Testen. Die Codierung- und Testphasen sind weiter in Teilaufgaben unterteilt, die einen iterativen Entwicklungsprozess widerspiegeln.

Standardmäßig unterteilt ChatChain den Workflow in die folgenden geordneten, automatisierten Schritte:

  1. Bedarfsanalyse: Definieren Sie die Struktur und die Schlüsselkomponenten der Anwendung. 

  2. Sprachauswahl: Entscheiden Sie, welche Programmiersprache zum Erstellen und Ausführen der Software verwendet werden soll.

  3. Codierung: Agenten schreiben den Code, um die Anwendung zu erstellen.

  4. CodeCompleteAll: Vervollständigen Sie den Code einschließlich fehlender Funktionen oder Klassen.

  5. CodeReview: Überprüfen und ändern Sie den Code auf Funktionalität.

  6. Test: Führen Sie die Software aus und ändern Sie den Code basierend auf dem Testbericht.

  7. EnvironmentDoc: Dokumentation der Umgebung.

  8. Handbuch: Dokumentieren und schreiben Sie ein Handbuch für die Anwendung.

Jede Phase wird durch ein Konfigurationsobjekt definiert, das Attribute angibt, die ihr Verhalten und ihre Eigenschaften definieren. Zum Beispiel, das Need_reflect -Attribut löst eine Reflexion nach der Phase aus, bei der Bearbeiter die Ergebnisse der vorherigen Interaktion analysieren und verfeinern.

Screenshot mit Chatchain-Diagramm

Inception Prompting

Um die ordnungsgemäße Kommunikation zwischen den Agenten zu fördern, verwendet ChatDev Inception Prompting als Strategie zur Initialisierung des Agenten vor jeder Teilaufgabenrunde. Inception Prompting ist eine Prompt-Engineering-Technik, mit der Rollen, Ziele und Verantwortlichkeiten für eine effektive Kommunikation der Agenten eingebettet werden können.

Schauen wir uns ein Beispiel dafür an, wie die Anfangsaufforderung zwei Agenten dazu anleitet, eine Teilaufgabe zu starten, daran zu arbeiten und abzuschließen. 

Beispiel für Inception Prompting in ChatDev

Vor jeder Teilaufgabe erhält jeder Bearbeiter Eingabeaufforderungen als Parameter, die rollenspezifische Anweisungen, Merkmale, Verantwortlichkeiten und Ziele definieren. Zwei Beispiele sindAssistant_role_prompt unduser_role_prompt . Diese Parameter definieren die Rollen und Verantwortlichkeiten, die jedem an der Konversation teilnehmenden Agenten zugewiesen sind, basierend auf dem Kontext der Aufgabe.

Hier sind die System-Prompts basierend auf den Agentenrollen für den Ausbilder- und Assistentenagenten in der LanguageChoose-Phase:

// 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." 
   ],

 

Diese beiden Prompt lösen das gewünschte Verhalten des Servicemitarbeiters aus, indem sie seine Rolle, sein Fachwissen und seine Verantwortlichkeiten beschreiben. Die Prompt-Strategie steuert auch das Verhalten und die Reaktionen der jeweiligen Rollen während der Interaktionen, indem sie maßgeschneiderte Anweisungen zur Erledigung der zugewiesenen Aufgabe gibt.

Die Kommunikation der Bearbeiter wird effektiv durch sorgfältige Prompt geleitet, um sicherzustellen, dass beide Rollen klare Erwartungen haben und effektiv zusammenarbeiten können.

Kommunikative Dehalluzination

Um mögliche Codierungshalluzinationen (unvollständige oder falsche Codegenerierung) zu beseitigen, verwendet ChatDev ein Kommunikationsmuster: die sogennante kommunikative Dehalluzination. Dieses Muster ist wichtig für die Strukturierung des Gesprächs während des Codeüberprüfungsprozesses.

Der Review-Prozess umfasst zwei Phasen.CodeReviewComment undCodeReviewModification Die Prüfer und Programmier-Agenten führen Iterationen zwischen diesen beiden Phasen durch, bis zwei aufeinanderfolgende Änderungen unverändert bleiben, oder nach 10 Runden. Sehen wir uns ein Beispiel für kommunikative Dehalluzination aus einem Projektprotokoll an.

Beispiel für kommunikative Dehalluzination in ChatDev

In diesem Beispiel erkennt der Code Review Agent einen Fehler in der Ausgabe des Programmer Agent und kommuniziert ihn zusammen mit einem Vorschlag zur Korrektur des Problems im Quellcode. Der Programmieragent korrigiert dann seine ursprüngliche Ausgabe auf der Grundlage dieses Feedbacks.

Hier ist ein Teil der Ausgabe des Code-Review-Agenten während einer Iteration desCodeReviewComment Phase:

/* 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`

 

Der Programmieragent antwortet im Laufe des nächsten Schritts mit dem korrigierten CodeCodeReviewModification Phase:

/* 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>

 

Der Code Prüfer und Programmierer verfeinern den Code entweder bis zu 10 Wiederholungen lang weiter oder bis nach zwei aufeinanderfolgenden, identischen Änderungsphasen ein Konsens erzielt wird.

Das Muster der Kommunikationsdehalluzination trägt dazu bei, dass der endgültige Code durch iterative Verfeinerung korrekt, vollständig und mit den beabsichtigten Anforderungen übereinstimmend ist, und erleichtert gleichzeitig die effektive Erledigung von Teilaufgaben.

Zusammenfassung

In diesem Tutorial haben wir erkundet, wie ChatDev kollaborative KI ermöglicht, indem es ein virtuelles Softwareunternehmen simuliert, das aus rollenbasierten KI-Agenten besteht. Mit der IBM watsonx.ai API als Modell-Backend führt ChatDev Agenten durch den Softwareentwicklungszyklus, indem es strukturierte Kommunikation in natürlichen und Programmiersprachen nutzt, wobei die IBM watsonx® API und die KI verwendet werden.

Obwohl ChatDev kein formales Agenten-Kommunikationsprotokoll verwendet, erreicht es die Interoperabilität des Agenten durch die natürlichen Fähigkeiten des LLM mit Agenten-Kommunikationstechniken wie ChatChain, Inception Prompting und kommunikativer Dehalluzination. Dies unterstreicht die Bedeutung der Orchestrate einer effektiven Agentenkommunikation für eine erfolgreiche Zusammenarbeit und die Verbesserung der Ausgabequalität. 

Mit integrierten Visualisierungstools zur Überwachung und Wiedergabe von Agenteninteraktionen bietet ChatDev eine leistungsstarke Plattform zur Untersuchung von Workflows und der Dynamik von Teamworks® . Es demonstriert das reale Potenzial kollaborativer KI in der Softwareerstellung und darüber hinaus.

Weiterführende Lösungen
Entwicklung von IBM KI-Agenten 

Ermöglichen Sie Entwicklern die Erstellung, Bereitstellung und Überwachung von KI-Agenten mit dem IBM watsonx.ai Studio.

 

watsonx.ai erkunden
Lösungen im Bereich künstlicher Intelligenz

Setzen Sie KI in Ihrem Unternehmen ein – mit branchenführendem Fachwissen im Bereich KI und dem Lösungsportfolio von IBM an Ihrer Seite.

Erkunden Sie KI-Lösungen
KI-Beratung und -Services

Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.

KI-Services entdecken
Machen Sie den nächsten Schritt

Ganz gleich, ob Sie vorgefertigte Apps und Skills anpassen oder mithilfe eines KI-Studios eigene Agentenservices erstellen und bereitstellen möchten, die IBM watsonx-Plattform bietet Ihnen alles, was Sie brauchen.

Entdecken Sie watsonx Orchestrate watsonx.ai erkunden