最近在大型语言模型(LLMs)上的进展塑造了人工智能智能体的新范式,即基于LLM的智能体。与独立的LLMs相比,基于LLM的智能体通过增强LLMs感知和利用外部资源和工具的能力,极大地扩展了LLMs的多功能性和专业性。到目前为止,基于LLM的智能体已经在软件工程(SE)领域得到了应用,并显示出显著的效果。多个智能体之间的协同作用以及与人类互动相结合,为解决复杂的现实世界中的SE问题带来了更大的希望。在此工作中,我们提出了一个关于用于SE的基于LLM智能体的全面系统的综述。我们收集了106篇论文,并从两个角度对它们进行了分类,即SE视角和智能体视角。此外,我们还讨论了该关键领域中存在的开放性挑战和未来的研究方向。本综述的资料库位于https://github.com/FudanSELab/Agent4SE-Paper-List。 大型语言模型(LLMs)[1] 已经取得了显著的进步,并展示了类似人类智能的潜力。近年来,LLMs 在软件工程(SE)中得到了广泛的应用。如最近的综述所示[2],[3],LLMs 已经被采用并在各种软件开发和维护任务中显示出有希望的表现,例如程序生成[4]–[8],软件测试[9]–[11]和调试[12]–[17]以及程序改进[18]–[20]。人工智能智能体是能够自主感知并对其周围环境采取行动以达成特定目标的人工实体[21]。智能体的概念已经发展了很长时间(例如,早期的智能体是基于符号逻辑或强化学习构建的[22]–[25])。最近,LLMs 的显著进步进一步形成了一种新的AI智能体范式,即基于LLM的智能体,这种智能体利用LLMs作为中心控制单元。不同于独立的LLMs,基于LLM的智能体通过赋予LLMs感知和利用外部资源和工具的能力来扩展其多功能性和专业性,这使得它们可以通过多个智能体之间的协作或涉及人类互动来应对更复杂的真实世界目标。在此工作中,我们提出了一个关于用于SE的基于LLM智能体的全面系统的综述。我们收集了106篇论文,并从两个角度对它们进行了分类,即SE视角和智能体视角。此外,我们还讨论了该领域中的开放性挑战和未来的研究方向。从SE的角度来看,我们分析了基于LLM的智能体如何应用于不同的软件开发和改进活动,包括单个任务(例如需求工程、代码生成、静态代码检查、测试和调试)以及软件开发和改进的端到端过程。从这个角度来看,我们提供了基于LLM的智能体如何处理SE任务的整体概览。从智能体的角度来看,我们专注于设计用于SE的基于LLM智能体的组件。具体而言,我们分析了这些智能体的关键组件,包括规划、记忆、感知和行动。除了基本的智能体构建外,我们还分析了多智能体系统,包括它们的角色、协作机制以及人机协作。从这个角度来看,我们总结了当应用于SE领域时,基于LLM智能体的不同组件的特点。总之,本综述做出了以下贡献:

  • 提供了首次对106篇将基于LLM智能体应用于SE的文献进行全面综述。
  • 分析了现有的基于LLM的智能体是如何从SE和智能体的视角设计和应用于软件开发和维护的。
  • 讨论了在这个关键领域中的研究机会和未来方向。 综述结构。图1总结了本综述的结构。第2节介绍了背景知识,而第3节则呈现了方法论。第4节和第5节分别从SE的视角和智能体的视角展示了相关工作。最后,第6节讨论了潜在的研究机会。

背景与初步介绍

2.1 基于LLM智能体的基本框架 基于LLM的智能体通常由四个关键组件组成:规划、记忆、感知和行动[21]。规划和记忆是LLM控制的大脑的关键部分,它们通过感知和行动组件与环境进行交互以实现特定目标。图2展示了基于LLM的智能体的基本框架。 规划:规划组件将复杂任务分解为多个子任务,并安排这些子任务以达到最终目标。具体来说,智能体可以(i)通过不同的推理策略生成一个无需调整的计划,或者(ii)根据外部反馈(如环境反馈或人工反馈)调整已生成的计划。 记忆:记忆组件记录智能体执行过程中产生的历史思想、动作和环境观察[21][26][27]。基于累积的记忆,智能体可以回顾和利用之前的记录和经验,从而更有效地处理复杂任务。记忆管理(即如何表示记忆)和利用(即如何读写或检索记忆)至关重要,这直接影响到智能体系统的效率和效果。 感知:感知组件接收来自环境的信息,这有助于更好的规划。具体来说,智能体可以感知多模态输入,例如文本输入、视觉输入和听觉输入。 行动:基于大脑做出的规划和决策,行动组件执行具体的行动以与环境互动并影响环境。行动的一个重要机制是控制和利用外部工具,这可以通过访问更多的外部资源来扩展LLMs的固有能力,并将行动空间扩展到不仅仅是文本交互之外。 2.2 高级的基于LLM的智能体系统 多智能体系统:虽然单个智能体系统可以专门解决某一特定任务,但使多个智能体之间进行协作(即多智能体系统)可以进一步解决与不同知识领域相关的更复杂任务。特别地,在一个多智能体系统中,每个智能体都有一个独特的角色和相关专业知识,使其负责不同的任务;此外,智能体之间可以相互沟通,并随着任务的推进共享进度/信息。通常情况下,智能体可以协作(即通过处理不同的子任务来实现最终目标)或竞争(即在同一任务上工作同时进行对抗性的辩论)的方式工作。 人机协调:智能体系统可以进一步结合人类的指令,并在人类指导下继续执行任务。这种人机协调范式有助于更好地与人类偏好对齐并使用人类的专业知识。具体来说,在人机交互期间,人类不仅可以向智能体提供任务要求和对当前任务状态的反馈,还可以与智能体合作共同实现目标。 2.3 相关综述 一般领域的基于LLM的智能体已经被广泛讨论和综述过[21][26][28]–[32]。与这些综述不同,本文综述侧重于专门为软件工程领域设计和应用的基于LLM的智能体。在软件工程领域,已有几项关于LLMs在软件工程中的通用应用的综述或文献回顾[2][3][10][32][33]。与这些综述不同的是,本文综述特别关注智能体的视角,并且对于基于LLM的智能体在软件工程中的应用更加全面。此外,He等人[34]提出了一篇关于多智能体系统在软件工程中潜在应用和新兴挑战的展望文章。不同于这份展望文章,本文的工作重点是对现有智能体系统(包括单个智能体和多智能体系统)进行全面综述。总的来说,据我们所知,这是第一篇专门针对软件工程领域基于LLM智能体文献的综述。 综述方法论

3.1 综述范围 我们将注意力集中在那些应用基于LLM的智能体来处理SE任务的论文上。以下是术语的具体定义: SE任务:遵循之前关于LLMs在SE中的应用综述[2][3],我们关注整个软件生命周期中的所有SE任务,包括需求工程、软件设计、代码生成、软件质量保证(即静态检查和测试)以及软件改进。 基于LLM的智能体:一个独立的LLM可以作为一个简单的“智能体”工作,因为它可以接受文本输入并产生文本输出,这使得LLMs和基于LLM的智能体之间没有明确界限。然而,这可能会导致过于宽泛的范围,并与现有的关于LLMs在SE中的应用综述[2][3]有大量重叠。基于广泛接受的关于AI智能体的共识,智能体的关键特征在于它们能够自主且迭代地从动态环境中感知反馈并对其采取行动[21]。为了确保从智能体的角度进行更集中的讨论,此综述重点关注不仅将LLMs作为其“大脑”的核心部分,而且还具有迭代与环境互动、实时接收反馈并采取行动能力的基于LLM的智能体。 更具体地说,我们在论文收集过程中应用了以下纳入和排除标准: 纳入标准:如果一篇论文满足以下任何一项标准,则将其纳入我们的综述:(i) 论文提出了一种技术、框架或工具,用于使用基于LLM的智能体解决特定的SE任务;(ii) 论文展示了一种一般的技术、框架或工具,前提是其评估至少包括一个SE任务;(iii) 论文展示了一项对特定SE任务上基于LLM的智能体进行评估的经验研究。 排除标准:如果一篇论文满足以下任何一项标准,则将其排除在我们的综述之外:(i) 论文不涉及任何SE任务;(ii) 论文仅在讨论或未来工作的上下文中讨论基于LLM的智能体,而未将其整合为主要方法的一部分;(iii) 论文仅使用独立的LLM来处理文本输入并生成文本输出,而没有任何与环境的迭代互动。 3.2 论文收集 我们的论文收集过程包含两个步骤:关键词搜索和滚雪球法。 3.2.1 关键词搜索 我们遵循软件工程综述中的既定实践[35]-[39],使用DBLP数据库[40]进行论文收集。近期的研究[39]表明,从其他主要出版物数据库收集的论文通常是DBLP中论文的子集,DBLP涵盖了超过7百万份计算机科学领域的学术会议(超过6,500个)和期刊(1,850个)的出版物[41]。DBLP还包括arXiv[42],这是一个广泛采用的开放获取存储库。我们采用一种在软件工程综述中广泛采用的试错法来确定搜索关键词。最初,所有作者,特别是那些在LLM和SE领域有相关研究经验和出版物的作者,聚在一起建议与我们的范围相关的论文,从而得到一个初步的相关论文集合。随后,前两位作者审阅这些论文的标题、摘要和引言以识别额外的关键词。然后,我们进行头脑风暴会议以扩展和细化我们的搜索字符串,纳入相关术语、同义词和变体。这一过程使我们能够迭代地改进我们的搜索关键词列表。 最终的关键词包括 ("agent" OR "llm" OR "language model") AND ("api" OR "bug" OR "code" OR "coding" OR "debug" OR "defect" OR "deploy" OR "evolution" OR "fault" OR "fix" OR "maintenance" OR "program" OR "refactor" OR "repair" OR "requirement" OR "software" OR "test" OR "verification" OR "vulnerab")。 基于这些关键词,我们在2024年7月1日在DBLP上进行了57次搜索,并获得了10,362条结果。表1显示了通过关键词搜索收集的论文统计数据。前两位作者手动审查每篇论文,以过滤掉不在本次综述范围内的论文。结果,我们通过这一过程确定了67篇相关的论文。 3.2.2 滚雪球法 为了提高我们综述的全面性,我们采用了滚雪球法来识别那些过渡相关的论文并扩展我们的论文收集[35]。具体来说,在2024年7月1日至7月10日期间,我们进行了前后滚雪球法。后向滚雪球法涉及检查每篇收集论文中的参考文献,以识别我们范围内的相关论文;而前向滚雪球法则使用谷歌学术来查找引用这些收集论文的相关论文。这一迭代过程一直持续到不再发现新的相关论文为止。在这个过程中,我们又检索到了另外39篇论文。 3.3 收集论文的统计 如表1所示,我们总共收集了106篇论文用于这次综述。图3展示了截至2024年7月10日随时间累积发表的论文数量。我们观察到该领域研究兴趣的持续增长,突显了此次综述的必要性和相关性。此外,图4显示了论文发表场所的分布情况,涵盖了诸如软件工程、人工智能和人机交互等不同的研究社区。特别是,大多数论文来自arXiv且尚未经过同行评审。这种情况是可以预期的,因为该领域正在兴起并且仍处于快速发展之中。

成为VIP会员查看完整内容
34

相关内容

基于Transformer模型的数据模态转换综述
专知会员服务
33+阅读 · 8月17日
大型语言模型代理的安全与隐私综述
专知会员服务
22+阅读 · 8月5日
大语言模型增强知识表示学习综述
专知会员服务
63+阅读 · 7月2日
《大型语言模型代码生成》综述
专知会员服务
53+阅读 · 6月4日
《高效多模态大型语言模型》综述
专知会员服务
59+阅读 · 5月20日
大型语言模型自动程序修复的系统文献综述
专知会员服务
40+阅读 · 5月5日
基于大型语言模型的游戏智能体综述
专知会员服务
63+阅读 · 4月3日
基于大型语言模型的多智能体:进展与挑战综述
专知会员服务
109+阅读 · 2月6日
《以数据为中心的图学习》综述
专知会员服务
51+阅读 · 2023年10月11日
基于模型的强化学习综述
专知
28+阅读 · 2022年7月13日
综述| 当图神经网络遇上强化学习
图与推荐
29+阅读 · 2022年7月1日
基于Tacotron模型的语音合成实践
深度学习每日摘要
15+阅读 · 2018年12月25日
深度学习与计算机视觉任务应用综述
深度学习与NLP
50+阅读 · 2018年12月18日
大数据分析研究组开源Easy Machine Learning系统
中国科学院网络数据重点实验室
16+阅读 · 2017年6月13日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
37+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
5+阅读 · 2015年12月31日
国家自然科学基金
5+阅读 · 2015年12月31日
国家自然科学基金
24+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
10+阅读 · 2012年12月31日
Arxiv
155+阅读 · 2023年4月20日
A Survey of Large Language Models
Arxiv
397+阅读 · 2023年3月31日
Arxiv
19+阅读 · 2023年3月17日
VIP会员
相关VIP内容
基于Transformer模型的数据模态转换综述
专知会员服务
33+阅读 · 8月17日
大型语言模型代理的安全与隐私综述
专知会员服务
22+阅读 · 8月5日
大语言模型增强知识表示学习综述
专知会员服务
63+阅读 · 7月2日
《大型语言模型代码生成》综述
专知会员服务
53+阅读 · 6月4日
《高效多模态大型语言模型》综述
专知会员服务
59+阅读 · 5月20日
大型语言模型自动程序修复的系统文献综述
专知会员服务
40+阅读 · 5月5日
基于大型语言模型的游戏智能体综述
专知会员服务
63+阅读 · 4月3日
基于大型语言模型的多智能体:进展与挑战综述
专知会员服务
109+阅读 · 2月6日
《以数据为中心的图学习》综述
专知会员服务
51+阅读 · 2023年10月11日
相关资讯
基于模型的强化学习综述
专知
28+阅读 · 2022年7月13日
综述| 当图神经网络遇上强化学习
图与推荐
29+阅读 · 2022年7月1日
基于Tacotron模型的语音合成实践
深度学习每日摘要
15+阅读 · 2018年12月25日
深度学习与计算机视觉任务应用综述
深度学习与NLP
50+阅读 · 2018年12月18日
大数据分析研究组开源Easy Machine Learning系统
中国科学院网络数据重点实验室
16+阅读 · 2017年6月13日
相关基金
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
37+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
5+阅读 · 2015年12月31日
国家自然科学基金
5+阅读 · 2015年12月31日
国家自然科学基金
24+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
10+阅读 · 2012年12月31日
微信扫码咨询专知VIP会员