AgileCoder: Dynamic Collaborative Agents for Software Development based on Agile Methodology

Minh Huynh Nguyen,Thang Phan Chau,Phong X. Nguyen,Nghi D. Q. Bui
2024-07-14
Abstract:Software agents have emerged as promising tools for addressing complex software engineering tasks. Existing works, on the other hand, frequently oversimplify software development workflows, despite the fact that such workflows are typically more complex in the real world. Thus, we propose AgileCoder, a multi agent system that integrates Agile Methodology (AM) into the framework. This system assigns specific AM roles - such as Product Manager, Developer, and Tester to different agents, who then collaboratively develop software based on user inputs. AgileCoder enhances development efficiency by organizing work into sprints, focusing on incrementally developing software through sprints. Additionally, we introduce Dynamic Code Graph Generator, a module that creates a Code Dependency Graph dynamically as updates are made to the codebase. This allows agents to better comprehend the codebase, leading to more precise code generation and modifications throughout the software development process. AgileCoder surpasses existing benchmarks, like ChatDev and MetaGPT, establishing a new standard and showcasing the capabilities of multi agent systems in advanced software engineering environments.
Software Engineering,Artificial Intelligence
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the limitations of existing software development automation tools when dealing with complex software engineering tasks. Specifically: 1. **Simplified Workflow**: Existing automated programming tools based on large - language models (LLMs), such as ChatDev and MetaGPT, usually adopt a simplified waterfall model and cannot reflect the dynamics and iterativeness of software development in the real world. Approximately 70% of professional teams adopt the Agile Methodology (AM), but these tools fail to fully simulate this complex development process. 2. **Code - base - level Understanding and Generation**: Existing tools have difficulties in handling complex and inter - related real - world code bases. When large - language models (LLMs) generate or modify code, they often find it hard to fully understand the context of the entire code base. Especially when facing larger code bases, the context window of LLMs is limited, resulting in information loss or inaccuracy. 3. **Lack of Collaboration Mechanisms**: The role - assignment and collaboration mechanisms of existing multi - agent systems in software development are not perfect enough and it is difficult to effectively simulate the collaboration process among human developers. To solve these problems, the author proposes **AGILE CODER**, which is a multi - agent system framework based on the Agile Methodology, aiming to improve software development automation in the following ways: - **Introducing the Agile Methodology**: AGILE CODER simulates the Agile development workflow, divides the development process into multiple short cycles (sprints), completes specific tasks within each cycle, and makes adjustments and optimizations according to feedback. - **Dynamic Code Dependency Graph Generator (DCGG)**: To address the code - base - level understanding and generation problems, AGILE CODER introduces a module named "Dynamic Code Dependency Graph Generator", which can dynamically generate and update the Code Dependency Graph, helping agents better understand the code structure and perform accurate code generation and repair. - **Multi - agent Collaboration**: AGILE CODER assigns specialized agents to different development roles (such as product managers, developers, senior developers, testers, etc.). These agents complete software development tasks through collaboration, ensuring quality control at each stage and the effective progress of tasks. Through these improvements, AGILE CODER performs excellently in multiple benchmark tests, especially when dealing with complex software development tasks, significantly outperforming existing tools and frameworks.