LLM-gestützte Entwicklung eines Diagramm-Generators: Erkenntnisse zur Code-Validierung#
Projektkontext#
Der KI-Diagramm-Generator entstand als Lernprojekt zur Exploration von Multi-Agenten-Architekturen in der LLM-gestützten Softwareentwicklung. Das primäre Lernziel bestand darin, die Zuverlässigkeit LLM-generierter Syntax von initial etwa 70% auf nahezu 100% zu steigern – speziell für Mermaid-Diagrammcode. Ein sekundärer praktischer Anlass war der Bedarf an verlässlich generierten Diagrammen.
Das fertige Tool umfasst 13.000 Zeilen Code (12.400 Zeilen Python in 27 Dateien) und unterstützt 12 Diagrammtypen mit über 40 Templates. Die Entwicklung erfolgte in kurzen Sessions (10-15 Minuten) über zwei Wochen bei einem Gesamtaufwand von etwa 6 Stunden.
Technische Umsetzung#
Die Architektur basiert auf einem Multi-Agenten-System mit spezialisierten Komponenten:
- ChatAgent: Analysiert Nutzeranfragen und koordiniert die Diagramm-Generierung
- DiagramAgent: Generiert Mermaid-Code basierend auf strukturierten Daten
- ValidationAgent: Prüft und korrigiert generierten Code durch iterative LLM-gestützte Reparatur
Die Gradio-basierte UI gliedert sich in vier Hauptbereiche: Chat-Interface, Daten-Panel für strukturierte Eingaben, Live-Code-Editor mit Undo-Funktion und Diagramm-Galerie. Diese Modularisierung entstand organisch während der Entwicklung und erwies sich als förderlich für die LLM-Zusammenarbeit.
Ein zentrales technisches Element ist die Validierungs-Pipeline: Pre-Validation → Rendering-Test → LLM-Korrektur (max. 3 Versuche). Bei Fehlschlag erfolgt Fallback auf vordefinierte Templates.
Entwicklungsprozess in fünf Phasen#
Die Entwicklung erfolgte durch lokale LLMs in einem strukturierten Prozess:
- Spezifikationsphase (90 Min): Intensive Architekturdiskussion mit dem LLM, Pattern-Auswahl entlang KISS-Prinzipien
- Basis-Implementierung (30 Min): Initiale Umsetzung der Kern-Komponenten
- ValidationAgent-Integration (30-45 Min): Hinzufügen automatischer Code-Validierung
- Pattern-Integration (30-45 Min): Erweiterte Fehlerkorrektur-Patterns
- Mermaid-Syntax-Referenz (30-45 Min): Vollständige Syntax-Spezifikation im System-Prompt
Jede Phase umfasste eine große Iteration. Die vorab geführte Architekturdiskussion und schrittweise Verfeinerung über vier Runden erwiesen sich als effektiver als ein Big-Bang-Ansatz.
Zentrale methodische Erkenntnisse#
Bewährte Ansätze:
- Multi-Agenten-Architekturen scheinen gut für LLM-gestützte Entwicklung geeignet zu sein, da sie klare Verantwortlichkeiten schaffen
- Syntax-intensive Aufgaben profitieren erheblich von vollständigen Referenzen im System-Prompt
- Iterative Validierungs-Loops mit LLM-Korrektur können die Code-Qualität deutlich steigern (hier: von ~70% auf 95% Validität)
- Klare Spezifikationen und explizite Pattern-Vorgaben führen zu verlässlicheren Ergebnissen
Verbleibende Herausforderungen:
- Die nachträgliche Korrektur fehlerhaften LLM-Codes bleibt anspruchsvoll und gelingt nicht immer
- Intent-Erkennung aus natürlichsprachlichen Anfragen funktioniert für dieses Tool noch nicht zuverlässig genug
- Die grundlegende Code-Qualität hängt stark von der Zuverlässigkeit des verwendeten LLMs ab
Wichtige Einschränkung: Die Erkenntnisse stammen aus einem einzelnen Projekt und sollten nicht als allgemeingültig verstanden werden.
Praktische Erprobung#
Das Tool wird derzeit getestet und gelegentlich genutzt. Nach den vier Iterationen liegt die Erfolgsrate bei etwa 95% – die meisten generierten Diagramme sind valide. Der integrierte Code-Editor ermöglicht leichte manuelle Anpassungen, wo nötig. Allerdings deckt Mermaid nicht alle Diagramm-Anforderungen ab, und die Intent-Erkennung bleibt verbesserungswürdig. Erkenntnisse aus diesem Projekt flossen in ein Nachfolgeprojekt (“Chart-Tool”) ein, das die Intent-Verarbeitung weiterentwickelt.
Fazit#
Das Projekt zeigt, dass durch systematische Validierung und Syntax-Integration die Zuverlässigkeit LLM-generierter Syntax erheblich gesteigert werden kann. Die Multi-Agenten-Architektur erwies sich als strukturierender Rahmen für die LLM-Zusammenarbeit. Gleichzeitig bleibt die nachträgliche Code-Korrektur eine zentrale Herausforderung, die nicht vollständig gelöst ist. Das Tool funktioniert als Lernvehikel und gelegentliches Hilfsmittel, hat aber noch nicht Produktionsreife für alle Anwendungsfälle erreicht.