近年来,随着大型语言模型(LLMs)的快速发展,一种新型的AI智能体——基于LLM的智能体应运而生。这些智能体通过增强LLM的能力,如感知和利用外部资源和工具,显著扩展了LLM的多样性和专业性。在软件工程(SE)领域,基于LLM的智能体已经展现出了显著的成效。
近日,来自复旦大学、南洋理工大学和伊利诺伊大学厄巴纳-香槟分校的研究人员联合发布了一篇全面综述,探讨了基于LLM的智能体在软件工程中的应用。该综述收集了106篇论文,并从软件工程和智能体两个角度对这些论文进行了分类。
从软件工程的角度来看,该综述分析了基于LLM的智能体在软件开发和改进活动中的应用,包括需求工程、代码生成、静态代码检查、测试、调试以及端到端的软件开发和维护等任务。研究结果表明,基于LLM的智能体在处理这些任务时表现出了出色的性能,能够有效地提高软件开发和维护的效率和质量。
然而,基于LLM的智能体在软件工程中的应用也面临着一些挑战。首先,由于软件工程的复杂性和多样性,基于LLM的智能体可能无法完全满足所有需求。其次,基于LLM的智能体在处理大规模代码库和复杂算法时可能存在性能瓶颈。此外,基于LLM的智能体在与人类工程师的协作方面也需要进一步的优化和改进。
从智能体的角度来看,该综述重点关注了基于LLM的智能体的设计和应用。研究结果表明,基于LLM的智能体通常由四个关键组件组成:规划、记忆、感知和行动。这些组件共同构成了智能体的“大脑”,使其能够与环境进行交互并实现特定目标。
此外,该综述还探讨了多智能体系统和人机协作在软件工程中的应用。多智能体系统通过协调多个智能体之间的协作,可以解决更复杂的任务。而人机协作则可以利用人类工程师的经验和专业知识,进一步提高智能体的性能。