HAFixAgent: History-Aware Automated Program Repair Agent
Yu Shi, Hao Li, Bram Adams, Ahmed E. Hassan
TL;DR
This work addresses automated program repair (APR) for complex, multi-hunk bugs by grounding an autonomous repair agent in repository history. The proposed HAFixAgent blends history-derived signals from git blame with an observe-act-verify loop and a minimal toolset, using three complementary heuristics to provide contextual clues. On all 854 Defects4J bugs, history-aware configurations yield a large, robust improvement over state-of-the-art baselines (average gains ~212.3% vs RepairAgent and ~29.9% vs BIRCH-feedback) while keeping costs and step counts manageable; the benefits are especially pronounced for multi-hunk bugs. The study provides a practical recipe for history-aware APR and highlights opportunities for richer historical signals, blameless-bug handling, and multi-agent collaborations across software engineering tasks.
Abstract
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.
