Zugegeben, die Überschrift ist ein bisschen reißerisch. Dieser Artikel ist eine Reaktion auf die Frage „In Moment hört man immer mehr, KI sei Overhyped und nur Geld Verbrennung. Wie seht ihr das?“, die in einem internen connect.IT Forum aufkam. Wir als Adiscon GmbH sehen sehr wohl den Hype – aber auch die nützlichen Anwendung. Hier, am konkreten Beispiel unsere Position zur agentischen Generierung von Quellcode.
KI-Quellcode Generierung am Beispiel einer ausgereiften C-Codebasis
Konkret geht es um rsyslog, ursprünglich ein reiner syslog-server unter Linux. Mittlerweile aber auch eine wesentliche Komponente in Logging- und anderen Data-Pipelines (auch als ETL-Tool genutzt). Es handelt sich um weit verbreitetete Infrastruktur Software und dürfte auf weltweit ca. 70% der Linux Systeme installiert sein.
Kerndaten
- 2004 als rsyslog geforkt, Ursprünge im originalen 1980er syslogd
- wird nach wie vor stark weiter entwickelt, Adiscon unterstützt das Projekt und hat Hauptentwickler im Team
- Primäre Sprache C, Build System GNU Autotools
- knapp 200.000 Lines of Code
- modulares Design, aufbauend auf Microkernel Architektur
- komplexer multi-threaded code
- Starke Nutzung von C Preprozessor Makros für Portabilität
- Geschuldet der langen Historie unterschiedliche Idiomatik im Quellcode
- Code-Style entspricht nicht in allen Teilen den gängigen Erwartungen einer KI
Der Code ist komplex, umfangreich, historisch gewachsen und mehrfach refaktoriert. Er wird nach wie vor stark weiter entwickelt. Das Repository selbst ist noch wesentlich umfangreicher und enthält unter anderem die gesamte Dokumentation sowie Containerdefinitionen und alle CI Tests.
Eine solche Codebasis ist nicht das, worauf man üblicherweise KI Agents ansetzt. Als Case-Studies findet man oft nur kleine Anwendungen, oft im Web-Bereich. Meist in aktuell modernen Code-Styles.
Zielsetzung das rsyslog Projekts ist es dennoch, diese Codebasis mit agentischer KI zu warten und fortzuentwickeln. Langfristig streben wir dabei möglichst autonome Generierung aufgrund von Spezifikationen an.
Erfahrungen
In diesem Artikel lassen sich unmöglich sämtliche Aspekte und Details darstellen. Wir fokussieren uns auf die Generierung und Wartung von C-Code.
Seit dem Aufkommen der ersten öffentlichen Version von ChatGPT haben wir evaluiert, wozu KI Codegenerierung fähig ist. In kleinen Schritten haben wir Testprojekte in 2023 und 2024 durchgeführt. Zu Beginn waren die Ergebnisse gänzlich unbrauchbar. Später war der Einsatz in gewissen Nischenbereichen möglich. Eine erhöhte Produktivität war nicht feststellbar, ganz im Gegenteil: die Tests kosteten zusätzliche Zeit. In 2025 besserte sich die Situation, und speziell mit dem Aufkommen von openAI codex, dem ersten breit verfügbaren asynchronen Code-Agenten, im Mai änderte sich unsere Einschätzung der Situation: KI war bereit für „Prime Time“.
Erstmals konnte ein KI Agent Aufgaben weitgehend autonom übernehmen und die Ergebnisse sahen „ausreichend“ aus. Allerdings: zu Anfang war nach wie vor immense Nachbearbeitung erforderlich. Das ändert sich aber, nachdem wir
- spezielle Dokumentation für KI-Agenten hinzufügten (z.B. AGENTS.md)
- die Inline-Dokumentation in den C-Dateien verbesserten
- teils die Idiomatik änderten, insb. bei sehr alten Konstrukten zu denen die KI unzureichend Trainingsdaten gesehen hatte
Eines der größeren Probleme der Idiomatik war interessanterweise die Verwendung von Tabulatoren anstelle Leerzeichen zur Einrückung. Das hinderte die KI zwar nicht an korrekter Code-Generierung, führte aber zu sehr unerwünschten großen Differenzen in Patches (git diff), die lediglich auf geändertest Spacing zurück gingen. Klingt trivial, war aber ein großes Problem, dass wir leider nur durch Umstellung auf Space-Indenting lösen konnten.
Beständige Pflege des KI-Support notwendig
Das alles war aber kein „one-time shot“. Zum Einen erscheinen neue Modelle, und damit anderes Verhalten. Zum Anderen sieht man Schwierigkeiten bei der Generierung natürlich nur bei den Code-Teilen, die auch konkret bearbeitet werden. In einem größeren Projekt wie rsyslog finden sich daher immer wieder stellen, die ein KI Agent noch nie gesehen hat.
Die Pflege diese KI-Support ist somit eine Daueraufgabe. Wenn immer wir Generierungsprobleme sehen (und wir sehen sie häufig genug), erfolgt eine Root-Cause Analyse und, hoffentlich, eine geeignete Gegenmassnahme. So evolviert nicht nur der Code, sondern auch der darin enthaltene KI-Support.
Wichtig ist auch, nicht blind auf KI zu vertrauen. Manchmal gibt es Situationen, in denen die KI sich „hoffnungslos verrennt“. Pragmatisch betrachtet ist es in solchen Fällen dann oft sinnvoll, manuell zu übernehmen. Oft kommt so etwas vor, wenn die Aufgabe für die KI einfach noch zu groß war. Root Cause ist dann meist zu großer Optimismus bei der Task Planung. Neuere, automatisch planende KI-Agenten sind hier eine hilfreiche Unterstützung.
Kann man sich wirklich an KI-Generierung im Infrastrukturprojekt trauen?
Ja! Aber: man darf keinesfalls ungeprüft das Übernehmen, was die KI erzeugt hat. Aus jahrelanger Erfahrung können wir aber sagen: das darf man auch keinesfalls bei Patches, die von Menschen erzeugt wurden. Denn erstens gibt es unterschiedliche gute Entwickler. Und zweitens gibt es durchaus böswillige Akteure, die Schadcode oder Backdoors in Infrastruktur einfügen möchten.
Das rsyslog Projekt hat daher bereits seit langem eine umfangreiche CI bestehend aus
- umfangreichen Tests
- Testläufe auf verrschiedensten Platformen mit verschiedenen Compiler-Settings
- Verwendung von Sanitizern, die dynamisch Memory und Threading Fehler sowie undefinierte Situationen erkennen
- Statitische Analyse via diverser Tools
- Überprüfung von Code-Standards (wie Formatierung)
- finaler manueller Review vor Merge
Diese CI stellt sicher, das schlechte Patches fast keine Chance haben, in das Projekt aufgenommen zu werden (100% Sicherheit gibt es nie). Dabei ist es unerheblich, ob die Patches von Mensch oder KI generiert wurden.
Ergänzt haben wir die CI zusätzlich durch einen automatisierten und zwingenden KI Review. Der liegt nicht immer 100% richtig und neigt zur Übertreibung. Er findet aber häufig auch Kleinigkeiten, die sonst sowohl bei der CI als auch im manuellen Review durchgegangen wären. Dieser automatische Review hat sich gerade für die Maintainer als ein wichtiges und Zeit sparendes Hilfsmittel erwiesen. Er erleichtert insbesondere die initiale Erst-Einschätzung bei komplexen Patches.
Gerade der KI Review führt auch zu höhere Software-Qualität, da er eben ansonsten übersehene Kleinigkeiten sehr gut erkennen und sichtbar machen kann.
Bleibt noch Raum für Verbesserung?
Definitiv! Vieles ist gut, aber es gibt auch noch eine ganze Reihe von Problemen. Das Ziel der vollautomatisierten, korrekten Code-Generierung anhand einer aussagefähigen Spezifikation ist keinesfalls bereits erreicht. Es wird uns sicherlich noch viele Jahre beschäftigen.
Vollständig wird dies aus theoretischen Erwägung (Satz von Rice) ohnehin nicht möglich sein. Allerdings: auch Menschen sind keineswegs perfekt, von daher ist 100% Korrektheit ohnehin nie zu erwarten.
Somit gilt auch für die Zukunft: auch KI-gestützte Code Entwicklung ist unserer Auffassung nach ein iterativer Prozess, der nur auf einem ansteigenden Abstraktionsniveau fortgesetzt wird.
Fazit
KI ist nicht nur Hype und auch in „echten“, bedeutsamen und komplexen Projekten zur Code-Generierung einsetzbar. Dann lassen sich auch spürbare Produktivitätsgewinne erzielen, sowie Verbesserungen der Software Qualität.
Kritischer Erfolgsfaktor ist aber, wie mit dem Werkzeug KI umgegangen wird. Wer ohne viel Aufwand, Planung und Investment „Vibe Coding“ betreibt und gut brauchbaren Code erwartet wird vermutlich scheitern. Vermutlich nicht nur bei „ernsthaften Projekten“, aber insbesondere dort.
Notwendige Voraussetzung für den erfolgreichen Einsatz von KI-Agenten sind Investitionen. Und zwar in
- KI Know-How aller Beteiligten
- hinreichend Zeit zum Test neuer Feature
- Erstellung und Pflege von Dokumentation für KI-Agenten
- Anpassung des Codes an KI-Agenten
Und insbesondere die Schaffung eines an KI angepassten Entwicklungsprozesses. Dieser muss an die raschen Entwicklungen in der KI angepasst sein und KI-Komponenten als Bestandteil des insgesamt evolvierenden Code-Ökosystems verstehen.
Kurz gesagt: Investiert man ausreichend, zeigen sich auch die Früchte. Eigentlich wie immer im Leben…