ChatPaper.aiChatPaper

HAFixAgent: Agente di Riparazione Automatica del Software con Consapevolezza Storica

HAFixAgent: History-Aware Automated Program Repair Agent

November 2, 2025
Autori: Yu Shi, Hao Li, Bram Adams, Ahmed E. Hassan
cs.AI

Abstract

La riparazione automatica di programmi (APR) si è recentemente orientata verso modelli linguistici di grandi dimensioni e sistemi basati su agenti, tuttavia la maggior parte dei sistemi si affida a contesti di snapshot locali, trascurando la cronologia del repository. Ricerche precedenti dimostrano che la cronologia del repository aiuta a riparare bug a riga singola, poiché l'ultimo commit che modifica la riga difettosa è spesso quello che ha introdotto il bug. In questo articolo, indaghiamo se la cronologia del repository possa migliorare anche i sistemi APR agentivi su larga scala, specialmente per bug complessi multi-hunk. Presentiamo HAFixAgent, un agente di correzione bug consapevole della cronologia che integra euristiche del repository derivate dal blame nel suo ciclo di riparazione. Uno studio preliminare su tutti gli 854 bug del mondo reale di Defects4J motiva il nostro design, mostrando che la cronologia rilevante per i bug è sia ampiamente disponibile che altamente concentrata. Il confronto empirico di HAFixAgent con due baseline state-of-the-art mostra: (1) Efficacia: HAFixAgent migliora significativamente rispetto alla baseline basata su agenti (del 212,3%) e alla baseline multi-hunk (del 29,9%). (2) Efficienza: la cronologia non aumenta significativamente i passi dell'agente e mantiene costi token comparabili, con costi mediani notevolmente inferiori per bug complessi multi-file e multi-hunk. (3) Praticità: combinare diverse euristiche storiche ripara più bug, offrendo un chiaro trade-off costo-beneficio. HAFixAgent offre una ricetta pratica per l'APR agentivo consapevole della cronologia: ancorare l'agente alla cronologia del controllo versione, dare priorità al contesto storico basato sui diff e integrare euristiche complementari quando necessario.
English
Automated program repair (APR) has recently shifted toward large language models and agent-based systems, yet most systems rely on local snapshot context, overlooking repository history. Prior work shows that repository history helps repair single-line bugs, since the last commit touching the buggy line is often the bug-introducing one. In this paper, we investigate whether repository history can also improve agentic APR systems at scale, especially for complex multi-hunk bugs. We present HAFixAgent, a History-Aware Bug-Fixing Agent that injects blame-derived repository heuristics into its repair loop. A preliminary study of all 854 real-world bugs from Defects4J motivates our design, showing that bug-relevant history is both widely available and highly concentrated. Empirical comparison of HAFixAgent with two state-of-the-art baselines shows: (1) Effectiveness: HAFixAgent significantly improves over the agent-based baseline (by 212.3%) and the multi-hunk baseline (by 29.9%). (2) Efficiency: history does not significantly increase agent steps and keeps token costs comparable, with notably lower median costs for complex multi-file-multi-hunk bugs. (3) Practicality: combining different historical heuristics repairs more bugs, offering a clear cost-benefit trade-off. HAFixAgent offers a practical recipe for history-aware agentic APR: ground the agent in version control history, prioritize diff-based historical context, and integrate complementary heuristics when needed.
PDF32December 2, 2025