AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


FixAgent: 基于多 Agent 交互的自动 debug 应用框架
发布日期:2024-10-17 17:09:39 浏览次数: 1634 来源:AI 搜索引擎


本文是由香港中文大学、伊利诺伊大学联合发表。该文提出的 FixAgent 框架通过 LLM 代理的协同作用的方式,能够一站式完成漏洞的定位、修复和分析。有效提升模型 20% debug 能力。
FixAgent: A Unified Debugging Approach via LLM-Based Multi-Agent Synergy
FixAgent: 基于多 Agent 交互的自动 debug 应用框架

论文地址:https://arxiv.org/pdf/2404.17153

摘要

目前,大语言模型(LLM)在自动化调试领域展现出了显著的潜力。尽管如此,传统调试工具以及基于 LLM 的调试工具仍面临三个主要的挑战:
1. 故障定位的不准确会影响后续的修复工作;
2. 在处理复杂的逻辑错误方面存在不足;
3. 忽略了程序的上下文信息。 
针对这些挑战,本文提出了一个名为 FixAgent 的创新自动化调试框架,该框架通过 LLM 代理的协同作用,实现了自动化的bug定位、修复和分析。

核心内容

FixAgent 架构

下图是 FixAgent 的整体架构图。

FixAgent 的核心系统架构由三名专业的 Agent 组成,各自负责不同的任务:一个专注于错误定位,一个负责生成补丁,还有一个专门负责修复后的审查工作。

除此之外,还有一个名为 Agent Crafter 的特别单元,它的任务是创建超越传统手动测试集的测试案例,以此来防止发生过度拟合的问题。如果检测到生成的补丁不可行或存在问题,系统会通过收集失败信息的反馈机制,重新启动修复流程。
FixAgent 三个关键的核心技术组件
1. 高效的多 Agent 协同工作

该框架首先设计了两个专业的 LLM 代理,分别担任 "错误定位专家" 和 "补丁生成专家" 的角色。随后,引入了第三个 LLM 代理,负责对错误和修复方案进行深入分析。每个代理都采用了"小黄鸭调试法",以确保其工作过程得到详尽的解释。

这种协同机制不仅能够在错误位置未知的情况下提供带有详细解释的程序修复方案,还能弥补错误定位器可能存在的不足。例如,它能够修复那些超出定位器识别范围的代码语句。

2. 中间变量监控

FixAgent 通过引导每个 Agent 在错误程序的关键节点监控关键变量,从而实现对程序的深入分析。此过程详细讨论了如何通过这种监控来指导 FixAgent 完成其任务。

这种设计的优势在于它允许代理按照逻辑执行路径逐步分析代码,从而提供更精确的错误解释。

3. 构建上下文联系

通过分析软件本身及其依赖项来构建代码段的背景信息,并将错误信息与代码一同传递给 FixAgent。软件环境通常涵盖以下要素:功能概述、输入输出及其样本、变量的可见范围等。

本文鼓励 Agent 在诊断错误时,全面考虑这些背景信息,以便更准确地把握错误发生的根源。

多 Agent 协作机制

故障定位 Agent:它可以指出缺失的语句,并在 buggy 程序中标记它们,例如 “





中间变量监控

FixAgent 引导每个代理专注于失败的测试案例,追踪程序中关键的中间变量,并将其与预期结果进行比较。每个代理都必须在回复中清楚地展示其追踪中间变量的步骤,并阐明这一过程如何有助于形成答案。这种设计灵感来源于 “小黄鸭调试法”,即通过解释代码来加深对代码调试的理解。

此外,这种设计还增强了 LLM 决策过程的透明度,允许开发者观察到代理推理答案的完整路径,为开发者与AI之间的互动提供了更多信息。

构建上下文联系

在构建程序的上下文理解时,FixAgent 特别关注两个核心要素:需求和依赖

对于文档资料较为完善的程序代码,FixAgent 会利用程序的功能描述、输入/输出规范以及精度要求等信息。如果程序实现了一个通用算法,但缺乏明确的文档说明,FixAgent 将使用一个通用的大语言模型(不一定是 FixAgent 本身)根据算法的名称来生成算法的描述,以此作为算法需求的文档。

接下来,FixAgent会分析出错程序的依赖项,并提取出相关的依赖文件代码。这些提取出的代码会被放置在程序代码之前,这样做可以确保 LLM 能够首先处理依赖代码,然后再处理出错的程序代码,从而提高处理的效率。

总结

FixAgent 框架的产生标志着在自动化调试领域迈出了重要的一步。它是首次提出了一个基于 LLM 代理协同工作的统一调试框架。它能够以端到端的方式执行故障定位、补丁生成和错误分析。

本文洞悉到 LLM 可以从软件开发者广泛认可的软件工程原则中获益,因此,本文采纳了橡皮鸭调试法,即通过详细解释代码来促进 LLM 模型的理解,基于此原则,本文设计了新的策略,以激发LLM的调试潜力,并克服了以往的挑战。

在两个广泛使用的基准数据集上的评估显示,FixAgent 在性能上超越了现有的自动化程序修复(APR)工具和基于 LLM 的解决方案。

此外,本文还进行了额外的实验,这些实验采用了最近收集的数据,以避免数据泄露的问题,进一步证明了 FixAgent 框架在调试任务上的泛化能力和有效性




53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询