Die Softwareentwicklung hat in den letzten Jahren enorme Fortschritte gemacht, nicht zuletzt durch den Einsatz künstlicher Intelligenz (KI). Eine besonders spannende Anwendung ist der Einsatz von KI als Code-Review-Agent, der pull requests (PRs) automatisch analysiert und Verbesserungsvorschläge macht. In diesem Beitrag teile ich meine Erfahrungen, wie ich in nur wenigen Stunden einen solchen KI-Code-Review-Agenten gebaut habe, welche Herausforderungen ich dabei begegnet bin und welche Lehren sich daraus für Entwicklerteams und die Zukunft der Code-Überprüfung ziehen lassen. Der grundlegende Gedanke hinter einem KI-Code-Review-Agenten ist relativ einfach: Sobald ein PR erstellt wird, erkennt das System die geänderten Dateien und übermittelt die Unterschiede – sogenannte Diffs – an ein großes Sprachmodell (LLM). Das Modell analysiert den neuen oder veränderten Code und gibt Rückmeldungen aus, die in Form von Kommentaren direkt im PR platziert werden.
Das Ziel ist es, Probleme zu entdecken, die menschlichen Reviewern vielleicht entgehen, und somit die Codequalität zu steigern, Fehler frühzeitig zu erkennen und die Stabilität des Produkts zu sichern. Es gibt bereits eine Vielzahl von solchen Agenten am Markt, beispielsweise GitHub Copilot Review, Coderabbit, Greptile, Korbit, Qodo, Panto und Diamond, unter anderem. Doch die Frage, wie hilfreich diese Tools tatsächlich sind und wie viel Aufwand es erfordert, selbst ein solches System zu entwickeln, blieb für mich spannend und motivierend genug, es einfach auszuprobieren. In den wenigen Wochen, in denen ich den Coderabbit-Agenten im Einsatz für unser Projekt bei Sourcebot beobachtet und genutzt habe, zeigte sich ein gemischtes Bild. Zwar produzierte die KI oft relativ generische oder teils sogar falsche Vorschläge, allerdings gab es durchaus wertvolle Empfehlungen, die von menschlichen Reviewern übersehen wurden.
Ein Beispiel aus unserem Bitbucket-Support-PR war die Frage der verschiedenen APIs für Bitbucket Cloud und die Selbsthost-Variante. Hier hatte ich angenommen, dass die Paginierung bei beiden identisch funktioniert, was nicht der Fall war. Die KI erkannte diese Diskrepanz und wies darauf hin. Während der ideale Ansatz natürlich besseres Testing gewesen wäre, half der KI-Hinweis dennoch, einen potenziellen Fehler frühzeitig zu erkennen. Natürlich sind nicht alle Vorschläge gleichermaßen nützlich.
So gab es auch Fälle, in denen die KI zu oberflächlichen oder kontextlos unpassenden Verbesserungen riet. Beispielsweise empfahl sie, ein neues Feld in eine Datenstruktur einzufügen, das zwar logisch erschien, aber in der tatsächlichen Nutzung nie verwendet wurde. Dadurch hätte der Vorschlag ungewollte Nebeneffekte, wie subtile Bugs in der Benutzeroberfläche, verursachen können. Diese Erfahrung unterstreicht die Bedeutung menschlicher Kontrolle und kritischer Prüfung bei der Nutzung automatisierter Review-Systeme. Wie schwierig gestaltet sich nun die Umsetzung eines solchen KI-Agents? Meine eigenen Versuche zeigten, dass eine einfache Variante mit relativ geringem Aufwand realisierbar ist.
Innerhalb von wenigen Stunden war ein grundsätzlicher Prototyp via GitHub API und dem Zugriff auf ein OpenAI-Modell wie GPT-4 einsatzbereit. Dabei trennt der Agent automatisch die Änderungen im PR in handhabbare Chunks, sendet diese ans Modell und übernimmt die Rückmeldungen als Kommentare im PR. Die Kosten hierfür sind vergleichsweise gering: jeder Prüfaufruf kostet etwa 0,0006 US-Dollar. Doch je tiefer man sich mit der Thematik beschäftigt, desto mehr Faktoren offenbaren sich, die die Qualität der Reviews maßgeblich beeinflussen. Ein großes Problem ist die mangelnde Kontextualisierung.
Ohne ein breiteres Verständnis der Codebasis oder der dahinterliegenden Logik können die KI-Modelle zu falschen oder verwirrenden Empfehlungen tendieren. Das zeigt sich insbesondere bei komplexeren Funktionen, die schwer zu isolieren und ohne Gesamtzusammenhang nur bedingt verständlich sind. Zudem haben große Sprachmodelle ihre eigenen Marotten. Selbst ausführliche Anweisungen im Prompt, bestimmte Arten von Feedback nicht zu geben, werden gelegentlich ignoriert. Die KI neigt dann dazu, unnötige Erklärungen, Lob oder allgemeine Kommentare zu machen, die den Reviewprozess eher behindern als fördern.
Das Nachbessern der Prompts ist zwar möglich, aber keine perfekte Lösung. Eine vielversprechende Perspektive bieten Tools wie Sourcebot, die darauf spezialisiert sind, Millionen von Codezeilen effizient zu indexieren und bei der Abfrage einzubinden. Indem solch ein Kontext für den KI-Agenten bereitgestellt wird, könnten die Vorschläge wesentlich treffsicherer und relevanter werden. Das würde die Limitierungen eines rein diff-basierten Ansatzes aufheben und die künstliche Intelligenz in die Lage versetzen, Zusammenhänge besser zu verstehen. Abschließend lässt sich sagen, dass KI-Code-Review-Agenten definitiv Potenzial besitzen, die Softwareentwicklung nachhaltig zu verändern.
Sie sind schon heute in der Lage, Fehler aufzudecken, die menschlichen Reviewern entgehen, und können die Produktqualität steigern. Gleichwohl befindet sich diese Technologie noch in einem frühen Stadium, in dem Fehler, unnütze Vorschläge und mangelnde Kontextsensitivität die Norm sind. Es erfordert also ein sorgfältiges Abwägen, diese Tools in den Entwicklungsprozess zu integrieren, ohne blind auf sie zu vertrauen. Für Entwicklerteams stellt sich daher die Frage, ob es sinnvoll ist, einen eigenen Agenten zu bauen oder auf bereits etablierte Lösungen zurückzugreifen. Während der Grundaufwand für einen einfachen Prototyp überschaubar ist, bedarf es für eine wirklich praktikable Variante erheblicher Weiterentwicklung und feiner Abstimmung der KI-Modelle sowie der Einbindung von umfassenden Kontextinformationen.
Insgesamt steht und fällt der Nutzen eines Code-Review-Agenten damit, wie gut das dahinterliegende Sprachmodell den Quellcode verstehen kann. Der Agent selbst ist lediglich ein organisatorisches Werkzeug, das sinnvoll Codeabschnitte verteilt und Rückmeldungen abwickelt. Die eigentliche Intelligenz entsteht durch das Modell und dessen Fähigkeit, Programmierlogik, Konventionen und Projektzusammenhänge zu erfassen. Nichtsdestotrotz glaube ich an eine Zukunft, in der Frameworks entwickelt werden, die das Erstellen solcher Dev-Agenten wesentlich einfacher machen. Insbesondere Teams, die vollständige Kontrolle über ihre Werkzeuge wünschen und spezifische Anforderungen haben, könnten davon profitieren.
Solche Eigenentwicklungen erlauben es, Besonderheiten der Codebasis gezielt abzubilden und maßgeschneiderte Prüfungen anzustoßen. Für alle, die sich für dieses Themenfeld interessieren, bietet es sich an, mit einfachen Prototypen zu experimentieren, Erfahrungen zu sammeln und den Dialog mit anderen Entwicklern zu suchen. KI im Code-Review ist kein Ersatz für menschliche Expertise, aber eine kraftvolle Ergänzung, wenn sie richtig eingesetzt wird. Falls Sie mehr über meine Erfahrungen oder die technischen Details erfahren möchten, stehe ich gerne zum Austausch bereit. Es bleibt spannend, wie sich diese Technologie weiterentwickelt und welchen Einfluss sie langfristig auf die Art und Weise haben wird, wie wir Software erstellen.
KI-Code-Review-Agenten könnten schon bald nicht nur eine Hilfe, sondern ein unverzichtbarer Bestandteil der modernen Entwicklung sein.