SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering
About
Language model (LM) agents are increasingly being used to automate complicated tasks in digital environments. Just as humans benefit from powerful software applications, such as integrated development environments, for complex tasks like software engineering, we posit that LM agents represent a new category of end users with their own needs and abilities, and would benefit from specially-built interfaces to the software they use. We investigate how interface design affects the performance of language model agents. As a result of this exploration, we introduce SWE-agent: a system that facilitates LM agents to autonomously use computers to solve software engineering tasks. SWE-agent's custom agent-computer interface (ACI) significantly enhances an agent's ability to create and edit code files, navigate entire repositories, and execute tests and other programs. We evaluate SWE-agent on SWE-bench and HumanEvalFix, achieving state-of-the-art performance on both with a pass@1 rate of 12.5% and 87.7%, respectively, far exceeding the previous state-of-the-art achieved with non-interactive LMs. Finally, we provide insight on how the design of the ACI can impact agents' behavior and performance.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Terminal task completion | Terminal-bench 2.0 | Pass@134.29 | 43 | |
| Automated Software Engineering | SWE-bench Verified | Resolved Rate66.6 | 39 | |
| Software Engineering | SWE-bench Verified | Pass@184 | 18 | |
| Software Engineering Task Resolution | SWE-bench Verified | Resolution Rate0.388 | 17 | |
| File-level Localization | SWE-Bench-Lite latest (test) | NDCG@177.37 | 16 | |
| Software Engineering Issue Resolution | SWE-Bench Lite | Resolution Rate56.67 | 16 | |
| Function-level Localization | SWE-Bench-Lite latest (test) | NDCG@559.67 | 16 | |
| Module-level Localization | SWE-Bench-Lite latest (test) | NDCG@572.77 | 16 | |
| File-level Code Localization | SWE-Bench Lite | Acc@157.3 | 16 | |
| Function-level Code Localization | SWE-Bench Lite | Acc@545.99 | 16 |