Table of Contents
Fetching ...

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.

HAFixAgent: History-Aware Automated Program Repair Agent

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.

Paper Structure

This paper contains 58 sections, 1 equation, 6 figures, 5 tables.

Figures (6)

  • Figure 1: Distribution of the number of unique blame commits across different bug categories on Defects4J.
  • Figure 2: HAFixAgent architecture and workflow.
  • Figure 3: Venn diagram comparing bug repair performance across 4 context configurations (non-history, fn_all, fn_pair, and fl_diff)
  • Figure 6: Trade-off analysis of success rate and cost per bug across different combinations of configurations.
  • Figure : Median values (Success / Failed)
  • ...and 1 more figures