Coding for AI Agents

Code für KI-Agenten vs. Code für menschliche Entwickler

Seit KI-Coding-Assistenten und autonome Agenten (oft auf Basis großer Sprachmodelle) stärker an der Softwareentwicklung beteiligt sind, müssen Best Practices beim Programmieren ein neues „Publikum“ berücksichtigen. Traditionell entsteht Code von menschlichen Entwicklern und für menschliche Entwickler, und entsprechend zählen Lesbarkeit und Wartbarkeit für Menschen. Code, den KI-Agenten erzeugen oder warten sollen, setzt womöglich andere Schwerpunkte, weil eine KI Code anders interpretiert. Dieser Bericht vergleicht, was guten Code für KI-Agenten und guten Code für menschliche Entwickler ausmacht, mit Fokus auf Entwurfsmuster, Lesbarkeit und Performance-Optimierung. Wir zeigen, wie die besonderen Stärken und Grenzen von KI-Agenten die Best Practices bei Struktur, Benennung, Dokumentation und Modularität verschieben.

Entwurfsmuster und Architekturstil

Design für Menschen: Menschliche Entwickler greifen häufig auf bekannte Entwurfsmuster (z. B. Singleton, Factory, Observer) und Schichtenarchitekturen zurück, um Komplexität in den Griff zu bekommen. Diese Muster sind eine gemeinsame Sprache unter Entwicklern und sorgen für Eigenschaften wie Modularität, Flexibilität und Wiederverwendbarkeit. Eine von Menschen geschriebene Codebasis zeigt meist eine bewusste Trennung der Zuständigkeiten und abstrakte Schnittstellen, die das System erweiterbar machen. Menschen sind stark darin, die Architektur im großen Ganzen zu denken: Sie können beurteilen, wie sich Verantwortlichkeiten auf Module verteilen lassen und wann sich ein Muster als Vorsorge für die Zukunft lohnt. Ein menschlicher Entwickler implementiert zum Beispiel vielleicht ein Strategy-Muster, um mehrere Algorithmen austauschbar zu halten, weil er spätere Skalierung schon mitdenkt.

Design für KI-Agenten: Agenten zur Codegenerierung liefern dagegen meist korrekten und idiomatischen Code, der aber nicht immer zu den Entwurfsmustern oder zur Architektur des jeweiligen Projekts passt, solange man sie nicht ausdrücklich anleitet. Aktuelle Code-LLMs „verstehen die bestehenden Entwurfsmuster und Programmierstile eines Projekts oft nicht richtig“ und erzeugen Code, der der beabsichtigten Architektur widerspricht. In der Praxis wählt ein KI-Agent womöglich die geradlinige Implementierung, statt ein wiederverwendbares Muster zu abstrahieren. Er instanziiert und verwendet Klassen dann etwa direkt an mehreren Stellen, wo ein Mensch eine Factory zu ihrer Verwaltung angelegt hätte. Das kann zu struktureller Duplizierung führen: Die KI schreibt unwissentlich ein Duplikat von Funktionalität, die es anderswo schon gibt, oder zieht die Grenze für die Wiederverwendung an der falschen Stelle. Solche Designfehler passieren, weil dem Agenten ein dauerhafter Überblick über die gesamte Codebasis fehlt. Menschen bemerken diese Probleme normalerweise und refaktorieren. In der Zusammenarbeit mit einer KI muss ein Mensch den Agenten oft per Prompt zu einem besseren Design auffordern („Ein besseres Design wäre, …“).

Wiederverwendbare Strukturen: In Code für Menschen werden Entwurfsmuster gezielt eingesetzt, um die Wartbarkeit zu verbessern, auch wenn das zusätzliche Komplexität bedeutet (z. B. weitere Klassen oder Schichten), die erfahrene Entwickler wiedererkennen. KI-orientierter Code bevorzugt eher Einfachheit und Explizitheit gegenüber raffinierten architektonischen Abstraktionen. Weil KI-Agenten Boilerplate in hohem Tempo erzeugen können, duplizieren sie Code oder Logik mitunter, statt sie zu abstrahieren, sofern niemand sie zum DRY-Prinzip (Don’t Repeat Yourself) anhält. Deshalb kann von Agenten geschriebener Code linearer und ausführlicher sein, während von Menschen geschriebener Code durch Abstraktion kompakter sein kann. Um diese Lücke zu schließen, müssen Entwickler, die mit KI-Agenten arbeiten, die KI oft ausdrücklich anweisen, ein bestimmtes Muster zu verwenden oder den Code für die Wiederverwendung zu refaktorieren, sobald die Grundfunktion steht. Positiv ist, dass KI-Agenten gängige Frameworks und APIs enzyklopädisch kennen. Weit verbreitete Muster setzen sie deshalb in der Regel korrekt um, wenn diese häufig in den Trainingsdaten vorkamen. Ein KI-Agent kann zum Beispiel sehr gut eine standardmäßige MVC-Struktur für eine Web-App erzeugen oder ein typisches Observer-Muster in einer GUI verwenden, weil beides in Code-Korpora häufig vorkommt. Schwer tun kann er sich dagegen mit projektspezifischen oder neuartigen Mustern, die von dem abweichen, was er gesehen hat. Kurz gesagt: Menschliche Entwickler legen Wert auf eine stimmige Architektur und ein stimmiges Design, während KI-Agenten die unmittelbare Funktionalität voranstellen und Anleitung brauchen, damit die Architektur eingehalten wird.

Lesbarkeit, Benennung und Dokumentation

Lesbarkeit für Menschen: Code für menschliche Entwickler setzt mit etablierten Konventionen auf Klarheit und Verständlichkeit. Dazu gehören aussagekräftige Namen, saubere Formatierung und wohlüberlegte Kommentare. Menschen profitieren von selbsterklärenden Bezeichnern und strukturiertem Code, also etwa von gut gewählten Funktions- und Variablennamen (ganze Wörter oder gängige Abkürzungen) und von Code, der in kleine, zielgerichtete Funktionen gegliedert ist. Styleguides (Einrückung, einheitliche Platzierung von Klammern usw.) und Gewohnheiten wie das Begrenzen der Funktionslänge helfen Menschen, Code schnell zu erfassen. Kommentare und Dokumentation erklären nicht offensichtliche Logik oder liefern Kontext, aber in vielen Fällen gilt die Übereinkunft, dass „der Quellcode die Dokumentation ist“. Von Menschen geschriebener Code will also oft selbstdokumentierend sein, und übermäßige Kommentare können als Ballast gelten, wenn sie bloß das Offensichtliche wiederholen. Dokumentation wie Design-Dokumente oder README-Dateien gibt es zwar, aber die Inline-Dokumentation bleibt meist knapp und muss von Hand aktualisiert werden, was Entwickler mit der Zeit oft vernachlässigen. Für Menschen optimierter Code stützt seine Lesbarkeit deshalb vor allem auf die Struktur des Codes selbst, und Kommentare stehen nur dort, wo sie nötig sind.

Lesbarkeit für KI-Agenten: Wenn ein KI-Agent den Code liest oder wartet, bekommt Lesbarkeit eine andere Färbung. KI-Modelle verarbeiten Code als Text und lassen sich von langen Variablennamen oder sich wiederholenden Strukturen nicht „verwirren“. Explizitheit und Konsistenz helfen der KI sogar. Code, der für oder von einer KI geschrieben wird, enthält deshalb tendenziell mehr redundante Klarheit, die ein Mensch vielleicht als umständlich empfindet. So setzt ein KI-gestützter Ansatz womöglich überall auf sehr beschreibende Namen, auch wenn sie lang werden, um Mehrdeutigkeit auszuschließen (z. B. eine Variable annualInterestRate statt rate oder r). KI-Werkzeuge können dabei helfen: Es gibt Agenten, die kontextbezogene Variablennamen vorschlagen und darauf achten, dass diese klar, konsistent und aussagekräftig sind (etwa clientCount statt eines generischen x in einer Funktion für Kundendaten). Das Ergebnis ist eine äußerst einheitliche Benennung in der gesamten Codebasis, die der Mustererkennung der KI nützt und auch jedem Menschen, der den Code später liest.

Außerdem bringt KI-orientierter Code im Vergleich zu typischem, von Menschen geschriebenem Code oft umfangreiche Inline-Dokumentation und Kommentare mit. Weil einer KI das Langzeitgedächtnis für das gesamte Projekt fehlt, fordern Entwickler KI-Agenten per Prompt auf, am Anfang jeder Datei oder im Docstring jeder Funktion den Zweck und die Anforderungen eines Moduls zusammenzufassen. In einem Projekt mit KI-Beteiligung ist es nicht ungewöhnlich, dass jede Datei mit einem Kommentarblock beginnt, der beschreibt, was das Modul tut, und wichtigen Kontext nennt. So gründliche Dokumentation ist „in von Menschen geschriebenem Code relativ selten“, weil es Menschen schwerfällt, sie zu pflegen und mit Codeänderungen synchron zu halten. Einen KI-Agenten kann man dagegen anweisen, bei jeder Codeänderung auch die Dokumentation zu aktualisieren, und damit ist das übliche Problem veralteter Kommentare gelöst. Für Agenten optimierter Code kann seine Dokumentation also im Detail aktuell halten, mit minimalem menschlichem Aufwand. Das ist eine deutliche Verschiebung bei den Best Practices. In großen, von KI erzeugten Codebasen ist diese Dokumentation entscheidend, weil sie ausgleicht, dass dem Agenten bei jedem Aufruf das Gesamtverständnis fehlt.

Struktur und Modularität: Menschen wie KI profitieren von modularem, gut strukturiertem Code, allerdings aus unterschiedlichen Gründen. Menschen können großen, monolithischen Funktionen nur schwer folgen, und ebenso kann ein KI-Agent mit begrenztem Kontextfenster mit einer extrem langen Funktion oder Datei nicht effektiv arbeiten. Guter Code für KI-Agenten ist deshalb meist hochgradig modular: viele kleine Funktionen oder Klassen mit jeweils einer einzigen Verantwortung, die sich die KI eine nach der anderen vornehmen kann. Das deckt sich auch mit den Best Practices für Menschen („eine Funktion sollte eine einzige Aufgabe erledigen“), aber bei der KI kommt ein praktischer Grund dazu: Der relevante Code muss jederzeit in das Token-Limit des Modells passen. Im Grunde ist KI-freundlicher Code in verdauliche Stücke mit klaren Schnittstellen zerlegt, was praktischerweise auch dem menschlichen Verständnis hilft. Der Unterschied: Ein Mensch kann ein Stück verworrene Logik vielleicht verstehen, indem er sich an den Kontext erinnert oder auf seine Intuition baut. Eine KI arbeitet dagegen eindeutig am besten, wenn der Code vorhersehbar und sauber gekapselt strukturiert ist und der gesamte nötige Kontext entweder im Prompt oder in den Codekommentaren steht.

Zusammengefasst setzt für Menschen optimierter Code auf Lesbarkeit durch Intuition und Erfahrung, also auf sauberen Code mit den nötigsten Kommentaren. Code für KI-Agenten setzt dagegen auf explizite Klarheit und Konsistenz, also auf gründliche Kommentare, ausführliche Namen und eine sehr regelmäßige Struktur, damit die KI den Code korrekt verarbeitet und verändert. Bemerkenswert ist, dass diese Praktiken die Codequalität oft für alle Lesenden verbessern, aber die Gewichtung verschiebt sich: Was Menschen als Überdokumentation oder allzu offensichtliche Benennung ansehen, kann gerechtfertigt sein, wenn eine KI die Logik des Codes durchgeht.

Performance und Optimierung: die Abwägungen

Performance-Abwägungen bei Menschen: Menschliche Entwickler halten sich meist an das Mantra, „vorzeitige Optimierung“ zu vermeiden. Code wird zuerst klar und korrekt geschrieben, und an der Performance wird erst gedreht, wenn Profiling oder Anforderungen das nötig machen. Menschen entscheiden sich bei der ersten Implementierung also oft für Einfachheit statt für maximale Geschwindigkeit. Ein Entwickler nimmt bei moderaten Datenmengen zum Beispiel vielleicht einen leicht lesbaren Algorithmus mit O(n²)-Komplexität statt eines komplizierteren O(n log n)-Algorithmus, bis sich zeigt, dass der einfachere Ansatz zu langsam ist. Wenn Performance entscheidend ist, optimieren Menschen durchaus, etwa mit spezialisierten Datenstrukturen, Operationen auf Bit-Ebene oder Nebenläufigkeit, aber diese Änderungen erhöhen den Wartungsaufwand und erfolgen mit Bedacht. Vor allem kann ein Mensch die Engpässe des Systems verstehen und entscheiden, wo sich die Abwägung zwischen Klarheit und Geschwindigkeit lohnt. Nicht offensichtliche Optimierungen dokumentiert er für künftige Maintainer (z. B. mit dem Kommentar „hier binäre Suche wegen der Performance“) und sorgt dafür, dass das Design die zusätzliche Komplexität verkraftet.

Performance-Abwägungen bei KI-Agenten: KI-Agenten stellen bei der Codegenerierung tendenziell Korrektheit und Vollständigkeit über Mikrooptimierungen, sofern man sie nicht ausdrücklich anders anweist. Eine KI, die Code schreibt, liefert meist eine geradlinige Lösung, die die Anforderungen erfüllt und standardmäßig oft umfangreiche Fehlerprüfungen und Logging enthält. Das ergibt sehr robusten Code (mit weniger Fehlern in Randfällen), aber möglicherweise etwas Laufzeit-Overhead: Die KI ergänzt zum Beispiel Validierungsschritte, die ein Mensch in einem schnellen Prototyp weglassen würde. In vielen Fällen kann die Lösung der KI etwas weniger effizient sein als das, was ein erfahrener Mensch entwerfen würde, besonders wenn die optimale Lösung einen cleveren Einfall verlangt. So verwendet die KI der Bequemlichkeit halber vielleicht eine einfache Sortierfunktion aus einer Bibliothek, auch wenn eine eigene Anpassung schneller sein könnte, oder sie wendet eine fortgeschrittene algorithmische Optimierung nicht von selbst an, wenn diese nicht ausdrücklich im Prompt stand. Allerdings verfügen KI-Agenten über ein immenses Wissen über Algorithmen und APIs. Sie „kennen jede API jeder gängigen Bibliothek“ und können schnell gut optimierte Bibliotheksfunktionen einbinden. Manchmal überrascht ein KI-Agent den Menschen sogar mit dem Vorschlag eines effizienteren Algorithmus oder einer hochmodernen Bibliothek, an die der Entwickler nicht gedacht hatte. Tatsächlich bringen KI-Pair-Programmer oft Optimierungen ein, weil sie Lösungen aus einem riesigen Code-Korpus abrufen (zum Beispiel eine effizientere Datenstruktur oder die Parallelisierung einer Aufgabe mit einer bekannten Bibliothek). Das kann die Performance verbessern, wenn die KI die Gelegenheit richtig erkennt, und zeigt, wie die Breite ihres Wissens der Effizienz zugutekommen kann.

Die Abwägungen verschieben sich also, sobald eine KI im Mittelpunkt steht. Klarheit gegen Effizienz: Eine KI schreibt bereitwillig ausführlicheren Code oder wiederholt Logik, wenn sich die Lösung dadurch leichter erzeugen und prüfen lässt, während ein Mensch Duplizierung auch dann refaktorieren würde, wenn das geringe Performance-Einbußen oder mehr Abstraktion bedeutet. Umgekehrt kann eine KI mit dem Ziel der Optimierung den Code aggressiv auf Performance umbauen, etwa durch das Ausrollen von Schleifen oder durch Optimierungen auf niedrigerer Ebene, aber dazu muss man sie ausdrücklich anweisen oder durch fehlschlagende Tests bzw. Benchmarks dahin führen. Menschen spüren intuitiv besser, wo die langsamen Teile eines Programms liegen könnten. Einer KI fehlt diese Intuition, sie stützt sich auf Trainingsdaten oder Feedback. In einer von KI gewarteten Codebasis kann Performance-Tuning deshalb ein iterativer Prozess sein: Die KI schreibt eine korrekte Lösung, Tests (eventuell von einem Menschen gesteuert) decken einen Engpass auf, und dann wird die KI per Prompt aufgefordert, diesen Teil zu optimieren. Die Stärke der KI liegt darin, dass sie Code schnell und systematisch refaktorieren kann, sobald man sie in die richtige Richtung lenkt (z. B. eine rekursive Lösung der Geschwindigkeit wegen in eine iterative umschreiben oder Memoisierung einsetzen, wenn man ihr sagt, dass die Funktion häufig aufgerufen wird). Die Rolle des Menschen bleibt entscheidend: Er erkennt, wo solche Optimierungen nötig sind, und sorgt dafür, dass sie im größeren Systemkontext sinnvoll sind.

Ressourcennutzung und Skalierbarkeit: Zur Performance gehört auch, wie Code Speicher und CPU nutzt. Menschliche Entwickler, besonders in ressourcenbeschränkten Bereichen, achten beim Schreiben oft auf den Speicherbedarf und auf Randfälle. Ein KI-Agent berücksichtigt Speichereffizienz womöglich nicht von sich aus, wenn sie nicht in seinen Anweisungen oder Trainingsbeispielen vorkam. So liest eine KI vielleicht eine ganze Datei in den Speicher, weil das Muster einfacher ist, während ein Mensch, der weiß, dass die Datei riesig sein könnte, sie Zeile für Zeile streamt. Absolut sind diese Unterschiede nicht: Man kann einer KI durchaus sagen, dass sie speichereffiziente Muster verwenden soll, und moderne LLMs haben durchaus eine gewisse Vorstellung von algorithmischer Komplexität. Bei der Beurteilung von Szenarien (etwa „Was, wenn die Eingabe 10x größer ist?“) sind Menschen aber meist besser. Wenn Entwickler Code für die Mitarbeit eines KI-Agenten optimieren, machen sie solche Fragen deshalb oft explizit (z. B. indem sie der KI im Prompt Performance-Vorgaben machen oder Tests für große Eingaben einbauen).

Zusammengefasst sucht für Menschen optimierter Code meist eine Balance zugunsten der Wartbarkeit und ergänzt Performance-Anpassungen mit Bedacht, während von KI erzeugter Code zuerst auf Korrektheit und Vollständigkeit setzt und Anleitung braucht, um eine gleichwertige Performance-Optimierung zu erreichen. Das umfangreiche Wissen der KI kann auf Aufforderung hochperformante Techniken einbringen, aber sie stellt die Ausführungsgeschwindigkeit nicht von sich aus über die Klarheit, wie es ein Mensch in performancekritischen Abschnitten tun würde. Am Ende kann die Partnerschaft aus menschlicher Einsicht und dem umfangreichen Wissen der KI Code hervorbringen, der sauber und effizient ist, nur führt der Weg dorthin anders als bei einem rein menschlichen Arbeitsablauf.

Fazit und Zusammenfassung

Das Aufkommen von KI-Agenten in der Softwareentwicklung verschiebt einige Best Practices beim Programmieren. Guter Code für menschliche Entwickler und guter Code für KI-Agenten verfolgen dieselben Grundziele, Korrektheit und Wartbarkeit, betonen aber unterschiedliche Eigenschaften:

  • Entwurfsmuster: Code für Menschen nutzt Entwurfsmuster als Werkzeug für Kommunikation und Design und setzt Architektur und DRY-Prinzip von Anfang an durch. Code für KIs greift ohne ausdrückliche Anleitung eher zu einfacheren oder sich wiederholenden Designs, sodass Menschen übergeordnete Muster durchsetzen und strukturelle Probleme refaktorieren müssen. Damit die Architektur konsistent bleibt, muss die KI die Designkonventionen des Projekts kennen oder entsprechend angewiesen werden.

  • Lesbarkeit und Dokumentation: Code für Menschen ist auf die Lesbarkeit für andere Menschen optimiert: klare Struktur, aussagekräftige (aber nicht übermäßig lange) Namen und wenige, hilfreiche Kommentare. Code für KI-Agenten enthält dagegen oft längere Namen und gründliche, in den Code eingebettete Dokumentation (die die KI automatisch pflegen kann), um dem Agenten in seinem begrenzten Sichtfeld Kontext zu geben. Konsistenz bei Stil und Benennung ist für die Verarbeitung durch die KI besonders wichtig. Interessanterweise können diese agentenorientierten Praktiken (etwa erschöpfende Docstrings) auch künftigen menschlichen Maintainern das Lesen erleichtern, allerdings auf Kosten von mehr Schreibarbeit im Voraus.

  • Performance: Wer für Menschen schreibt, stellt oft die Klarheit voran, optimiert nur bei Bedarf und wägt Komplexität sorgfältig gegen Geschwindigkeit ab. KI-Agenten liefern ohne Aufforderung meist eine korrekte Lösung mit wenig Optimierung und achten eher auf Vollständigkeit (z. B. umfangreiche Fehlerbehandlung) als auf reine Performance. Das enorme Wissen einer KI kann aber Performance-Verbesserungen einbringen (etwa den Vorschlag eines effizienteren Algorithmus oder einer Bibliothek), die die menschliche Intuition ergänzen. In einer von KI verwalteten Codebasis neigen die Abwägungen zu sicherem, klarem Code, den man iterativ optimieren kann, während ein menschlicher Experte mitunter von Anfang an eine clevere Hochleistungsimplementierung schreibt.

Die folgende Tabelle fasst diese Unterschiede zusammen:

Aspekt Code, optimiert für menschliche Entwickler Code, optimiert für KI-Agenten
Design und Muster Verwendet etablierte Entwurfsmuster und Abstraktionen für die Wartbarkeit; die Architektur wird mit Blick auf menschliche Intuition geplant. Z. B. starker Einsatz von DRY und gängigen Mustern, um Duplizierung zu vermeiden. Bevorzugt geradlinige Implementierungen, solange keine andere Anweisung kommt; dupliziert standardmäßig eventuell Logik oder verwendet einfachere Muster. Braucht ausdrückliche Anleitung, um komplexe Muster oder projektspezifische Architekturen einzuhalten.
Lesbarkeit und Benennung Setzt auf selbsterklärenden Code: klare, aber knappe Namen, Standardformatierung und Kommentare nur, wo nötig. Baut darauf, dass der Code selbstdokumentierend und durch Konventionen konsistent ist. Setzt auf explizite Klarheit: sehr beschreibende Namen (die Länge stört die KI nicht), äußerst konsistente Benennung und einheitlicher Stil. Viel Inline-Dokumentation und Docstrings liefern Kontext (weil die KI sie aktualisieren kann).
Performance-Abwägungen Stellt Lesbarkeit und Wartbarkeit voran; vermeidet vorzeitige Optimierung. Optimiert Hotspots nach dem Profiling und verwendet komplexe Techniken nur mit Begründung (und dokumentiert sie für Kollegen). Stellt beim ersten Durchgang Korrektheit und Vollständigkeit voran; Optimierungen kommen durch Iteration oder Prompts. Neigt zu robustem, fehlergeprüftem Code, auch wenn er etwas langsamer ist. Kann auf Anweisung eine große Bandbreite bekannter Optimierungen oder Bibliotheken nutzen, konzentriert sich aber nicht von selbst auf Mikrooptimierungen.

Letztlich gilt: Guter Code ist guter Code. Viele Best Practices überschneiden sich, egal ob Mensch oder KI den Code liest. Saubere Architektur, lesbarer Stil und effiziente Ausführung nützen beiden. Die wichtigsten Unterschiede liegen in der Gewichtung: KI-Agenten „lesen“ Code anders als Menschen, und Code für sie setzt deshalb stärker auf Konsistenz, expliziten Kontext und eine einfache Struktur. Wenn KI-Agenten besser werden und mehr Kontext erfassen, könnten diese Unterschiede verschwimmen.

Vorerst hilft es Teams aber, sie zu verstehen, um die Stärken von Menschen und KI in der Softwareentwicklung wirksam zu verbinden.

Foto Tara Winstead

Aus dem Englischen übersetzt: zum Originalbeitrag

Gestalten Sie die Zukunft Ihres Unternehmens mit KI

Tauchen Sie ein in unsere spannenden Workshops und rüsten Sie Ihr Team mit den Werkzeugen und dem Wissen aus, um im Zeitalter der KI führend zu sein.

Kontaktieren Sie uns
Scroll to top