ChatPaper.aiChatPaper

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.
PDF32December 2, 2025