Summary
The paper presents SWE-agent, a system designed to enhance language model (LM) agents' performance in software engineering tasks through a specialized agent-computer interface (ACI). The ACI allows LMs to efficiently navigate, edit, and execute code within repositories, significantly improving performance over traditional non-interactive LMs. SWE-agent demonstrates good results on benchmarks such as SWE-bench and HumanEvalFix, showcasing a substantial increase in task resolution rates. The authors highlight the importance of designing interfaces tailored specifically for LMs, drawing parallels to human-computer interaction studies. The paper provides detailed experimental results and ablation studies to validate the efficacy of the ACI.
Strengths
The key idea of designing a specialized interface for LMs to interact with software environments is novel and well-executed. By abstracting and simplifying the interaction process, the authors address a significant gap in current LM capabilities. The experimental validation is thorough, with SWE-agent outperforming existing systems on established benchmarks, showing the practical significance of the approach. The writing is clear, making complex ideas accessible, and the data contribution is valuable, with detailed ablation studies shedding light on the importance of various design choices. Additionally, the open-sourcing of SWE-agent and its dataset contributions provide a useful resource for the research community, encouraging further exploration and validation of the proposed approach.
Weaknesses
1. The process of managing context history within the ACI is not clearly explained, leaving ambiguity about how the system maintains essential information while avoiding unnecessary context.
2. The method for optimizing the ACI configuration through manual inspection and grid search lacks transparency and could be elaborated further.
3. The system's error recovery mechanisms, while improved with linting, may still struggle with repeated failed edits, indicating a potential area for further enhancement.
4. The ACI seems to only support a limited number of tools -- how to expand it to other more advanced and useful tools are unclear.
Questions
1. How does the ACI manage context history to maintain essential information while avoiding unnecessary context? Note that the context length would be a bottleneck for many open-source LLMs.
2. How does the system handle scenarios where the LM encounters repeated failed edits despite the linter's intervention?
3. It seems that SWE-Agent is not a SOTA framework for SWE-bench. I am curious what the authors think about the recent SOTA approaches, and what would be the most valuable and promising directions for the next-gen of SWE-agent?