EXPEREPAIR: Dual-Memory Enhanced LLM-based Repository-Level Program Repair
ExpeRepair ist ein neuartiges, auf LLMs basierendes Framework, das ein Dual-Memory-System nutzt – bestehend aus episodischem Gedächtnis für konkrete Reparaturbeispiele und semantischem Gedächtnis für abstrakte Erkenntnisse –, um kontextbewusste Prompts dynamisch zu komponieren und durch effektive Wiederverwendung historischen Reparaturwissens state-of-the-art Open-Source-Leistung auf den Benchmarks SWE-Bench Lite und Verified zu erzielen.
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 sind ein Meistermechaniker, der versucht, einen komplexen, vintage Motor zu reparieren. In der Vergangenheit mussten Sie jedes Mal, wenn ein neues Problem auftrat, bei Null anfangen: Das Handbuch lesen, raten, was falsch ist, einen Versuch starten und hoffen, dass es funktioniert. Wenn Sie scheiterten, versuchten Sie es einfach erneut und vergaßen dabei, was Sie aus dem letzten Fehler gelernt hatten.
ExpeRepair ist wie die Ausrüstung dieses Mechanikers mit einem übermächtigen, zweiteiligen Gedächtnissystem, das von der Funktionsweise menschlicher Gehirne inspiriert ist. Anstatt jedes Mal bei Null anzufangen, hilft dieses System der KI, vergangene Reparaturen zu „erinnern" und daraus zu lernen, was sie bei der Behebung von Softwarefehlern deutlich besser macht.
Hier ist die Funktionsweise, auf einfache Konzepte heruntergebrochen:
Die zwei Arten von Gedächtnis
Die Arbeit erklärt, dass das menschliche Gedächtnis nicht nur ein großer Eimer ist; es hat zwei unterschiedliche Teile. ExpeRepair kopiert dieses Design:
Episodisches Gedächtnis (Das „Fotoalbum"):
- Was es ist: Dies ist eine Sammlung spezifischer, konkreter Beispiele. Stellen Sie es sich als ein Scrapbook vergangener Reparaturen vor. Es enthält die exakten „Vorher-und-Nachher"-Fotos: die spezifische Fehlermeldung, den exakten defekten Code und den spezifischen Patch, der ihn behoben hat.
- Wie es hilft: Wenn ein neuer Fehler auftritt, blättert das System durch dieses Scrapbook, um einen ähnlichen vergangenen Fall zu finden. „Hey, wir haben letzte Woche einen ähnlichen defekten Lichtschalter repariert; versuchen wir denselben Trick." Dies liefert ein konkretes Rezept, dem man folgen kann.
Semantisches Gedächtnis (Das „Regelbuch"):
- Was es ist: Dies ist die abstrakte Weisheit, die aus all diesen vergangenen Reparaturen gewonnen wurde. Es geht nicht um spezifische Fotos, sondern um allgemeine Prinzipien. Stellen Sie es sich als eine Liste von „Best Practices" oder „Faustregeln" vor, die in einfachem Englisch verfasst sind.
- Wie es hilft: Es lehrt der KI allgemeine Lehren, wie zum Beispiel: „Bei der Behebung von Sicherheitsproblemen immer auf Randfälle prüfen" oder „Wenn eine Funktion mehrere Eingaben verarbeitet, stellen Sie sicher, dass Sie alle beheben, nicht nur die erwähnte." Dies hilft der KI, sich an neue Situationen anzupassen, die sie noch nicht gesehen hat.
Wie es Fehler behebt (Der Arbeitsablauf)
Das System verwendet zwei „Agenten" (KI-Arbeiter), um die Reparatur durchzuführen: einen, um ein Testskript zu schreiben (um den Fehler zu beweisen), und einen, um die eigentliche Reparatur zu schreiben.
- Der alte Weg: Die KI erhält einen Fehlerbericht, versucht basierend auf ihrer allgemeinen Schulung einen Fehler zu erraten und hofft auf das Beste. Wenn sie scheitert, versucht sie es erneut mit denselben statischen Anweisungen.
- Der ExpeRepair-Weg:
- Zurückblicken: Bevor versucht wird, den neuen Fehler zu beheben, prüft das System sein Fotoalbum (Episodisches Gedächtnis) auf ähnliche vergangene Misserfolge und Erfolge.
- Die Regeln lesen: Es prüft auch sein Regelbuch (Semantisches Gedächtnis) auf hochrangige Ratschläge, die für diese Art von Problem relevant sind.
- Dynamische Anweisungen: Anstatt ein starres, vorab geschriebenes Handbuch zu verwenden, erstellt das System einen benutzerdefinierten, „dynamischen" Prompt für den KI-Arbeiter. Es sagt: „Hier ist der neue Fehler. Hier ist ein ähnlicher Fehler, den wir letzten Monat behoben haben (aus dem Fotoalbum). Und denken Sie an diese Regel zur Behandlung von Randfällen (aus dem Regelbuch)."
- Lernen und Aktualisieren: Sobald die Reparatur erledigt ist (oder sogar wenn sie scheitert), speichert das System die Erfahrung. Es fügt die spezifischen Details dem Fotoalbum hinzu und fasst die gelernte Lektion für das nächste Mal im Regelbuch zusammen.
Die Ergebnisse
Die Forscher testeten dieses System an zwei berühmten Sammlungen realer Softwarefehler (genannt SWE-Bench Lite und SWE-Bench Verified).
- Die Punktzahl: Unter Verwendung eines leistungsstarken KI-Modells (Claude 4 Sonnet) reparierte ExpeRepair erfolgreich 74,6 % der Fehler im härteren Testset und 60,3 % im leichteren Set.
- Der Vergleich: Dies war die beste Leistung unter allen getesteten Open-Source-Methoden. Es schlug andere Top-Tools wie SWE-agent, Aider und AutoCodeRover.
- Die Kosten: Es erreichte diese hohen Punktzahlen, ohne dass eine teure, zeitaufwändige Nachschulung des KI-Modells erforderlich war. Es lernte einfach, indem es seine eigene vergangene Arbeit „las".
Warum es wichtig ist
Die Arbeit argumentiert, dass aktuelle KI-Reparaturtools wie Schüler sind, die einen Test machen, eine Note erhalten und dann unmittelbar vor dem nächsten Test alles vergessen. ExpeRepair ist wie ein Schüler, der einen Lernleitfaden führt, seine Fehler überprüft und mit jedem einzelnen Problem, das er löst, klüger wird.
Durch die Kombination spezifischer Beispiele (Episodisch) mit allgemeiner Weisheit (Semantisch) erstellt das System eine Feedbackschleife, in der die KI beim Reparieren von Software besser wird, je mehr sie arbeitet, und dabei nachahmt, wie menschliche Entwickler tatsächlich lernen und sich im Laufe der Zeit verbessern.
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.