Resolving Java Code Repository Issues with iSWE Agent

本文提出了专注于 Java 语言的 iSWE Agent,该代理结合了基于规则的静态分析与大模型技术,通过定位和编辑两个子代理实现了在 Java 代码库问题修复上的最先进性能。

Jatin Ganhotra, Sami Serhan, Antonio Abu Nassar, Avraham Shinnar, Ziv Nevo, Martin Hirzel

发布于 Fri, 13 Ma
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文介绍了一个名为 iSWE Agent 的新系统,它的核心任务是自动帮程序员修 Bug 或写新功能

为了让你更容易理解,我们可以把软件开发想象成管理一座巨大的、错综复杂的“代码城市”

1. 背景:为什么需要 iSWE?

  • 现状:以前,大家主要用 AI 助手来修Python(一种比较灵活、像脚本一样的语言)写的代码。这就像 AI 助手非常擅长在“乐高积木”搭建的简易房子里找问题。
  • 问题:但是,世界上很多重要的企业软件(比如银行系统、大型后台)是用 Java 写的。Java 更像是一座结构严谨、规则森严的“摩天大楼”。之前的 AI 助手虽然也能进大楼,但因为不懂大楼的复杂结构和严格规则,经常修不好,甚至把楼修塌了。
  • 目标:这篇论文就是要造一个专门懂 Java 大楼结构的超级维修工。

2. iSWE 是怎么工作的?(双特工模式)

iSWE 不像以前的 AI 那样“一个人包揽所有事”,它把任务拆成了两个特工,像是一个侦探和一个工匠的完美配合:

🕵️‍♂️ 特工一:定位员 (Localization Agent) —— “侦探”

  • 任务:当收到一份“故障报告”(比如“大楼三楼的电梯按钮按了没反应”)时,侦探的任务是找到问题到底出在哪
  • 绝招:它手里拿着Java 专用的“透视眼”工具(基于静态分析技术)。
    • 普通的 AI 可能只能看表面,像盲人摸象。
    • 侦探能直接看到大楼的蓝图、电路图和承重墙。它能迅速分析出:“哦,问题不在按钮本身,而是连接按钮和电梯控制室的两根电线(两个文件)接错了,而且这两根电线在两个不同的楼层。”
  • 特点:它只看不动手(读工具),确保不会在找问题的时候把大楼弄坏。

🔨 特工二:编辑员 (Editing Agent) —— “工匠”

  • 任务:拿到侦探给出的“精确维修点”后,工匠负责动手修改代码
  • 绝招:它使用一种安全的“手术刀”工具
    • 它不会像以前的 AI 那样随意乱写代码(比如直接运行一段脚本,可能把整个系统搞崩)。
    • 它是在一个**隔离的“透明玻璃房”(沙盒容器)**里进行修补。它先试着在玻璃房里把线接好,然后让编译器(大楼的质检员)检查:“这样接对吗?符合建筑规范吗?”
    • 只有当质检员说“完美”时,它才把修改正式应用到主大楼里。

3. 为什么它比以前的厉害?(核心创新)

以前的 AI 修 Java 代码,就像让一个只会修乐高的人去修摩天大楼,他只能凭感觉乱猜,或者试图用通用的工具(比如命令行)去硬撬,效率低且危险。

iSWE 的厉害之处在于:

  1. 懂行:它不是通用的,而是专门为 Java 定制的。它知道 Java 的“建筑规范”(类型系统、面向对象),所以它用的工具是专门针对 Java 设计的“透视眼”和“手术刀”。
  2. 安全:它大部分时间都在“只读”模式下工作,只有在最后修补时才在隔离区操作,绝不会意外把大楼拆了
  3. 省钱:因为它更聪明,不需要像其他 AI 那样反复试错(比如问 100 次“这里对吗?”),它往往几次就能搞定。论文数据显示,它比竞争对手省了 2 到 3 倍的“咨询费”(API 调用成本)。

4. 成果如何?

研究人员在两个著名的“代码维修考试”(Multi-SWE-bench 和 SWE-PolyBench)的 Java 部分进行了测试。

  • 成绩:iSWE 在 Java 修 Bug 的排行榜上名列前茅,甚至拿到了第一。
  • 性价比:它不仅修得好,而且花得少。用同样的 AI 大模型,iSWE 能修好更多的 Bug,但花费的钱却只有别人的一半甚至更少。

总结

简单来说,iSWE 就是一个给 Java 代码大楼量身定制的“智能维修团队”。它不再盲目地乱猜,而是先派懂结构的侦探精准定位,再派守规矩的工匠在安全区修补。

这篇论文告诉我们:在解决复杂的企业级软件问题时,“懂行”的专用工具 + 严谨的流程,比单纯依赖“大力出奇迹”的通用大模型更有效、更安全、也更省钱。这为未来企业软件的自动化开发迈出了重要的一步。