Generalist Software Engineering Agents to Solve Coding Tasks at Scale
📄 Full Paper
💬 Ask
Large language models (LLMs) have revolutionized software engineering (SE), demonstrating remarkable capabilities in various coding tasks. While recent efforts have produced autonomous software agents based on LLMs for end-to-end development tasks, these systems are typically designed for specific SE tasks. A new paper introduces HYPERAGENT, a novel generalist multi-agent system designed to address a wide spectrum of SE tasks across different programming languages by mimicking human developers’ workflows.
HYPERAGENT comprises four specialized agents: Planner, Navigator, Code Editor, and Executor. The Planner agent acts as the central decision-making unit, while the Navigator searches for relevant code, the Editor modifies the code, and the Executor verifies the results. Each agent is designed to manage processes with varying levels of complexity, requiring different degrees of intelligence from LLMs. For example, the Navigator, while less complex, involves the highest token consumption. Conversely, more complex tasks, such as code editing or execution, require more advanced LLM capabilities.
HYPERAGENT achieves state-of-the-art performance on diverse SE tasks. It demonstrates superior performance in code generation at repository scale (RepoExec) and in fault localization and program repair (Defects4J). The authors conducted extensive evaluations across diverse benchmarks to assess HYPERAGENT’s effectiveness in various software engineering tasks, demonstrating its versatility and superior performance.
The paper argues that HYPERAGENT is a significant advancement towards versatile, autonomous agents capable of handling complex, multi-step SE tasks across various domains and languages. It has the potential to transform AI-assisted software development practices.
One of the key contributions of the paper is the introduction of a novel generalist multi-agent system that closely mimics typical software engineering workflows. The system incorporates stages for analysis, planning, feature localization, code editing, and execution/verification, enabling it to handle a broad spectrum of software engineering tasks.
The authors also highlight the importance of designing scalable, efficient, and generalizable software engineering agent systems. This research could pave the way for more versatile AI-assisted development tools that can seamlessly integrate into various stages of the software lifecycle. The authors envision that HYPERAGENT can address real-world software engineering challenges with its ability to adapt to diverse challenges without the need for task-specific fine-tuning.
Chat about this paper
To chat about this paper, you'll need a free Gemini API key from Google AI Studio.
Your API key will be stored securely in your browser's local storage.