TRIM: Reducing AI-Generated CodeSlop via Agent Trajectory Minimization
本文介绍了 TRIM,一种通过最小化冗长的智能体搜索轨迹来减少“CodeSlop”(即由冗余的智能体搜索轨迹导致的 AI 生成代码中不必要编辑的累积)的算法,该算法在性能退化极小且验证成本仅为现有基准线一半的情况下,将冗余度降低了 17.9%–32.9%。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一个机器人被雇佣来修理各种损坏事物的世界,从漏水的水管到出现故障的计算机程序。这些被称为“AI 编程代理”的机器人正变得越来越擅长它们的工作。它们能够阅读代码、找出问题所在并编写新代码来修复它,而且通常不需要人类在旁指导。但问题在于:虽然这些机器人非常擅长寻找解决方案,但它们却极其不擅长保持整洁。当它们修复一个问题时,往往会留下身后一堆由“如果……会怎样”的实验、半成品想法以及实际上并不需要的临时改动所组成的混乱痕迹。这就像一位厨师终于做出了完美的牛排,却让厨房里到处都是由于尝试和丢弃那些失败菜肴而留下的面粉、蛋壳和焦掉的面包。这种混乱使得最终的结果更难被人类理解、审查和维护安全。科学家们面临的一个重大问题是:我们如何让这些机器人能够在将最终产品交付之前,先清理好自己的烂摊子?
这篇论文引入了一个被称为 CODESLOP 的新问题。你可以把它看作是数字领域的“凌乱厨房”。它是 AI 代理在成功修复漏洞后留下的多余且不必要的代码。作者发现,这些代理在找到可行的解决方案后并不会立即停止;它们保留了所有用于探索过程中的“投机性编辑”和被放弃的假设。随着时间的推移,如果我们任由这些混乱的补丁堆积,我们的软件就会变得臃肿、混乱且难以维护,即便它在技术上仍然可以运行。
为了解决这个问题,研究人员开发了一个名为 TRIM(轨迹引导的冗余识别与最小化)的巧妙工具。TRIM 并不是要求 AI “更加努力”地从头开始编写一段整洁的代码,而是观察机器人的“日记”,即它是如何解决问题的。它追踪机器人的步骤——即它的“轨迹”——以辨别哪些改动仅仅是探索过程的一部分,而哪些才是真正的修复方案。然后,它扮演一个超级高效的编辑角色,在确保修复依然有效的前提下,剪掉那些不必要的成分。
结果非常令人印象深刻。团队在四种不同类型的 AI 编程代理上测试了 TRIM。他们发现,TRIM 可以在不破坏修复效果的情况下,剔除 17.9% 到 32.9% 的不必要代码(即 CODESLOP)。事实上,对于某些漏洞,TRIM 能够将 AI 的补丁精简到看起来与人类开发者编写的代码完全一致。
TRIM 的运作方式非常出色。它不是随机猜测应该删除哪些部分(这既慢又有风险),而是利用机器人步骤的顺序来进行智能推测。它首先尝试移除机器人“实验”过程中的大块内容,只有在这些操作没有破坏修复效果的情况下,才会继续处理更小的碎片。这使得 TRIM 比起那些试图通过暴力破解来最小化代码的旧方法,运行速度快了约 1.9 倍,且成本更低。论文指出,这种方法比仅仅要求 AI “重写你的代码使其更短”要可靠得多,因为后者往往会导致 AI 犯错或制造出更大的混乱。
简而言之,这篇论文表明我们不能仅仅信任 AI 代理能自觉保持整洁。但通过使用像 TRIM 这样的工具,观察它们的创作过程并“修剪脂肪”,我们可以获得两全其美的结果:既拥有 AI 的速度,又拥有人类所需的整洁、易于维护的代码。作者在数千次真实的修复尝试中测量了这些结果,这表明这是一种让我们的软件在未来免于变得臃肿、混乱的切实可行的方法。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。