In vielen Branchen ist die Modernisierung veralteter Software-Systeme drängender denn je. Unser Proof of Concept zeigt, wie eine Multi-Agent-AI die komplexe Migration kooperativ erledigen kann.
Die Softwareentwicklung mit KI ist mittlerweile nicht mehr wegzudenken: Je nach Anwendungsfall reden wir von einer Produktivitätssteigerung von 40 bis 80 Prozent.
Aber gilt das auch für komplexe Modernisierungsprojekte, für die man nicht nur Developer:innen, sondern ein komplettes Scrum-Team braucht? Oder anders gefragt: Kann Künstliche Intelligenz ein komplexes Projekt „stemmen“, in dem es um die Migration von teilweise in Java und der alten Statistiksprache SAS (Statistical Analysis System) geschriebenen Legacy-Software in ein neues Python-basiertes System geht?
Unsere Antwort: Ja, und zwar mit einem Multi-Agent-System (MAS), mit dem wir auf Basis des KI-Frameworks AutoGen von Microsoft und dem Sprachmodell ChatGPT 4 ein komplettes virtuelles Scrum-Team aufgestellt haben.
KI kann komplexe Aufgaben kooperativ erledigen
Konkret geht es in unserem Proof of Concept (PoC) um die Migration von Altsoftware, die statistische Auswertungen im Finanzsektor ermöglicht. Für die Überführung in ein modernes Phyton-System braucht es einen aufwändigen Prozess, der die Analyse von über 500 Kommandos, das Schreiben der User Stories inklusive Akzeptanzkriterien, die Entwicklung sowie das Testing beinhaltet.
Müsste man diese Migration manuell durchführen, würden allein schon die Analyse des alten Codes und die Erstellung der User Stories enorm viel Zeit in Anspruch nehmen. Dazu kommt, dass SAS-Spezialist:innen heute rar und wenn überhaupt verfügbar, sehr kostspielig sind.
Um diesen Prozess zu automatisieren, haben wir mit AutoGen und dem Large Language Model (LLM) von ChatGPT 4 eine Multi-Agent-AI entwickelt, die es ermöglicht, verschiedene KI-Agents zu erstellen und untereinander zu koordinieren. Diese Agents bilden das Scrum-Team, das aus einem Product Owner, Analyst, Developer, Test Lead und Test Executor besteht. Zusätzlich greift jeder Agent noch auf einen Assistant-Agent als eigene ChatGPT-Instanz zurück, die mit ihm kommuniziert und dabei hilft, seine Aufgaben zu erfüllen.
Was steckt hinter der Multi-Agent-AI?
Mithilfe von Multi-Agent-Frameworks wie AutoGen können Sprachmodelle wie ChatGPT verschiedenste Funktionen ausführen. Dazu wird dem Sprachmodell in natürlicher Sprache mitgeteilt, dass eine bestimmte Funktion mit bestimmten Parametern verfügbar ist. AutoGen kümmert sich dann darum, dass die Funktion oder das Tool mit dem vom Sprachmodell vorgegebenen Parametern aufgerufen wird.
Die tatsächliche Ausführung erfordert dann noch eine entsprechende Laufzeitumgebung. Und kombiniert man diese mit der Künstlichen Intelligenz des Sprachmodells, entsteht ein Agent, der selbstständig Programmcode erstellen, ausführen und anhand von Fehlermeldungen debuggen kann.
Im Gegensatz zum reinen Sprachmodell kann der Agent also nicht nur textuelle Ausgaben erzeugen, sondern auch eigenständig Handlungen planen und ausführen. Werden solche Agenten nun zur Zusammenarbeit verknüpft und mit passenden Tools zur Informationssuche in einer Datenbank oder Code-Analyse ausgestattet, kann eine enorm mächtige KI zur Softwareentwicklung entstehen.
So läuft die Software-Migration in 6 Schritten ab:
Der Product Owner erhält einen Code, der analysiert, in Python neuentwickelt und anschließend getestet werden soll.
Er ruft den Analyst auf, der den Code analysiert, die User Story schreibt und diese mithilfe von Testdaten verfeinert.
Über den Product Owner wird die User Story an den Developer weitergegeben, welcher den Code schreibt
Der erstellte Code wird an den Test Lead weitergegeben, der Unit Tests im Code schreibt.
Der Test Executor führt die Tests durch und meldet die Ergebnisse zurück.
Der Product Owner prüft, ob alle Tests erfolgreich waren und schließt den Task bei einem positiven Ergebnis an. Ist das nicht der Fall, wird der Code mit dem Developer iterativ weiteentwickelt.
Welche Vorteile bietet AutoGen?
Ein entscheidender Vorteil unseres auf AutoGen basierenden PoCs ist, dass die Multi-Agent-AI es den einzelnen Rollen ermöglicht, verschiedene in natürlicher Sprache beschriebene Tools automatisch zu erkennen und zu nutzen. Etwa, indem der Analyst-Agent Testdaten abfragt, um die User Story zu verfeinern oder indem ein Tool vom Developer-Agent zur statischen Code-Analyse verwendet wird.
Zusätzlich unterstützt AutoGen automatisierte Chats zwischen den Agents, was eine flüssige Kommunikation und Interaktion ermöglicht, wodurch komplexe Aufgaben in kleinere, handhabbare Teile zerlegbar sind.
Im Prinzip führt die Zusammenarbeit verschiedener Künstlicher Intelligenzen wie bei uns Menschen dazu, dass verschiedene Stärken und Kompetenzen zusammenkommen und sich ergänzen. Dabei ist das Multi-Agent-System hochflexibel: Die einzelnen Instanzen sind anpassbar, kommunikativ und ermöglichen eine nahtlose menschliche Beteiligung. Sie können in verschiedenen Modi betrieben werden, die Kombinationen aus LLMs, menschlichen Eingaben und verschiedener Tools verwenden.
Zeit und wertvolle Ressourcen einsparen
Der größte Vorteil liegt allerdings in der enormen Zeitersparnis, die unser Multi-Agent-System für die Erledigung der ihm zugeteilten Aufgabe bietet. Durch die vollständige Automatisierung der Software-Migration lassen sich viele manuelle Schritte einsparen und wertvolle Ressourcen schonen. Die Fachkräfte, die noch alte Programmiersprachen wie SAS beherrschen, können sich damit auf komplexere Aufgaben konzentrieren, während die KI die Routinearbeiten übernimmt.
So beweist unser Proof of Concept, das AutoGen einen bedeutenden Schritt in der Evolution großer Sprachmodelle und ihrer Anwendungen darstellt. Dabei bietet die Einführung eines Multi-Agenten-Frameworks eine erweiterte Flexibilität und Effizienz für viele Anwendungsfälle, die in traditionellen Einzelagenten-Modellen nicht zu finden sind.
Wobei Multi-Agent-AI unterstützen kann:
Code-Generierung
Testautomatisierung
Dokumentation
Datenverarbeitung und -analyse
DevOps und CI/CD
Spezifische Anwendungsfälle
Evolutionieren Multi-Agenten-Systeme die Softwareentwicklung mit KI?
Du siehst: Multi-Agenten-Systeme sind hilfreich, wenn es um komplexere (teil-)autonome Systeme geht, in denen für jede Teilaufgabe ein spezieller Agent hinsichtlich Prompting, Modellauswahl und Konfiguration definiert werden soll.
Auch unser PoC zeigt eindrucksvoll, wie sich mit AutoGen und ChatGPT ein komplettes virtuelles Scrum-Team zur Migration von Altsoftware zusammenstellen lässt. Ein weiteres Projekt testet gerade die Möglichkeit, eine alte React Native App zu migrieren, indem die Dokumentation der alten und neuen Versionen genutzt wird.
Aber ganz gleich, welcher Use Case es am Ende ist: Microsoft hat selbst in einem Paper gezeigt, dass AutoGen durch einen guten System-Prompt auch in Anwendungsfällen mit nur einem Agent gut performt. Ist die Aufgabe hingegen in mehrere Teilaufgaben zerteilbar, kann der Einsatz spezialisierter und zusammenarbeitender Agents umso lohnender sein.