← Neueste Arbeiten
🤖 AI

Abstain and Validate: A Dual-LLM Policy for Reducing Noise in Agentic Program Repair

Dieses Paper stellt ein Dual-LLM-Policy-Framework vor, das Bug-Abstention und Patch-Validierung kombiniert, um durch das Herausfiltern unwahrscheinlicher zu behebender Bugs und suboptimaler Patches vor der menschlichen Überprüfung das Rauschen signifikant zu reduzieren und die Erfolgsraten in der agentenbasierten automatisierten Programmbereinigung (Automated Program Repair) auf industriellem Niveau zu verbessern.

Ursprüngliche Autoren: José Cambronero, Michele Tufano, Sherry Shi, Renyao Wei, Grant Uy, Runxiang Cheng, Chin-Jung Liu, Shiying Pan, Satish Chandra, Pat Rondon

Veröffentlicht 2026-01-30
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: José Cambronero, Michele Tufano, Sherry Shi, Renyao Wei, Grant Uy, Runxiang Cheng, Chin-Jung Liu, Shiying Pan, Satish Chandra, Pat Rondon

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie hätten einen sehr talentierten, aber etwas übereifrigen Roboter-Assistenten namens „Repair-Bot“. Ihr Job ist es, tausende von kaputten Dingen in einem riesigen Lagerhaus (dem Codebase des Unternehmens) zu reparieren. Repair-Bot ist großartig darin, Dinge zu reparieren, aber er neigt dazu, Fehler zu machen, Zeit zu verschwenden und Korrekturen vorzuschlagen, die eigentlich nicht funktionieren.

Wenn Sie Repair-Bot erlauben würden, Ihnen jedes einzelne Ding zu zeigen, das er zu reparieren versucht, wären Sie überfordert. Sie würden den ganzen Tag damit verbringen, sich kaputte Vorschläge anzusehen, frustriert sein und schließlich aufhören, dem Roboter zu vertrauen.

Dieses Paper stellt ein zweistufiges „Gatekeeper“-System vor, um den Lärm zu stoppen, bevor er Ihren Schreibtisch erreicht. Denken Sie an einen Türsteher in einem Club und einen Qualitätskontrolleur in einer Fabrik.

Das Problem: Zu viel Lärm

In der Welt der Software sind „Bugs“ Fehler im Code. Automatisierte Systeme (genannt Agentic APR) versuchen, diese zu beheben. Aber diese Systeme versuchen oft, Bugs zu beheben, die zu schwer für sie sind, oder sie generieren „Patches“ (Code-Änderungen), die zwar gut aussehen, aber eigentlich falsch sind.

  • Das Ergebnis: Entwickler verschwenden Zeit mit der Überprüfung schlechter Korrekturen.
  • Das Ziel: Dem Entwickler nur die Korrekturen zeigen, die wahrscheinlich funktionieren werden.

Die Lösung: Das Zwei-Tore-System

Die Autoren schlagen zwei Policies vor, die wie Filter in einem Trichter wirken.

Tor 1: Die „Bug Abstention“ (Der Türsteher)

  • Was es tut: Bevor der Roboter überhaupt versucht, einen Bug zu beheben, betrachtet dieses Tor den Bug-Report (die Beschreibung des Problems).
  • Die Analogie: Stellen Sie sich vor, Sie sind ein Türsteher in einem Club. Sie schauen sich die Person an, die versucht einzutreten (den Bug). Wenn die Person zu verwirrt wirkt, die Beschreibung zu vage ist oder das Problem mit den vorhandenen Werkzeugen unlösbar scheint, sagen Sie: „Tut mir leid, Sie kommen hier nicht rein.“
  • Wie es funktioniert: Ein KI-Modell liest den Bug-Report und fragt: „Kann unser Roboter das tatsächlich beheben?“ Wenn die Antwort „wahrscheinlich nicht“ lautet, entsagt (abstains) sich das System (weigert sich, es zu versuchen). Es spart die Energie des Roboters und, was noch wichtiger ist, es erspart dem menschlichen Entwickler den Versuch eines gescheiterten Versuchs.
  • Die Behauptung des Papers: Indem es als Türsteher fungiert, filtert dieses Tor die „unmöglichen“ Bugs heraus. Es erhöht die Erfolgsquote der Bugs, die tatsächlich durchkommen, von etwa 11 % auf 21 % (unter Verwendung spezifischer Richtlinien).

Tor 2: Die „Patch Validation“ (Der Qualitätskontrolleur)

  • Was es tut: Wenn der Roboter tatsächlich versucht, einen Bug zu beheben und einen Patch produziert, prüft dieses Tor das Ergebnis.
  • Die Analogie: Stellen Sie sich vor, der Roboter hat gerade ein neues Motorteil gebaut. Bevor Sie es einbauen, sieht ein Qualitätskontrolleur den Bauplan. Der Inspektor schaut nicht nur auf das Teil; er schreibt zuerst ein „Rezept“ dafür auf, wie ein perfektes Teil basamentierend auf der Problembeschreibung aussehen sollte. Dann vergleicht er das Teil des Roboters mit diesem Rezept.
  • Wie es funktioniert:
    1. Die KI schreibt eine „Spezifikation“ (einen Satz von Regeln für eine korrekte Korrektur) basierend auf dem Bug-Report.
    2. Eine zweite KI betrachtet die tatsächliche Code-Änderung des Roboters und die Spezifikation.
    3. Sie vergibt eine Bewertung: „Das sieht gut aus“, „Das sieht schlecht aus“ oder „Ich bin mir nicht sicher“.
    4. Wenn die Bewertung zu niedrig ist, wird der Patch abgeleht.
  • Die Behauptung des Papers: Dieses Tor fängt die Fehler des Roboters ab. Selbst wenn der Roboter versucht, einen Bug zu beheben, kann dieses Tor sagen: „Nein, das ist nicht die richtige Korrektur.“ Dies allein kann die Erfolgsquote der gezeigten Patches auf etwa 29 % steigern.

Die magische Kombination: Der Trichter

Wenn Sie beide Tore zusammen verwenden, wirken sie wie ein hocheffizienter Trichter.

  1. Tor 1 stoppt die unmöglichen Probleme, bevor sie in das System gelangen.
  2. Tor 2 stoppt die schlechten Lösungen, bevor sie das System verlassen.

Die Ergebnisse:

  • Baseline: Ohne jegliche Tore sehen Entwickler nur 1 von 10 Mal (11 %) eine funktionierende Korrektur.
  • Mit beiden Toren: Wenn Sie die Tore streng einstellen (nur die allerbesten Kandidaten zeigen), sehen Entwickler 1 von 2 Mal (53 %) eine funktionierende Korrektur.
  • Der Kompromiss: Sie müssen bereit sein, insgesamt weniger Bugs anzuzeigen. Das System filtert viele Bugs heraus, um sicherzustellen, dass die wenigen, die es doch zeigt, von hoher Qualität sind.

Was ist mit maschinengenerierten Bugs?

Das Paper hat dies auch an Bugs getestet, die automatisch von Computern gefunden wurden (wie „Null Pointer Exceptions“ oder Speicherfehler). Diese Bugs kommen meist mit klaren Anweisungen (wie einem Stack Trace).

  • Für diese wurde das „Tor 1“ (der Türsteher) nicht benötigt, da der Computer bereits weiß, dass diese behebbar sind.
  • Dennoch half der „Qualitätskontrolleur“ (Tor 2) dennoch, indem er die Erfolgsquote der akzeptierten Patches signifikant steigerte.

Zusammenfassung

Dieses Paper behauptet nicht, den Roboter besser darin zu machen, Bugs zu beheben. Es behauptet statlich, den Prozess des Zeigens von Korrekturen an Menschen viel intelligenter zu machen. Indem zwei KI-„Gatekeeper“ den Lärm herausfiltern, hören Entwickler auf, Zeit mit schlechten Ideen zu verschwenden, und beginnen, dem automatisierten System wieder zu vertrauen.

Kurz gesagt: Es geht nicht darum, mehr Bugs zu beheben; es geht darum, die richtigen Bugs zu beheben, damit Menschen nicht müde werden, sich die falschen anzusehen.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →