Adaptive memory retrieval improves program repair across repositories

AdaRepair-Mem: Adaptive Experience Orchestration for Repository-Level Program Repair

Software EngineeringArtificial Intelligence

Summary

Fixing computer programs using past fixes can be tricky because some projects have many past fixes while others have few. The authors show that simply having more past fixes doesn't always help and sometimes mixing different types of past fixes can cause problems. They propose a smarter way to pick past fixes that fits the current problem better, including looking at fixes from other projects when needed. Their method helps fix programs better, especially for projects with fewer past fixes.

What this means in practice

  • For software engineering teams: Enhance automated bug fixing tools by selectively retrieving the most relevant past fixes to improve repair quality across diverse software repositories.
  • For software quality assurance groups: Support better patch refinement during bug fixing by adapting memory retrieval based on repair stages and project repair history.

Authors

Z. C. Luo, J. C. Guo, W. J. He, S. Y. Wang, J. C. Yu, F. M. Zhao, Y. Chen, T. Cao, L. Q. Liu, N. Zheng, W. Xu, J. Jiang, Z. M. Zhao

Abstract

Recent memory-augmented repository-level program repair methods reuse historical repair experiences to improve LLM-based issue resolution. However, our analysis reveals three limitations in existing repository-level memory retrieval. First, episodic memory is highly imbalanced across repositories, leaving low-resource repositories with little effective support. Second, more memory does not monotonically lead to higher repair success, suggesting that relevance, quality, and redundancy matter more than raw memory volume. Third, memory accumulation is phase-misaligned: repositories may contain many reproduction experiences but few patch or refinement experiences. To address these problems, we propose an adaptive experience retrieval framework for repository-level program repair. Our framework introduces coverage-aware retrieval, which falls back to cross-repository or repair-type-based memories when same-repository memory is insufficient; quality-aware selection, which ranks memories by relevance, historical utility, specificity, and redundancy; and stage-aware routing, which separates and retrieves memories for reproduction, localization, patch generation, patch refinement, and validation. Evaluated on SWE-Bench-Lite and SWE-Bench-Verified, the proposed framework improves repair performance on under-covered repositories, reduces noisy memory retrieval, and better supports failed-to-fixed patch refinement. Our results show that the key to memory-augmented repair is not simply accumulating more experiences, but retrieving the right experiences for the right repair context.