Der nachfolgende Text wurden mit KI erstellt und kann Fehler enthalten. Fehler gefunden? Bei GitHub editieren
Verantwortungsvolles KI-gestütztes Entwickeln mit Workflow-gesteuertem LLM-Dialog
Die Integration von Large Language Models (LLMs) in den Software-Entwicklungsprozess verspricht enorme Produktivitätsgewinne. Allerdings stellt sich dabei die Herausforderung, wie man die KI-Systeme effektiv steuern und zu erwartungskonformen Ergebnissen führen kann. Oliver Jägle stellt einen innovativen Ansatz vor, der LLMs durch definierte Workflows und kontextbasierte Steuerung zu besseren Entwicklungspartnern macht.
Die Herausforderung: Erwartungskonforme Ergebnisse
Während LLMs beeindruckende Fähigkeiten bei der Code-Generierung zeigen, entsprechen die Ergebnisse oft nicht den Erwartungen erfahrener Entwickler. Das Problem liegt weniger in der Qualität des generierten Codes, sondern vielmehr darin, dass Erwartungen nicht klar definiert werden, wichtige Entwicklungsphasen übersprungen oder Architekturentscheidungen vorweggenommen werden.
Der Lösungsansatz: Workflow-gesteuerte Entwicklung
Olivers Ansatz basiert auf der Idee, dem LLM durch definierte Workflows eine klare Struktur vorzugeben. Statt einen einzelnen Mega-Prompt zu verwenden, der alle Anforderungen enthält, wird der Entwicklungsprozess in Phasen unterteilt. In jeder Phase erhält das LLM nur die relevanten Kontextinformationen und Instruktionen.
Diesen Ansatz kann man auch ganz ohne Tooling verfolgen, indem man sich für jede seiner Entwicklungsphasen Prompts vorbereitet und das LLM mit diesen anweist, Aufgaben und Erkenntnisse in einem Prozessgedächtnis zu pflegen. Allerdings erfordert dies eine hohe Disziplin des Entwicklers und bindet dessen Aufmerksamkeit, die besser für wichtige Entscheidungen eingesetzt werden kann.
Daher hat Oliver sich für diese wiederkehrenden Tätigkeiten ein Tool entwickelt, mit dem LLM und Engineer gemeinsam flexibel definierten Arbeitsabläufen folgen können.
Die wichtigsten Komponenten sind:
- Phasenspezifische Instruktionen: Steuern das Verhalten des LLMs in jeder Phase
- Prozessgedächtnis: Speichert den aktuellen Zustand im Workflow
- Langzeitgedächtnis: Dokumentiert wichtige Entscheidungen und Artefakte
- Quality Gates: Ermöglichen manuelle Kontrolle an kritischen Übergängen
Praktische Umsetzung mit dem MCP-Server
Die technische Implementierung erfolgt über einen MCP (Model Context Protocol) Server (Github Repo, Dokumentation), der die Workflow-Steuerung übernimmt. Das System nutzt das Tool-Calling-Feature moderner LLMs, um Workflow-Zustände und Kontextinformationen zu verwalten.
Wichtige Funktionen:
- Automatische Workflow-Auswahl basierend auf der Aufgabe
- Phasenübergänge mit expliziter Nutzerfreigabe
- Perspektivwechsel für Reviews aus unterschiedlichen Rollen
- Persistente Dokumentation von Entscheidungen
Vorteile des Ansatzes
- Strukturierte Entwicklung: Der Workflow-basierte Ansatz zwingt zu einem methodischen Vorgehen
- Bessere Kontrolle: Entwickler behalten die Kontrolle über wichtige Entscheidungen
- Nachvollziehbarkeit: Alle Entscheidungen werden dokumentiert
- Flexibilität: Verschiedene Workflows für unterschiedliche Aufgaben
Einsatzszenarien
Der Ansatz eignet sich nicht nur für die Neuentwicklung, sondern auch für:
- Feature-Entwicklung
- Bug-Fixing
- Analyse von Legacy-Systemen
Es lassen sich damit aber auch Nicht-Entwicklungstätigkeiten strukturiert mit einem LLM erarbeiten, bspw.
- Dokumentationserstellung
- Präsentationsvorbereitung
Außerdem unterstützt das Tool die modifikationsfreie Modellierung eigener Workflows.
Fazit
Der vorgestellte Ansatz zeigt, wie man LLMs effektiv in den Entwicklungsprozess integrieren kann, ohne die Kontrolle über wichtige Entscheidungen zu verlieren. Durch die Workflow-Steuerung werden die Stärken der KI-Systeme optimal genutzt, während gleichzeitig methodisches Vorgehen und gute Software-Engineering-Praktiken gewährleistet bleiben.
Die Entwicklung mit LLMs wird damit zu einem verantwortungsvollen “Responsible Vibe Coding”, das Produktivität und Qualität vereint. Der Entwickler bleibt dabei der Engineer, der die wichtigen Entscheidungen trifft, während das LLM als leistungsfähiger Assistent für die Projektsteuerung agiert und die Implementierung übernimmt.