AGILE CODER: Dynamic Collaborative Agents for Software Development based on Agile Methodology
基本信息 标题: AGILE CODER: Dynamic Collaborative Agents for Software Development based on Agile Methodology 作者: Minh Huynh Nguyen、Thang Chau Phan、Phong X. Nguyen、Nghi D. Q. Bui(通讯作者) 作者单位: FPT Software AI Center、Fulbright University 期刊/会议: FORGE(ICSE) 2025 (CCF-A, EI) 发表年份: 2025.07.02 DOI: 10.1109/Forge66646.2025.00026 开源地址: Github 关键词: Software Development, Multi-Agent System, Large Language Models 研究问题 (Research Questions) 解决仓库级别的代码生成问题 研究背景 (Background) 专业软件开发的敏捷方法 敏捷源自敏捷宣言 [agi, 2001],是一种灵活的软件开发方法,强调交付最终产品的实用主义。它促进持续交付、客户协作以及快速适应不断变化的需求。与瀑布模型等传统线性方法不同,敏捷通过Sprint(短周期)采用迭代开发,可以快速调整和频繁重新评估项目目标。这种迭代方法增强了与客户需求的一致性,并促进团队内部的开放沟通和共同责任。敏捷的适应性使其对于管理需求可能随时间变化的复杂项目特别有效。通过将敏捷原则与软件开发中的协作代理相结合,我们为设计多代理系统提供了一种新颖的视角。 仓库级别的代码理解和生成 在存储库级别生成代码是现实世界软件工程任务中大型语言模型(llm)面临的重大挑战。现实世界的代码库是复杂的,具有相互连接的模块,并且随着上下文大小的增加,llm面临限制。这导致了选择相关上下文的研究并优化其使用。软件智能体,如ChatDev和MetaGPT,旨在生成功能齐全的可执行软件,包括各种文件,类和模块,而不仅仅是像HumanEval [Chen等人,2021]或MBPP [Austin等人,2021b]中简单任务的解决方案。这要求代理在生成代码或修复错误时理解所有现有上下文,包括文件、类、函数和库。然而,在以前的研究中,对全面的库级代码理解和生成的需求经常被忽视。 核心贡献 (Key Contributions) 引入了AgileCoder,是一种受到敏捷开发启发的新型多智能体软件开发框架,强调智能体之间的有效沟通和增量开发。 引入了动态代码图生成器(DCGG)将静态分析方法整合到多智能体工作流中,该生成起可以动态生成代码依赖图(CDG)。这个图会记录代码库的演变过程中各个代码组件之间的依赖关系,为智能体提供了一个可靠的来源以获取相关上下文信息,从而提高了生成工程的质量。评估结果显示,使用了CDG获取到的上下文信息,性能表现显著增长。 实验证明AgileCoder在HumanEval、MAPP上达到了SOTA,并提出了ProjectDev作为软件开发的Benchmark。在这个框架上,超越了MetaGPT和ChatDev。 方法 (Methodology) 上图呈现了AgileCoder的总体框架,其中包括多个智能体:产品经理(PM, Product Manager)、敏捷开发负责人(SM, Scrum Master)、开发人员(Dev, Developer)、高级开发人员(SenDev, Senior Developer)和 测试人员(Tester), 各个智能体通过敏捷开发方式进行协作开发。开发过程包括执行环境(Execution Environment)以在测试期间运行代码,并有动态代码生成器(DCGG)在代码更新时动态生成代码依赖图(Code Dependency Graph)。执行环境(Execution Environment)为智能体提供回溯以进行代码优化,而DCGG使智能体能够获取相关上下文以准确地生成和修正代码。...