Connect with us

Entwicklung & Code

Event Sourcing trifft MCP: Die ganze Geschichte für LLMs


close notice

This article is also available in
English.

It was translated with technical assistance and editorially reviewed before publication.

Im vergangenen August habe ich an dieser Stelle argumentiert, dass Event Sourcing die perfekte Grundlage für KI sei. Die Kernthese lautete: Ohne vollständige, kontextreiche Daten bleibt jedes noch so leistungsfähige Modell blind. Event Sourcing liefert genau diese Daten, weil es nicht nur den aktuellen Zustand speichert, sondern die gesamte fachliche Geschichte. An der These hat sich nichts geändert. Doch eine Frage blieb damals offen: Wie macht man diese Daten für ein Large Language Model zugänglich?

Weiterlesen nach der Anzeige


the next big thing – Golo Roden

the next big thing – Golo Roden

Golo Roden ist Gründer und CTO von the native web GmbH. Er beschäftigt sich mit der Konzeption und Entwicklung von Web- und Cloud-Anwendungen sowie -APIs, mit einem Schwerpunkt auf Event-getriebenen und Service-basierten verteilten Architekturen. Sein Leitsatz lautet, dass Softwareentwicklung kein Selbstzweck ist, sondern immer einer zugrundeliegenden Fachlichkeit folgen muss.

Seit knapp anderthalb Jahren existiert mit dem Model Context Protocol (MCP) ein offener Standard, der LLMs mit beliebigen externen Datenquellen verbindet. Damit lässt sich die Lücke zwischen dem, was ein Event-Store an Daten bereithält, und dem, was ein Sprachmodell davon sehen kann, elegant schließen. Dieses Zusammenspiel verdient einen genaueren Blick.

Wer mit Large Language Models arbeitet, lernt schnell eine wichtige Lektion: Die Qualität der Antworten hängt weniger vom Modell ab als vom Kontext, den man ihm gibt. Ein durchschnittliches Modell mit hervorragendem Kontext liefert bessere Ergebnisse als ein Spitzenmodell, dem der Kontext fehlt. Das gilt für einfache Prompts ebenso wie für komplexe Analysen über Unternehmensdaten.

Kontext bedeutet hier nicht nur die Frage, die man stellt, sondern vor allem auch die Daten, auf die das Modell zugreifen kann. Und genau hier liegt das Problem: Die meisten Datenbanken speichern ausschließlich den aktuellen Zustand. Eine relationale Datenbank verrät Ihnen, dass eine Kundin den Status „Premium“ hat. Sie verrät aber nicht, seit wann, warum oder welche Interaktionen dazu geführt haben. Sie zeigt, dass ein Produkt 9,99 Euro kostet, nicht jedoch, ob dieser Preis gestern gesenkt wurde oder seit zehn Jahren unverändert ist. Sie zeigt, dass eine Bestellung den Status „offen“ hat, nicht jedoch, ob sie dreimal geändert, einmal storniert und dann erneut aufgegeben wurde.

Für ein LLM ist das, als würde man ihm ein Buch reichen, in dem nur das letzte Kapitel steht. Es kann den aktuellen Zustand beschreiben, aber keine Zusammenhänge erklären, keine Muster erkennen, keine Entwicklungen nachvollziehen. Es fehlt schlicht die Geschichte, die in den vorangegangenen Kapiteln erzählt wurde.

Event Sourcing löst dieses Problem grundlegend. Statt den Zustand zu speichern und bei jeder Änderung zu überschreiben, werden die einzelnen Zustandsänderungen als fachliche Ereignisse festgehalten. Jedes Ereignis beschreibt, was passiert ist, wann es passiert ist und in welchem fachlichen Kontext es steht. Die Summe aller Ereignisse ergibt nicht nur den aktuellen Zustand, sondern die vollständige, chronologische und unveränderliche Geschichte. Aus dem letzten Kapitel wird das gesamte Buch.

Weiterlesen nach der Anzeige

Die beste Datengrundlage nützt allerdings wenig, wenn ein LLM nicht darauf zugreifen kann. Bislang erforderte die Anbindung externer Datenquellen an ein Sprachmodell in der Regel individuelle Integrationen: eigene APIs, eigenen Glue-Code, eigene Wartung. Für jede Kombination aus Datenquelle und LLM musste eine eigene Lösung gebaut werden. Das skaliert schlecht und schafft Abhängigkeiten, die sich im Laufe der Zeit zu einer ernsthaften technischen Schuld entwickeln.

Das Model Context Protocol ändert das: MCP ist ein offener Standard, den Anthropic im November 2024 vorgestellt hat und der inzwischen breite Unterstützung durch zahlreiche Anbieter genießt. Auch OpenAI, Google und andere große Anbieter haben sich dem Standard angeschlossen. MCP definiert eine einheitliche Schnittstelle zwischen LLMs und externen Datenquellen. Ein MCP-Server stellt Werkzeuge und Daten bereit, die ein LLM über einen MCP-Client nutzen kann. Die Interaktion erfolgt in natürlicher Sprache: Das Modell formuliert Anfragen, der Server liefert die passenden Daten. Das Ganze geschieht über ein standardisiertes Protokoll auf Basis von JSON-RPC, sodass weder auf Client- noch auf Server-Seite proprietäre Technik erforderlich ist.

Das Entscheidende an MCP ist seine Datenquellenagnostik. Der Standard definiert, wie die Kommunikation abläuft, nicht jedoch, welche Art von Daten dahintersteckt. Ob ein MCP-Server eine relationale Datenbank, ein Dateisystem, eine API oder einen Event-Store anbindet, spielt auf Protokollebene keine Rolle. Inzwischen existieren MCP-Server für Dutzende von Systemen: von GitHub über Slack bis hin zu Datenbanken verschiedenster Art.

Die Frage, die MCP nicht beantwortet, ist deshalb umso wichtiger: Welche Qualität haben die Daten, die über diesen Kanal fließen? Wenn MCP die Brücke zwischen LLM und Datenquelle ist, dann entscheidet die Datenquelle darüber, wie tragfähig diese Brücke sein kann. Eine über MCP angebundene CRUD-Datenbank liefert weiterhin nur Snapshots. Ein Event-Store hingegen liefert die ganze Geschichte.

Um das greifbar zu machen, hilft ein konkretes, von mir regelmäßig genutztes Beispiel, das eine öffentliche Bibliothek als Domäne modelliert. Die zugehörigen Events sind überschaubar und dennoch fachlich reichhaltig: Ein BookAcquired-Event beschreibt die Anschaffung eines neuen Buches mit Titel, Autorin oder Autor und ISBN. BookBorrowed dokumentiert die Ausleihe, BookReturned die Rückgabe. Auf der Seite der Leserinnen und Leser gibt es ReaderApplied für die Anmeldung und ReaderAccepted für die Freischaltung des Bibliotheksausweises. Geht es an die konkrete Implementierung, greife ich auf den CloudEvents-Standard zurück, der ein fachlich benanntes Typenfeld und eine umgekehrte Domain-Schreibweise wie io.eventsourcingdb.library.book-borrowed vorsieht. Jedes Buch und jede Leserin beziehungsweise jeder Leser bildet dabei ein eigenes Subject, also einen eigenen Event-Stream, der die jeweilige Geschichte vollständig abbildet.

Stellen Sie sich nun vor, ein LLM hätte über einen MCP-Server Zugriff auf den Event-Store dieser Stadtbibliothek. Es könnte die vorhandenen Subjects durchsuchen, also die einzelnen Bücher sowie Leserinnen und Leser identifizieren. Es könnte die Event-Typen auflisten und so die Struktur der Domäne verstehen, ohne dass jemand sie erklären müsste. Und es könnte gezielt Fragen beantworten, die mit einer CRUD-Datenbank schwer oder gar nicht zu beantworten wären.

„Welche Bücher wurden in den letzten zwölf Monaten angeschafft, aber noch nie ausgeliehen?“

Diese Frage erfordert die Kenntnis, dass ein Buch existiert (BookAcquired), und die Abwesenheit eines bestimmten Folgeereignisses (BookBorrowed). In einer CRUD-Datenbank müsste dafür ein eigens gepflegtes Feld existieren, das bei jeder Änderung korrekt aktualisiert wird. Im Event-Store ergibt sich die Antwort direkt aus der Ereignisfolge.

„Zeige mir die vollständige Ausleihhistorie von Leserin 23.“

In einer CRUD-Datenbank sehen Sie bestenfalls, welches Buch die Leserin gerade ausgeliehen hat. Im Event-Store sehen Sie jede einzelne Ausleihe, jede Rückgabe, jede verspätete Rückgabe und jede erhobene Gebühr. Das LLM kann daraus Muster ableiten, etwa ob bestimmte Genres bevorzugt werden oder ob Rückgaben regelmäßig verspätet erfolgen.

„Welche Bücher werden häufig ausgeliehen, aber selten rechtzeitig zurückgebracht?“

Auch das ist eine Frage, die erst durch die Kombination mehrerer Ereignisse über die Zeit beantwortbar wird. Ein LLM, das diese Daten sieht, kann nicht nur die Antwort liefern, sondern auch Hypothesen formulieren: Liegt es an der Länge des Buches? An der Beliebtheit? An konkreten Leserinnen und Lesern, die generell verspätet zurückgeben?

Entscheidend ist: Keine dieser Fragen erfordert, dass jemand vorab ein spezielles Lesemodell gebaut oder eine Auswertung programmiert hat. Das LLM formuliert die Frage, der MCP-Server liefert die Daten, und das Modell interpretiert sie. Die Flexibilität entsteht dadurch, dass die Rohdaten fachlich und historisch vollständig sind. Was in diesem Beispiel mit einer Stadtbibliothek funktioniert, funktioniert in der Realität mit jeder Domäne: Versicherungsschäden, Logistikketten, Bestellprozesse im E-Commerce, Behandlungsverläufe im Gesundheitswesen, …: Die Liste ist endlos. Und je reichhaltiger die Events aus semantischer Sicht sind, desto mehr kann ein LLM damit anfangen.

Es gibt einen weiteren Grund, warum Event Sourcing und LLMs so gut zusammenpassen, und er liegt in der Form der Daten selbst. Events sind von Natur aus in fachlicher Sprache formuliert. Ein Event-Typ wie io.eventsourcingdb.library.book-borrowed sagt bereits, was passiert ist. Die Daten des Events enthalten die Details: welches Buch, welche Leserin oder welcher Leser, zu welchem Zeitpunkt. Ein LLM muss bei solchen Daten nicht raten, was gemeint ist. Es liest keine kryptischen Statuscodes, keine technischen Fremdschlüssel, keine Spalte type mit dem Wert 3. Es liest genau das, was passiert ist: Ein Buch wurde ausgeliehen, ein Buch wurde zurückgegeben, eine Gebühr wurde erhoben, eine Leserin wurde gesperrt. Die Semantik steckt in den Daten selbst.

Hinzu kommt die chronologische Ordnung. Events sind naturgemäß zeitlich sortiert. Ein LLM kann die Events daher lesen wie eine Erzählung: Erst wurde das Buch angeschafft, dann ausgeliehen, dann zurückgegeben, dann erneut ausgeliehen, dann verspätet zurückgegeben, dann eine Gebühr erhoben. Diese narrative Struktur entspricht genau dem, womit Sprachmodelle am besten umgehen können. Sie sind darauf trainiert, Zusammenhänge in sequenziellen Daten zu erkennen, Muster zu identifizieren und Schlussfolgerungen zu ziehen. Eine Folge von Events ist strukturell näher an einem Text als an einer relationalen Tabelle.

Schließlich ist jedes Event in sich abgeschlossen und kontextreich. Es beschreibt nicht nur, was sich geändert hat, sondern trägt den fachlichen Zusammenhang bereits in sich. Ein BookBorrowed-Event enthält nicht nur eine Buch-ID und eine Leser-ID, sondern steht im Kontext eines Subject, das die gesamte Geschichte dieses Buches repräsentiert. Dieser eingebaute Kontext reduziert die Notwendigkeit, dem LLM zusätzliche Erklärungen mitzugeben. Die Events sprechen für sich.

Wer die aktuelle Entwicklung beim Context Engineering verfolgt, erkennt die Parallele: Es geht darum, einem Sprachmodell möglichst reichhaltigen, strukturierten und relevanten Kontext zur Verfügung zu stellen. Events erfüllen alle drei Kriterien, ohne dass eine zusätzliche Aufbereitung nötig wäre. Sie sind gewissermaßen bereits in der Sprache geschrieben, die LLMs am besten verstehen. Mit anderen Worten: Wenn Ihre Software bereits gute Daten liefert, wird die Auswertung per künstlicher Intelligenz bedeutend vereinfacht.

Die Verbindung von Event Sourcing und MCP ist keine bloße Theorie. Mitte März 2026 wurde beispielsweise für die Datenbank EventSourcingDB ein MCP-Server als kostenfreie Erweiterung veröffentlicht. Er ermöglicht es, über ein beliebiges LLM in natürlicher Sprache mit dem Event-Store zu interagieren: Events lesen und schreiben, Subjects und Event-Types durchsuchen, Event-Schemas registrieren, EventQL-Queries ausführen und sogar die eingebaute EventQL-Dokumentation abfragen. Der MCP-Server läuft dabei als eigenständiger Prozess neben der Datenbank, unterstützt TLS-Verschlüsselung und Token-basierte Authentifizierung und ist als Docker-Image verfügbar.

Praktisch bedeutet das: Eine Entwicklerin kann ihrem LLM die Frage stellen, welche Subjects im Event-Store existieren, und erhält eine strukturierte Antwort. Sie kann fragen, welche Ereignisse für ein bestimmtes Buch vorliegen, und das LLM liest sie chronologisch aus dem Store. Sie kann eine analytische Frage formulieren, und das LLM übersetzt sie in eine EventQL-Query, führt sie aus und interpretiert das Ergebnis. All das geschieht über eine standardisierte Schnittstelle, ohne eine einzige Zeile Integrationscode. Was bisher erfahrene Entwicklerinnen und Entwickler mit Kenntnissen der Query-Sprache und der Datenstruktur erforderte, wird durch natürliche Sprache für ein breiteres Publikum zugänglich.

Es wäre jedoch falsch, diesen Gedanken auf ein einzelnes Produkt zu verengen. Das Prinzip gilt für jeden Event-Store, der einen MCP-Server anbietet oder künftig anbieten wird. Der Wert liegt nicht in der spezifischen Implementierung, sondern in der Kombination: ein Event-Store, der die vollständige fachliche Geschichte bereithält, und ein standardisiertes Protokoll, das diese Geschichte für Sprachmodelle zugänglich macht. EventSourcingDB ist lediglich ein konkretes Beispiel dafür, wie diese Kombination heute in der Praxis aussehen kann.

MCP löst also ein reales Problem: Es standardisiert den Zugang von LLMs zu externen Datenquellen und macht individuelle Integrationen überflüssig. Das ist ein bedeutender Schritt. Doch MCP allein reicht nicht. Ein standardisierter Zugang zu unzureichenden Daten liefert standardisiert unzureichende Ergebnisse.

Die eigentliche Frage bleibt bestehen: Welche Daten stecken hinter dem MCP-Server? Wer eine CRUD-Datenbank anbindet, gibt einem LLM Zugriff auf den aktuellen Zustand. Das ist besser als gar kein Zugriff, bleibt aber bei Snapshots ohne Geschichte. Das LLM sieht, was ist. Es sieht nicht, was war, was sich verändert hat oder warum.

Wer hingegen einen Event-Store anbindet, gibt einem LLM Zugriff auf die gesamte fachliche Historie. Es sieht nicht nur den Zustand, sondern den Weg dorthin. Es kann Muster erkennen, Zusammenhänge herstellen und Entwicklungen nachvollziehen. Es kann erklären, nicht nur beschreiben.

Die Kombination aus Event Sourcing und MCP ist deshalb so wirkungsvoll, weil sie zwei komplementäre Probleme gleichzeitig behebt. Event Sourcing löst das Datenproblem: Es liefert vollständige, kontextreiche und fachlich formulierte Daten. MCP löst das Zugangsproblem: Es macht diese Daten über eine standardisierte Schnittstelle für Sprachmodelle erreichbar. Keines der beiden löst für sich allein die gesamte Herausforderung. Zusammen jedoch schließen sie eine Lücke, die bislang dafür sorgte, dass LLMs entweder keinen Zugang zu den richtigen Daten hatten oder Zugang zu den falschen.

Dabei ist bemerkenswert, wie stabil diese Kombination gegenüber Veränderungen ist. Die Modelle werden sich weiterentwickeln, neue LLMs werden erscheinen, bestehende werden leistungsfähiger. Die Art, wie wir Prompts formulieren, wird sich ändern. Auch MCP wird sich als Protokoll weiterentwickeln. Was sich nicht ändern wird, sind die gespeicherten Ereignisse. Sie bleiben das unveränderliche Fundament, auf dem alles andere aufbaut. Wer heute damit beginnt, Events zu speichern, investiert nicht in eine kurzlebige Technologie, sondern in Daten, die mit jedem neuen Modell und jedem zukünftigen Zugangsweg an Wert gewinnen.

Wer im vergangenen August meinen eingangs erwähnten Artikel über Event Sourcing als Grundlage für KI gelesen hat, findet hier den nächsten logischen Schritt. Die Daten sind da. Jetzt sind sie auch zugänglich.


(rme)



Source link

Entwicklung & Code

Visual Studio 2026 erlaubt das Erstellen benutzerdefinierter KI-Agenten


Microsoft hat seine Entwicklungsumgebung Visual Studio 2026 im März mit neuen Features versehen, die sich vor allem um Künstliche Intelligenz (KI) drehen. Alle neuen Funktionen sind in der Insiders-Version verfügbar.

Weiterlesen nach der Anzeige

In Visual Studio können Entwicklerinnen und Entwickler nun benutzerdefinierte Copilot-Agenten erstellen. Diese können beispielsweise den Coding-Standards des Teams folgen oder interne Dokumentation durchsuchen. Die spezialisierten Copilot-Agenten können Zugriff auf Workspace-Awareness, Codeverständnis, Tools, das bevorzugte Modell und Verbindungen via Model Context Protocol (MCP) zu externen Wissensquellen erhalten.

Dazu spezifizieren Entwickler die gewünschten Anpassungen in einer .agent.md-Datei, fügen diese im Repository zu .github/agents/ hinzu und können dann den neuen Agenten im Agent Picker auswählen. Wurde kein Modell festgelegt, verwendet der KI-Agent das im Model Picker gewählte Modell.

Mit Skills lassen sich die KI-Agenten ebenfalls versehen. Die Agenten beziehen Skills automatisch aus verschiedenen Stellen im Repo, etwa .github/skills/, oder aus dem User-Profil, etwa ~/.copilot/skills/. Jeder Skill besitzt ein eigenes Verzeichnis mit einer SKILL.md-Datei, die der Agent-Skill-Spezifikation entspricht. Agent Skills sind ein offenes Format, um KI-Agenten mit spezialisiertem Wissen auszustatten.

Der KI-Copilot kann nun auch dabei helfen, Vulnerabilities zu beheben. Direkt aus dem Solution Explorer heraus können Entwicklerinnen und Entwickler die Benachrichtigung „Fix with GitHub Copilot“ anwählen, wenn eine Vulnerability erkannt wurde, die NuGet betrifft, das Paketverwaltungssystem für .NET. Beim Durchklicken analysiert Copilot die Schwachstelle und kann entsprechende Dependency-Updates empfehlen sowie implementieren.

Weiterlesen nach der Anzeige


Die neue Option "Fix with Copilot" soll NuGet-Vulnerabilities beheben.

Die neue Option "Fix with Copilot" soll NuGet-Vulnerabilities beheben.

Die neue Option „Fix with Copilot“ soll NuGet-Vulnerabilities beheben.

(Bild: Microsoft)

Weitere Updates betreffen unter anderem die Verwendung von MCP: Admins können festlegen, welche MCP-Server innerhalb ihrer Organisation erlaubt sind, und nur diese lassen sich dann in Visual Studio verwenden. Bei anderen Servern erscheint eine Fehlermeldung.

Die neuen Features lassen sich im Insiders-Build nutzen. Weitere Informationen zu den Updates liefert Microsofts Entwicklerblog.

Lesen Sie auch


(mai)



Source link

Weiterlesen

Entwicklung & Code

Analyse: Darf KI Kernfeatures in kritische Software implementieren?


Die Open-Source-Community und die Mitglieder des Technical Steering Committee (TSC) von Node.js diskutieren derzeit, ob Pull Requests zu Node.js künftig abgelehnt werden sollen, wenn sie mithilfe von KI entstanden sind. Das ist jedoch aus mehreren Gründen unrealistisch: KI ist längst ein Teil des Entwicklungsprozesses, die Maintainer können die Herkunft von Code kaum verlässlich prüfen und es gibt keine objektiven Kriterien, um KI-Unterstützung eindeutig von menschlicher Arbeit zu unterscheiden. Zudem ist ein Verbot nicht sinnvoll, da es die ohnehin knappen Ressourcen der Community weiter belasten würde und es auch keine verantwortungsvolle Governance ersetzt.

Weiterlesen nach der Anzeige


Sebastian Springer

Sebastian Springer

Sebastian Springer weckt als Dozent für JavaScript, Sprecher auf zahlreichen Konferenzen und Autor die Begeisterung für professionelle Entwicklung mit JavaScript.

Kritik an KI-generierten Pull Requests ist zwar nicht neu, hat aber durch diesen aktuellen Fall eine neue Dimension erreicht und betrifft hier ein kritisches Element der Software-Infrastruktur: Die Plattform Node.js bildet in zahlreichen Anwendungen entweder die technische Basis oder dient als Grundlage für Build- und Entwicklungswerkzeuge.

Auslöser der aktuellen Diskussion ist ein umfangreicher Pull Request mit mittlerweile über 21.000 Zeilen Code. Der Autor Matteo Collina, ein erfahrener Node.js-Contributor, hat offengelegt, dass er das Feature teilweise mit Claude Code entwickelt, den generierten Code aber gründlich überprüft habe. In seinem Blogartikel führt er aus, dass er sich bei der Umsetzung des Features auf die Architektur, das API-Design und die Code Review konzentriert habe, während er die langweilige Schreibarbeit wie die Implementierung der Methodenvarianten, Tests und Dokumentation der KI überlassen habe.

Bei dem Feature handelt es sich nicht um eine kosmetische Änderung oder zusätzliche Tests, sondern um ein komplett neues Kernfeature: VFS, ein virtuelles Dateisystem, das es ermöglicht, Dateien und Module direkt aus dem Speicher statt vom realen Dateisystem zu laden. Dieses Feature greift tief in das Dateisystem-Modul und das Modulsystem von Node.js selbst ein. Überspitzt gesagt, stellt sich die Frage: Darf KI Kernfeatures eines kritischen Open-Source-Projekts implementieren?


enterJS Integrate AI

enterJS Integrate AI

(Bild: Stone Story / stock.adobe.com)

Webanwendungen mit KI anreichern, sodass sie wirklich besser werden? Der Online-Thementag enterJS Integrate AI am 28. April 2026 zeigt, wie das geht. Frühbuchertickets und Gruppenrabatte sind im Online-Ticketshop verfügbar.

Weiterlesen nach der Anzeige

Eine einfache Antwort gibt es darauf nicht. Der Fall zeigt aber sehr deutlich eines der Grundprobleme, mit denen viele Open-Source-Projekte aktuell konfrontiert sind. Viele Projekte werden regelrecht mit KI-generierten Beiträgen überflutet. Diese reichen von kleinen Rechtschreibkorrekturen in der Dokumentation bis hin zu tiefgreifenden Architektur-Features. Die Maintainer stehen zunehmend vor der Entscheidung, ob sie KI-generierten Code grundsätzlich zulassen oder verbieten sollen. Neben den offensichtlichen Vorteilen wie Effizienzsteigerung und einer niedrigeren Einstiegshürde für neue Beitragende gibt es mehrere ernst zu nehmende Bedenken.

Diese betreffen zum einen das Copyright, denn KI-generierter Code ist in der Regel nicht urheberrechtlich geschützt. Anders sieht es bei KI-unterstütztem Code aus. Hier hängt es vom Einzelfall ab. Zudem besteht das Risiko, dass Modelle versehentlich proprietären Code reproduzieren und so zu Urheberrechtsproblemen führen. Diese Unsicherheit führt dazu, dass manche Maintainer KI-Beiträge grundsätzlich ablehnen möchten.

Zweitens wird die Qualität des Codes kritisch gesehen. KI-Agenten neigen dazu, sehr viel Code zu produzieren. Sowohl Autorinnen und Autoren als auch Maintainer müssen sicherstellen, dass der Code den Qualitäts- und Architekturstandards des Projekts genügt. Statische Analyse kann nur einen Teil davon abdecken. Aspekte, die die Architektur betreffen, müssen meist manuell überprüft werden. Gerade bei umfangreichen Beiträgen steigt das Risiko, dass suboptimale oder schwer wartbare Lösungen in den Code gelangen.

Und drittens nimmt der Aufwand für die Maintainer zu. Durch die Menge an generiertem Code verschiebt sich der Schwerpunkt vieler Maintainer vom Schreiben von Code hin zur Code Review. Dieser Aspekt nimmt teilweise so überhand, dass manche sich nur noch mit Code Reviews beschäftigen. Bei vielen Open-Source-Projekten entsteht das Problem, dass die Beiträge automatisiert übermittelt werden, sodass kaum noch menschliche Interaktion erforderlich ist. In der Flut aus KI-generierten Beiträgen können wertvolle Bugfixes oder Feature-Implementierungen leicht untergehen.

Trotz dieser Risiken ist ein generelles Verbot von KI-generiertem Code in der Praxis kaum durchsetzbar. Viele Entwicklerinnen und Entwickler nutzen Copilot, Cursor und andere Werkzeuge für die Entwicklung, und hier auch in unterschiedlichem Ausmaß, von einfachen Inline-Vervollständigungen bis hin zu agentenbasiertem Coding. Hier stellt sich die Frage: Was ist noch ein smartes Feature der Entwicklungsumgebung und was ist KI-gestütztes Coding, oder auch: Wo ist die Grenze zwischen „menschlich“ und „KI-gestützt“? Und wie soll man sie erkennen? Gerade bei kleineren Beiträgen ist es faktisch unmöglich festzustellen, ob der Code von einer KI stammt oder nicht.

Die Linux Foundation verfolgt hier einen pragmatischen Ansatz. Gemäß ihrer Richtlinie ist KI-generierter Code grundsätzlich erlaubt. Die Nutzungsbedingungen des KI-Tools dürfen jedoch keine Restriktionen enthalten, die der Lizenz des Projekts widersprechen. Der KI-generierte Code darf zudem keine Urheberrechtsverletzungen verursachen; die Nutzung des generierten Codes muss erlaubt sein. Dabei gilt, dass die KI assistieren darf, der Mensch aber der verantwortliche Autor bleibt.

Transparenz gehört zu den grundlegenden Prinzipien im verantwortungsvollen Umgang mit generativer KI. Das gilt nicht nur für die Entwicklung solcher Systeme, sondern ebenso für ihre Nutzung: Entwickler sollten offenlegen, wenn sie Code mithilfe von KI-Werkzeugen entwickelt haben. Einige Open-Source-Projekte haben entsprechende Offenlegungspflichten in ihre Contribution-Richtlinien aufgenommen, zum Beispiel der Terminal-Emulator Ghostty. Das Webframework Django hat eine AI Assistance Disclosure in das offizielle Pull-Request-Template integriert.

Die Diskussion um den Umgang mit KI ist für jedes Projekt, auch im Open-Source-Bereich, sehr wichtig, und sie wird auch nicht beendet sein. Stattdessen müssen wir uns kontinuierlich mit dem Thema beschäftigen, denn die Werkzeuge und Modelle entwickeln sich kontinuierlich weiter. Die Qualität wird immer besser und auch die Erfahrungen mit den Werkzeugen und ihrem Umgang nehmen zu.

Es braucht verlässliche Richtlinien, um Projekte und ihre Maintainer zu schützen. Ein generelles Verbot von KI ist wenig realistisch und auch nicht zielführend. Es wirkt eher wie ein reflexartiges Abwehren neuer Technologien. Sinnvoller ist es, Verantwortung klar zu definieren, Transparenz einzufordern und die Qualitätssicherung zu stärken. Das ist jedoch nicht nur die Aufgabe der Maintainer, die aktuell schon unter der Situation leiden, sondern einer jeden Entwicklerin und eines jeden Entwicklers, die zu Open-Source-Projekten beitragen möchten.


(mai)



Source link

Weiterlesen

Entwicklung & Code

software-architektur.tv: Analyse großer Softwaresysteme mit LLMs


Bei der Verwendung von LLMs für Software-Architektur geht es meistens um das Erstellen von Architektur. In dieser Episode von software-architektur.tv spricht Eberhard Wolff mit Prof. Dr. Michael Stal, Principal Key Expert Engineer bei der Siemens AG, über dessen Erfahrungen bei der Benutzung von LLMs für die Code-Analyse.

Weiterlesen nach der Anzeige

Den vollmundigen Versprechen mancher Anbieter und Influencer für generative KI steht die praktische Realität gegenüber, dass die Beschränkungen von LLMs zu vielen Problemen führen, ganz besonders beim Softwareengineering. Die Analyse großer Softwarearchitekturen und Codebasen durch LLMs scheitert unter anderem an dem beschränkten Kontextfenster der Foundation-Modelle. Das gilt im Umkehrschluss auch für deren Generierung. Wie sich diese Problematik zumindest teilweise umgehen lässt, möchte iX-Blogger Michael Stal anhand geeigneter Techniken zeigen.

Die Ausstrahlung findet am Donnerstag, 2. April 2026, live ab 14:30 Uhr statt. Die Folge steht im Anschluss als Aufzeichnung bereit. Während des Livestreams können Interessierte Fragen via Twitch-Chat, YouTube-Chat oder anonym über das Formular auf der Videocast-Seite einbringen.

software-architektur.tv ist ein Videocast von Eberhard Wolff, iX-Blogger und bekannter Softwarearchitekt, der als Head of Architecture bei SWAGLab arbeitet. Zum Team gehören außerdem Lisa Maria Schäfer (Socreatory) und Ralf D. Müller (DB Systel). Seit Juni 2020 sind über 250 Folgen entstanden, die unterschiedliche Bereiche der Softwarearchitektur beleuchten – mal mit Gästen, mal Wolff, Schäfer oder Müller solo. Seit mittlerweile mehr als zwei Jahren berichtet heise Developer über die Episoden.


(map)



Source link

Weiterlesen

Beliebt