← 最新论文
🤖 AI

TraceCoder: A Trace-Driven Multi-Agent Framework for Automated Debugging of LLM-Generated Code

TraceCoder 是一个追踪驱动的多智能体框架,它通过利用细粒度的运行时追踪进行因果分析、利用历史教训学习机制来避免重复性失败,以及利用回滚策略来确保迭代改进,增强了对 LLM 生成代码的自动化调试,并相比现有基准实现了在准确性和成本效率方面的显著提升。

原作者: Jiangping Huang, Wenguang Ye, Weisong Sun, Jian Zhang, Mingyue Zhang, Yang Liu

发布于 2026-02-09
📖 1 分钟阅读☕ 轻松阅读

原作者: Jiangping Huang, Wenguang Ye, Weisong Sun, Jian Zhang, Mingyue Zhang, Yang Liu

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你要求一个非常有才华但偶尔会犯糊涂的机器人为你编写一段计算机代码。有时,机器人会写对;但经常是在处理棘手任务时,它写的代码表面看起来很完美,却隐藏着微妙的、隐蔽的漏洞(bugs),导致程序运行失败。

目前的修复这些漏洞的方法就像一位只说“错了”并给机器人一张白纸让其重试的老师。机器人不断猜测、失败、再次被告知“错了”,然后一遍又一遍地重复同样的错误尝试。它陷入了挫败感的死循环。

TraceCoder 是一个旨在打破这一循环的新系统。不要把它看作一个单一的机器人,而要把它看作一个由三名专家侦探组成的团队在共同破解谜题,外加一个智能笔记本和一个安全网

以下是这个团队的工作方式,我们使用简单的类比来解释:

1. 侦探团队(多智能体框架)

与其让一个机器人盲目猜测,TraceCoder 将工作拆分为三个专业角色:

  • 插桩智能体(“间谍”):
    想象这段代码是一个黑匣子。间谍不仅仅是在机器坏掉时才等待,它会在代码运行时,秘密地在机器内部安装微型摄像头和麦克风。这些“摄像头”(称为诊断探针)会记录代码运行的每一步,就像飞机的飞行记录仪一样。这让团队能够清晰地观察内部的混乱情况,而不仅仅是看到最终的崩溃结果。

  • 分析智能体(“夏洛克·福尔摩斯”):
    这个智能体负责观察间谍提供的素材。它看到的不仅仅是“失败了”,它能看到“为什么失败”。“啊,我看到代码在这里尝试除以零,”或者“它误以为数字 0 是正数。”至关重要的是,它还会检查智能笔记本(见下文),以确保不会犯同样的错误。它负责找出问题的根本原因

  • 修复智能体(“机械师”):
    一旦分析智能体说:“问题就在这里,这是修复方案,”机械师就开始动手了。它会仔细修改代码以符合方案。它不只是在瞎猜,而是遵循侦探团队制定的特定蓝图进行操作。

2. 智能笔记本(历史教训学习机制)

当前 AI 面临的最大问题之一是记忆力短暂。如果它尝试修复一个漏洞但失败了,它往往会忘记失败的原因,并再次尝试完全相同的错误修复方法。

TraceCoder 拥有一个智能笔记本。每当团队尝试修复某项内容却失败时,他们会记录下:

  • 我们尝试了什么。
  • 为什么行不通。
  • 我们从这次失败中学到了什么。

在尝试新的修复之前,团队会阅读笔记本。这防止了他们陷入“失败循环”,并帮助他们避免重复过去的错误。这就像一名学生通过复习以前的试卷,来确保自己不会在同一个问题上再犯错。

3. 安全网(回滚机制)

有时候,一次修复尝试可能会让情况变得更糟。也许机械师修复了一个漏洞,却不小心破坏了原本运行正常的其他部分。这被称为“性能退化”。

TraceCoder 拥有一套安全网。它会不断保留一份“目前为止最好的版本”的副本。如果新的尝试使代码变差或没有改进,系统会立即按下“撤销”键,恢复到上一个良好的版本。这确保了团队永远不会陷入恶性循环;他们始终保持在至少不低于起点的路径上。

结果:为什么这很重要

论文在几个困难的代码挑战上测试了这个系统。以下是他们的发现:

  • 它的准确性更高: TraceCoder 修复的漏洞数量显著高于其他方法。在一些困难的测试中,与现有的最佳工具相比,它将成功率提高了 34% 以上。
  • 它终结了“失败循环”: 通过使用间谍(观察代码内部)和笔记本(学习历史经验),它避免了困扰其他系统的重复猜测。
  • 它能处理复杂的逻辑: 它特别擅长修复那些仅通过查看最终错误信息很难发现的微妙逻辑错误(例如认为 0 是一个正数)。

总而言之: TraceCoder 将游戏规则从“猜测并检查”转变为“观察、学习并修复”。通过赋予 AI 一种观察自身代码内部的能力、一种记住过去错误的方式,以及一个防止倒退的安全网,它表现得更像是一位正在调试复杂问题的资深人类程序员。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →