← Neueste Arbeiten
💻 computer science

Bug Report Specification Refinement with Trajectory Guidance for Automated Program Repair

TrajSpec ist ein trajektoriengesteuertes Framework, das Fehlermeldungen verfeinert, indem es Evidenzen aus Pre-Fix-Repository-Trajektorien zu einer hierarchischen Spezifikation synthetisiert und dadurch die Erfolgsraten der automatisierten Programmbereinigung über mehrere Agenten und Benchmarks hinweg signifikant verbessert.

Ursprüngliche Autoren: S M Farah Al Fahim (Peter), Md Nakhla Rafi (Peter), Md Ahasanuzzaman (Peter), Zeyang Ma (Peter), Dong Jae Kim (Peter), Shaowei Wang (Peter), Tse-Hsun (Peter), Chen

Veröffentlicht 2026-07-10
📖 1 Min. Lesezeit☕ Kaffeepausen-Lektüre

Ursprüngliche Autoren: S M Farah Al Fahim (Peter), Md Nakhla Rafi (Peter), Md Ahasanuzzaman (Peter), Zeyang Ma (Peter), Dong Jae Kim (Peter), Shaowei Wang (Peter), Tse-Hsun (Peter), Chen

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

Technisches Resümee: TrajSpec – Trajektorien-gestützte Verfeinerung von Fehlermeldungsspezifikationen

Problemstellung

Automatisierte Programmierreparatur-Agenten (APR) auf Repository-Ebene verlassen sich auf Fehlermeldungen (Bug Reports) als primäre Aufgabenbeschreibung. Standardmäßige Fehlermeldungen beschreiben jedoch oft nur die beobachteten Fehlersymptome, während kritische, für die Reparatur relevante Informationen – wie der zugrunde liegende Fehlermechanismus, spezifische Verhaltensanforderungen und der vollständige Implementierungsumfang – fehlen. Infolgedessen untersuchen APR-Agenten möglicherweise irrelevante Codeabschnitte, schließen falsche Anforderungen ab oder generieren Patches, die zwar das gemeldete Symptom beheben, aber das beabsichtigte Repository-Verhalten nicht wiederherstellen. Während frühere Arbeiten den Fokus auf die Verbesserung von Suchstrategien, Lokalisierung oder Prompt-Engineering legten, setzen diese Ansätze oft voraus, dass die Eingabe-Fehlermeldung eine ausreichende Spezifikation darstellt. Es besteht eine Lücke bei Methoden, die die Fehlermeldung explizit verfeinern, indem sie fehlende Spezifikationsdetails aus dem Repository sammeln, bevor der eigentliche Reparaturprozess beginnt.

Methodik: TrajSpec

Die Autoren schlagen TrajSpec vor, einen trajektorien-gestützten Ansatz zur Verfeinerung von Repository-gestützten Spezifikationen. Das System operiert mit einer ursprünglichen Fehlermeldung (bb) und einem Pre-Fix-Repository-Snapshot (RcR_c) durch die folgende Pipeline:

  1. Unverifizierte Trajektorien-Sammlung:
    TrajSpec führt eine Trajektorien-Sammlungs-Agenten aus, der nur bb und RcR_c nutzt. Dieser Agent exploriert das Repository, inspiziert Code und schlussfolgert über das Problem. Entscheidend ist, dass dieser Durchlauf unverifiziert ist: TrajSpec validiert keine während dieser Phase erzeugten Kandidaten-Patches. Jeder Kandidaten-Patch wird verworfen, und es wird lediglich die Ausführungstrajektorie (τ\tau) – eine Sequenz aus Denk-, Aktions- und Beobachtungstupeln – beibehalten. Diese Trajektorie dient als Quelle für Repository-gestützte Evidenz, selbst wenn der finale Patch des Agenten fehlerhaft war.

  2. Hierarchische Evidenzabstraktion:
    Rohe Trajektorien sind oft verrauscht und langwierig. TrajSpec extrahiert Kandidaten-Fundstellen aus bb und τ\tau mit Fokus auf drei Dimensionen:

    • Fehlermechanismus: Das Source-Code-Verhalten, welches das Symptom erklärt.
    • Verhaltensanforderung: Das Verhalten, das bestehen sollte.
    • Implementierungsumfang: Die beteiligten Code-Lokationen.

    Diese Fundstellen werden in einer hierarchischen Repräsentation (MM) mit drei Detailstufen für jede Dimension organisiert:

    • High-level: Eine Schlussfolgerung zur Kandidaten-Spezifikation.
    • Mid-level: Diagnostische Argumentation und Beziehungen (z. B. Code-Pfade, Abhängigkeiten).
    • Low-level: Konkrete Repository-Beobachtungen (z. B. spezifische Dateien, Funktionen, Variablen).
  3. Entwurfsgenerierung und Repository-basierte Überprüfung:
    Unter Verwendung von bb und MM generiert ein LLM einen Entwurf der verfeinerten Fehlermeldung (b^\hat{b}), der einem festen Schema folgt (Titel, Beschreibung, Ursache/RootCause, Schritte zur Reproduktion, Erwartetes Verhalten, Beobachtetes Verhalten).

    Ein Schritt der Repository-basierten Überprüfung validiert b^\hat{b} anschließend gegen RcR_c. Ein Reviewer-Agent bewertet, ob die Behauptungen im Entwurf durch die Evidenz in MM und den tatsächlichen Quellcode gestützt werden. Er entfernt nicht durch die Evidenz gestützte Behauptungen, revidiert unsichere Aussagen, fügt fehlende Repository-gestützte Details hinzu und stellt sicher, dass der Implementierungsumfang angemessen begrenzt ist. Das Ergebnis ist die finale verfeinerte Fehlermeldung (b^f\hat{b}_f), die als Aufgabenbeschreibung für den nachgeschalteten Reparatur-Agenten dient.

Zentrale Beiträge

  • Formulierung: Die Arbeit formuliert die Verbesserung von Fehlermeldungen für die Repository-Ebene der APR als „Repository-gestützte Spezifikationsverfeinerung“, um den Fehlermechanismus, die Verhaltensanforderung und den Implementierungsumfang explizit zu machen.
  • TrajSpec-Framework: Einführung einer Methode, die Evidenz aus einem unverifizierten Trajektorien-Sammlungs-Durchlauf extrahiert und hierarchisch organisiert, diese Evidenz gegen den Quellcode überprüft und eine verfeinerte Meldung generiert, ohne vorauszusetzen, dass die Trajektorien-Kandidaten-Patches korrekt sind.
  • Umfassende Evaluierung: Evaluierung auf allen 300 SWE-Bench Lite Instanzen mittels Mini-SWE-Agent V2, was signifikante Leistungssteigerungen demonstriert.
  • Generalisierung: Nachweis, dass die Vorteile von TrajSpec über verschiedene nachgeschaltete Reparatur-Agenten (Agentless und AutoCodeRover) hinweg generalisieren.
  • Komponentenanalyse: Ablationsstudien bestätigen, dass sowohl die hierarchische Evidenzrepräsentation als auch die Repository-basierte Überprüfung entscheidend für die Leistungssteigerung sind.

Evaluierungsergebnisse

Die Autoren evaluierten TrajSpec auf 300 SWE-Bench Lite Instanzen:

  • Primärer Reparatur-Agent (Mini-SWE-Agent V2):

    • Mit GPT-5-mini verbesserte sich Pass@1 von 41,00 % (ursprüngliche Meldungen) auf 59,67 %.
    • Mit MiniMax M2.5 verbesserte sich Pass@1 von 54,67 % auf 64,33 %.
    • TrajSpec übertraf ein Baseline-"Agentic-Base" (welches Trajektorien-Daten nutzt, aber ohne hierarchische Abstraktion und Repository-Überprüfung arbeitet) in beiden Settings.
    • Die Verbesserungen waren breit über 12 verschiedene Repositories verteilt, wobei TrajSpec die Reparatur-Abdeckung erweiterte und dabei fast alle durch die ursprünglichen Meldungen bereits reparierten Instanzen beibehielt.
  • Cross-Agent Generalisierung (Gestratifizierte Stichprobe von 100 Instanzen):

    • Agentless: Pass@1 verbesserte sich von 41,00 % auf 71,00 %.
    • AutoCodeRover: Pass@1 verbesserte sich von 47,00 % auf 72,00 %.
  • Ablationsstudien:

    • Das Entfernen der Repository-basierten Überprüfung reduzierte Pass@1 von 59,67 % auf 48,00 %.
    • Das Entfernen der hierarchischen Evidenzrepräsentation reduzierte Pass@1 auf 47,67 %.
    • Dies bestätigt, dass sowohl die Strukturierung der Evidenz als auch die Verifizierung der Behauptungen gegen das Repository essenziell sind.
  • Kostenanalyse:

    • Obwohl TrajSpec zusätzliche Kosten für die Generierung der Meldung verursacht (ca. $0,083 pro Instanz mit GPT-5-mini), reduziert es die Token-Nutzung der nachgeschalteten Reparatur um ~24 % und senkt die monetären Kosten des Reparatur-Durchlaufs selbst. Die Gesamtkosten am Ende der Kette bleiben im Verhältnis zu den signifikanten Gewinnen in der Reparaturerfolgsrate moderat.

Bedeutung und Ansprüche

Die Arbeit behauptet, dass TrajSpec einen vielversprechenden Weg zur Verbesserung der Reparatur auf Repository-Ebene bietet, indem es das Problem der unterbestimmten Fehlermeldungen adressiert. Die Autoren betonen:

  1. Trajektorien sind über die Patch-Generierung hinaus wiederverwendbar: Selbst unverifizierte Trajektorien enthalten wertvolle Evidenz über Fehlermechanismen und Code-Scope, die abstrahiert und strukturiert werden können, um die Aufgabenbeschreibung zu verbessern.
  2. Verifizierung ist entscheidend: Die bloße Nutzung von Trajektorien-Daten reicht nicht aus; eine hierarchische Struktur und ein Schritt zur Repository-basierten Überprüfung sind notwendig, um Rauschen zu filtern und sicherzustellen, dass Behauptungen im Pre-Fix-Code fundiert sind.
  3. Die Aufgabenbeschreibung ist entscheidend: Die Verbesserung der Eingabe-Spezifikation (der Fehlermeldung) ist ebenso wichtig wie die Verbesserung des Reparatur-Agenten selbst. Traj

Die Autoren nehmen eine bescheidene Haltung ein und merken an, dass ihre Evaluierung auf Python-Repositories in SWE-Bench Lite beschränkt ist und die Wirksamkeit für andere Sprachen oder Benchmarks zukünftige Arbeit bleibt. Sie räumen zudem ein, dass die verfeinerten Meldungen zwar die automatisierten Reparatur-Metriken verbessern, die Studie jedoch auf den Nutzen für APR abzielt und nicht auf die menschlich wahrgenommene Qualität der Berichte.

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 →