- 简介故障定位(FL)是调试过程中的一个重要步骤。由于大型语言模型(LLMs)具有强大的代码理解能力,因此近期它们在代码中诊断错误方面表现出了很好的性能。然而,由于LLMs在处理长上下文方面的性能受限,现有的基于LLMs的故障定位仅限于在小的代码范围内(即方法或类)定位错误,难以诊断大型代码范围(即整个软件系统)的错误。为了解决这个限制,本文提出了AgentFL,这是一个基于ChatGPT的多智能体系统,用于自动化故障定位。通过模拟人类开发者的行为,AgentFL将FL任务建模为一个三步过程,涉及理解、导航和确认。在每个步骤中,AgentFL使用具有不同专业知识的代理,每个代理使用不同的工具来处理特定的任务。特别地,我们采用了一系列辅助策略,如测试行为跟踪、文档引导搜索和多轮对话,以克服每个步骤中的挑战。在广泛使用的Defects4J-V1.2.0基准测试上的评估显示,AgentFL可以在Top-1内定位395个错误中的157个错误,优于其他基于LLM的方法,并展示了与最先进的基于学习的技术的互补性。此外,我们通过消融研究确认了AgentFL中组件的必要性,并通过用户研究证明了AgentFL的可用性。最后,成本分析显示,AgentFL平均只需花费0.074美元和97秒钟来处理单个错误。
- 图表
- 解决问题论文旨在解决代码中的缺陷定位问题,特别是针对大型代码范围的定位问题。当前基于大语言模型的方法仅适用于小范围的代码定位,需要更有效的方法来处理大规模代码。
- 关键思路论文提出了一种基于多智能体系统的方法,使用ChatGPT模型来模拟人类开发者的行为,将缺陷定位任务分为三个步骤:理解、导航和确认。在每个步骤中,使用具有不同专业知识的代理来处理特定任务,采用辅助策略来克服挑战。
- 其它亮点论文在Defects4J-V1.2.0基准测试上进行了评估,结果表明AgentFL可以在Top-1中定位395个漏洞中的157个漏洞,优于其他基于大语言模型的方法,并展示了与最先进的基于学习的技术的互补性。此外,论文进行了消融研究以证明AgentFL的不可或缺性,并通过用户研究证明了AgentFL的可用性。最后,成本分析表明AgentFL仅花费平均0.074美元和97秒来处理单个漏洞。
- 近年来,有许多研究致力于使用人工智能技术解决代码缺陷定位问题。例如,基于程序切片和程序依赖关系的技术,以及使用深度学习和大型语言模型的技术。相关的研究包括“Code2Vec:学习程序表示以进行缺陷定位”和“使用神经网络和程序依赖关系进行缺陷定位”。
沙发等你来抢
去评论
评论
沙发等你来抢