Zum Inhalt
GlobalNet
Strategies

KI & Automatisierung · LOG / 709

Code-Modelle: Ganze Dateien oder Diffs ausgeben?

Eine Studie zu Flutter und Dart sieht Ganzdatei-Ausgabe insgesamt vorn, während Diffs bei kurzen lokalen Änderungen mithalten. Unternehmen brauchen deshalb Routing statt eines Einheitsformats.

Soll ein Coding-Agent eine geänderte Datei vollständig neu ausgeben oder nur schrittweise Such-und-Ersetz-Diffs liefern? Das wirkt wie eine technische Detailfrage, bestimmt im Unternehmensalltag aber Fehlerrisiko, Review-Zeit und Integrationsaufwand. Eine aktuelle Studie vergleicht beide Verfahren mit zwei unterschiedlich vortrainierten Code-Modellen auf Flutter- und Dart-Aufgaben. Das zentrale Ergebnis: Die direkte Ganzdatei-Generierung liegt über die berichteten Gesamtmetriken hinweg deutlich vorn. Diffs bleiben jedoch bei kurzen, lokal begrenzten Änderungen konkurrenzfähig. Für Unternehmen folgt daraus kein pauschales Verbot von Diffs, sondern die Notwendigkeit eines nachvollziehbaren Format-Routings.

Was die Studie tatsächlich zeigt

Die Arbeit trainiert ein Modell mit 100 Millionen Parametern von Grund auf sowie Qwen2.5-Coder-0.5B jeweils für zwei Ausgabeverfahren: vollständige Dateigenerierung und iterative Diff-Ausgabe. Dadurch entstehen vier Checkpoints. Jeder wird auf ungefähr 1.790 zurückgehaltenen Flutter/Dart-Editieraufgaben bewertet. Berücksichtigt werden unter anderem Kompilierung, statische Analyse, Ähnlichkeit zum Zielcode und blind bewertete Codequalität.

  • Bestätigt: Beide Modellfamilien wurden jeweils für Ganzdatei- und Diff-Ausgabe trainiert.
  • Bestätigt: Alle vier Checkpoints wurden auf jeweils rund 1.790 zurückgehaltenen Aufgaben geprüft.
  • Bestätigt: Ganzdatei-Generierung war bei allen berichteten Gesamtmetriken deutlich stärker.
  • Bestätigt: Diffs waren vor allem bei kurzen, räumlich lokalen Änderungen mit wenigen Editierschritten konkurrenzfähig.

Die Ergebnisse gelten zunächst für das untersuchte Setup: kleine Code-Modelle, Flutter/Dart und die verwendeten Aufgaben. Sie beweisen nicht, dass Ganzdateien bei großen Modellen, anderen Sprachen oder sehr umfangreichen Repositories immer überlegen sind. Ebenso lässt sich daraus keine allgemeine Produktivitätssteigerung oder Kostensenkung für Unternehmen ableiten. Der belastbare Kern ist enger: Im getesteten Vergleich war die direkte Generierung robuster über die Gesamtmetriken, während Diffs einen spezifischen Vorteilskorridor bei kleinen lokalen Eingriffen hatten.

Warum das Format den Betrieb beeinflusst

Ganzdatei-Ausgabe gibt dem Modell die Freiheit, Abhängigkeiten innerhalb einer Datei konsistent zu aktualisieren. Dafür kann selbst eine kleine Änderung große Textmengen erzeugen, Reviews aufblähen und unbeabsichtigte Neuformatierung verursachen. Diffs begrenzen die sichtbare Änderung und passen gut zu etablierten Pull-Request-Prozessen. Sie können jedoch scheitern, wenn Suchanker nicht eindeutig sind, mehrere Schritte voneinander abhängen oder ein früher Edit den Kontext für den nächsten verändert. Iterative Fehler können sich dann entlang der Diff-Kette fortpflanzen.

GNS-Entscheidungsmatrix für das Format-Routing

  1. Lokaler Fix: Bei einer kurzen Änderung an einer klar identifizierbaren Stelle ist ein Diff sinnvoll, sofern Suchanker eindeutig und Tests vorhanden sind.
  2. Verteilte Änderung in einer Datei: Wenn Signaturen, Aufrufe und Hilfsfunktionen gemeinsam angepasst werden müssen, sollte die Ganzdatei-Ausgabe bevorzugt und anschließend als normaler Git-Diff geprüft werden.
  3. Sehr große Datei: Das Team vergleicht Tokenkosten und Fehlerrisiko. Gegebenenfalls wird die Aufgabe zuerst fachlich zerlegt, statt blind eines der Formate zu erzwingen.
  4. Mehrere Dateien: Das Routing erfolgt pro Datei. Ein Agent darf lokale Diffs und vollständige Dateien innerhalb eines Auftrags kombinieren, wenn jede Entscheidung protokolliert wird.
  5. Generierter oder formatierter Code: Automatische Generatoren und Formatter bleiben die Quelle der Wahrheit; das Modell ändert Eingaben oder Vorlagen statt große Artefakte frei neu zu schreiben.
  6. Hohes Risiko: Authentifizierung, Abrechnung, Datenmigrationen und Sicherheitslogik benötigen unabhängig vom Format menschliches Review und verpflichtende Tests.

Diese Matrix ist eine betriebliche Ableitung, kein Ergebnis der Studie. Ihr Nutzen liegt darin, die Formatwahl vom Modell oder einzelnen Entwickler zu lösen. Engineering Leads können Routing-Regeln zentral definieren, begründete Ausnahmen zulassen und messen, welche Aufgabenklasse mit welchem Verfahren zuverlässig funktioniert.

Pilot: Beide Verfahren unter Produktionsbedingungen testen

Ein belastbarer Pilot verwendet echte, abgeschlossene Tickets aus dem eigenen Repository, entfernt sensible Inhalte und verhindert Änderungen an Produktivsystemen. Jede Aufgabe wird nach Größe, Lokalität, Anzahl betroffener Symbole und Risikoklasse markiert. Anschließend bearbeitet dasselbe Modell vergleichbare Aufgaben mit Ganzdatei- und Diff-Ausgabe. Wichtig ist eine identische Tool- und Kontextausstattung; sonst misst der Vergleich mehr als nur das Ausgabeformat.

  • Technische Gates: Kompilierung, Linter, statische Analyse und automatisierte Tests müssen bestehen.
  • Qualitätsgate: Reviewer bewerten Korrektheit, Verständlichkeit, unnötige Änderungen und Wartbarkeit ohne Kenntnis des Formats.
  • Prozessgate: Review-Zeit, Zahl der Korrekturschleifen und Merge-Abbrüche werden pro Aufgabenklasse erfasst.
  • Kostengate: Tokenverbrauch, Laufzeit und menschliche Prüfzeit werden gemeinsam betrachtet.
  • Stop-Kriterium: Ein Format wird für eine Aufgabenklasse gesperrt, wenn es wiederholt unklare, nicht reproduzierbare oder sicherheitskritische Änderungen erzeugt.

Grenzen und klare Entscheidung

Die Studie liefert einen wertvollen Hinweis gegen die Annahme, Diffs seien automatisch präziser oder effizienter. Sie ersetzt jedoch keinen eigenen Vergleich mit den eingesetzten Modellen, Sprachen und Repository-Regeln. Der eigenständige Winkel dieses Beitrags liegt daher im Format-Routing, nicht in einer allgemeinen Bewertung von Coding-Agenten oder Code-Review-Produkten. Für Entscheider lautet die praktische Empfehlung: Ganze Dateien als robuste Standardoption für zusammenhängende Änderungen prüfen, Diffs gezielt für kurze lokale Eingriffe nutzen und beide Wege denselben Compile-, Test- und Review-Gates unterwerfen.

Quelle

  1. Diffs vs. Whole Files: An Empirical Comparison of Iterative Edit-Based and Direct Generation for Flutter/Dart Code Models