计算机科学>软件工程
标题: AgentFL:将基于LLM的故障定位扩展到项目级上下文
摘要: 故障定位(FL)是调试过程中的一个重要步骤。 凭借强大的代码理解能力,最近的大型语言模型(LLM)在诊断代码中的错误方面表现出了良好的性能。 然而,由于LLM在处理长上下文方面的性能有限,现有的基于LLM的故障定位仍然是在小代码范围(即方法或类)内定位错误,这很难诊断大代码范围(例如整个软件系统)的错误。 为了解决这一局限性,本文提出了一种基于ChatGPT的多智能体故障定位系统AgentFL。 通过模拟人类开发人员的行为,AgentFL将FL任务建模为三步过程,包括理解、导航和确认。 在每一步中,AgentFL都会雇佣具有多样化专业知识的代理,每个代理都会使用不同的工具来处理特定的任务。 特别是,我们采用了一系列辅助策略,如测试行为跟踪、文档引导搜索和多轮对话,以克服每个步骤中的挑战。 对广泛使用的Defects4J-V1.2.0基准测试的评估表明,AgentFL可以定位Top-1中395个bug中的157个,这优于其他基于LLM的方法,并与最先进的基于学习的技术表现出互补性。 此外,我们通过消融研究证实了AgentFL中成分的必要性,并通过用户研究证明了AgentFL的可用性。 最后,成本分析显示AgentFL平均只花费0.074美元和97秒用于单个错误。