🤖 AI Summary
Existing large language model (LLM)-based agents exhibit limited effectiveness in automated program repair for enterprise languages such as Java. This work proposes iSWE Agent, the first two-stage intelligent agent system that deeply integrates rule-driven Java static analysis with large language models. The localization sub-agent precisely identifies defects, while the editing sub-agent leverages program transformation techniques to generate high-quality patches. By synergistically combining precise static analysis with the generative capabilities of LLMs, iSWE Agent achieves a balanced trade-off between accuracy and generalization. It attains state-of-the-art repair success rates on the Java subsets of both Multi-SWE-bench and SWE-PolyBench, thereby addressing a critical gap in the field of automated Java program repair.
📝 Abstract
Resolving issues on code repositories is an important part of software engineering. Various recent systems automatically resolve issues using large language models and agents, often with impressive performance. Unfortunately, most of these models and agents focus primarily on Python, and their performance on other programming languages is lower. In particular, a lot of enterprise software is written in Java, yet automated issue resolution for Java is under-explored. This paper introduces iSWE Agent, an automated issue resolver with an emphasis on Java. It consists of two sub-agents, one for localization and the other for editing. Both have access to novel tools based on rule-based Java static analysis and transformation. Using this approach, iSWE achieves state-of-the-art issue resolution rates across the Java splits of both Multi-SWE-bench and SWE-PolyBench. More generally, we hope that by combining the best of rule-based and model-based techniques, this paper contributes towards improving enterprise software development.