HAFixAgent: Автоматизированный агент исправления программ с учетом истории изменений
HAFixAgent: History-Aware Automated Program Repair Agent
November 2, 2025
Авторы: Yu Shi, Hao Li, Bram Adams, Ahmed E. Hassan
cs.AI
Аннотация
Автоматизированный ремонт программ (APR) недавно сместился в сторону больших языковых моделей и агентских систем, однако большинство систем полагаются на локальный контекст снимков состояния, игнорируя историю репозитория. Предыдущие исследования показывают, что история репозитория помогает исправлять однострочные ошибки, поскольку последний коммит, затрагивающий ошибочную строку, часто является коммитом, внесшим ошибку. В данной статье мы исследуем, может ли история репозитория также улучшить агентские системы APR в крупном масштабе, особенно для сложных многоместных ошибок. Мы представляем HAFixAgent, агент для исправления ошибок с учетом истории, который внедряет эвристики репозитория, полученные из аннотаций строк, в свой цикл исправления. Предварительное исследование всех 854 реальных ошибок из Defects4J обосновывает наш дизайн, показывая, что релевантная история ошибок широко доступна и высоко концентрирована. Эмпирическое сравнение HAFixAgent с двумя современными базовыми системами показывает: (1) **Эффективность**: HAFixAgent значительно превосходит агентский базовый уровень (на 212.3%) и базовый уровень для многоместных ошибок (на 29.9%). (2) **Эффективность затрат**: история незначительно увеличивает количество шагов агента и сохраняет сопоставимые затраты на токены, с заметно более низкими медианными затратами для сложных многофайловых многоместных ошибок. (3) **Практичность**: комбинирование различных исторических эвристик исправляет больше ошибок, предлагая четкий компромисс между затратами и выгодой. HAFixAgent предлагает практический рецепт для агентского APR с учетом истории: обосновывать агента в истории системы контроля версий, отдавать приоритет историческому контексту на основе различий и интегрировать дополнительные эвристики при необходимости.
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.