
摘要
软件过程模型对于促进软件团队之间的协作与沟通、高效解决复杂开发任务至关重要。受软件工程实践的启发,我们提出了FlowGen——一种基于多个大语言模型(LLM)智能体模拟软件过程模型的代码生成框架。通过为LLM智能体分配对应角色(如需求工程师、架构师、开发者、测试人员和Scrum主管),FlowGen模拟了三种典型过程模型:FlowGenWaterfall、FlowGenTDD与FlowGenScrum,并据此组织各角色间的沟通模式,以映射日常开发活动。这些智能体通过链式思维(chain-of-thought)与提示词组合(prompt composition)进行协同工作,并结合持续自我优化机制,不断提升生成代码的质量。本研究以GPT-3.5作为底层大语言模型,并在四个基准测试集(HumanEval、HumanEval-ET、MBPP和MBPP-ET)上,与多个基线方法(RawGPT、CodeT、Reflexion)进行对比评估。实验结果表明,FlowGenScrum在各项指标上均表现最优,分别在HumanEval、HumanEval-ET、MBPP和MBPP-ET上取得75.2、65.5、82.5和56.7的Pass@1得分(相较RawGPT平均提升15%)。相较于其他先进方法,FlowGenScrum在MBPP基准上优于CodeT,而两者均显著超越Reflexion。尤为值得注意的是,将CodeT集成至FlowGenScrum框架后,实现了统计学意义上的显著性能提升,达到了最高Pass@1分数。进一步分析发现,不同开发活动对代码异味(code smell)和异常处理的影响存在差异:设计阶段与代码评审环节显著增强了异常处理能力,同时有效减少了代码异味。此外,FlowGen系列模型在不同GPT-3.5版本及多种温度(temperature)设置下均保持稳定的Pass@1表现,充分证明了软件过程模型在提升大语言模型生成代码的质量与稳定性方面的有效性。
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| code-generation-on-mbpp | GPT-3.5 Turbo + FlowGenScrum + Test | Accuracy: 83.8±0.6 |