一句话:提出分层知识注入框架,用 Bug、仓库、项目三层上下文逐步增强 LLM 程序修复。
仅提供错误消息、堆栈等局部上下文时,LLM 程序修复仍难处理许多缺陷,而开发者常借助仓库和项目级知识。本文提出分层知识注入框架,逐步向 LLM 注入 Bug 知识层(缺陷函数、失败测试)、仓库知识层(结构依赖、相关文件、提交历史)和项目知识层(文档、历史修复缺陷)。在 BugsInPy 的 314 个缺陷上,用 Llama 3.3 与 GPT-4o-mini 评估六类缺陷的修复率。Llama 3.3 达到 79%(250/314),较先前工作提升 23%;所有类型在仓库层后均有改善,仅部分类型继续受益于项目层。程序异常、GUI 等复杂且结构孤立的缺陷仍难修复,说明需要交互式、自适应 APR 系统。
Prompting LLMs with bug-related context (e.g., error messages, stack traces) improves automated program repair, but many bugs still remain unresolved. In real-world projects, developers often rely on broader repository and project-level context beyond the local code to resolve such bugs. In this paper, we investigate how automatically extracting and providing such knowledge can improve LLM-based program repair. We propose a layered knowledge injection framework that incrementally augments LLMs with structured context. It starts with the Bug Knowledge Layer, which includes information such as the buggy function and failing tests; expands to the Repository Knowledge Layer, which adds structural dependencies, related files, and commit history; and finally injects the Project Knowledge Layer, which incorporates relevant details from documentation and previously fixed bugs. We evaluate this framework on a dataset of 314 bugs from BugsInPy using two LLMs (Llama 3.3 and GPT-4o-mini), and analyze fix rates across six bug types. By progressively injecting knowledge across layers, our approach achieves a fix rate of 79% (250/314) using Llama 3.3, a significant improvement of 23% over previous work. All bug types show improvement with the addition of repository-level context, while only a subset benefit further from project-level knowledge, highlighting that different bug types require different levels of contextual information for effective repair. We also analyze the remaining unresolved bugs and find that more complex and structurally isolated bugs, such as Program Anomaly and GUI bugs, remain difficult even after injecting all available information. Our results show that layered context injection improves program repair and suggest the need for interactive and adaptive APR systems.
@inproceedings{paperbot9290,
title = {Hierarchical Knowledge Injection for Improving LLM-based Program Repair},
author = {Ramtin Ehsani and Esteban Parra and Sonia Haiduc and Preetha Chatterjee},
booktitle = {ASE},
year = {2025},
doi = {10.1109/ase63991.2025.00122}
}