Phoenix: Safe GitHub Issue Resolution via Multi-Agent LLMs
Phoenix 是一个多智能体 LLM 系统,通过采用七层安全控制和基准感知评估策略,能够安全地将 GitHub issue 从分诊阶段解决至拉取请求创建阶段,在精选的 SWE-bench Lite 切片上实现了 75% 的预言机解决率,同时在真实世界的 issue 上保持了 100% 的正确性保留。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一个规模宏大、繁忙有序的图书馆,名叫 GitHub。这里有数百万人在这座图书馆的书籍上贴着便利贴,请求修复错误、增加新功能或指出错别字。这些便条被称为“issue”(问题)。通常情况下,需要一名人类图书管理员来阅读便条,找到书中的确切页码,弄清楚哪里出了错,重写文本,然后再请求资深图书管理员检查,最后才将其放回书架。这个过程既缓慢又令人疲惫。
Phoenix 是一支由 AI 机器人组成的新型团队,旨在胜任这份工作,但它们遵循一个非常严格的规则:不造成伤害(Do no harm)。
以下是 Phoenix 的工作原理,通过简单的概念进行拆解:
1. 专业化团队(六个智能体)
Phoenix 没有使用一个试图同时处理所有事情的超级聪明机器人(这往往会导致错误),而是使用了一个由六个专业化工人组成的团队,就像一条运转良好的流水线:
- 规划者(The Planner): 阅读便利贴并绘制地图。它决定哪些页面需要修改以及如何修复它们。
- 复现者(The Reproducer,即侦探): 在修复任何内容之前,这个机器人会尝试重现问题。它会说:“好吧,如果我执行 X,书会坏掉吗?”如果它能证明书确实坏了,它就会继续;如果不能,它就会跳过这一步,以免团队陷入僵局。
- 编码者(The Coder): 编写者。它根据规划者的地图,实际重写页面上的文本。
- 测试者(The Tester): 质量检查员。它通过一台机器运行这本书,以观察新的文本是否会导致新的错误。
- 故障分析师(The Failure Analyst): 医生。如果测试者发现了新错误,这个机器人会诊断出发生错误的原因,并告诉编码者如何修复。他们有两次尝试的机会;如果失败两次,他们就会停止并请求人类帮助。
- PR 智能体(The PR Agent): 传递者。一旦修复准备就绪,它会将所有内容打包,交给人类图书管理员进行最终审批。
2. “安全网”(七层保护措施)
论文强调,如果 AI 只是开始随机重写书籍,可能会带来危险。Phoenix 设有七个“安全卫士”来防止灾难:
- 围栏(The Fence): 它不会让机器人写到图书馆围墙之外(防止它们删除不该触碰的文件)。
- 身份卡(The ID Badge): 它会检查机器人是否持有有效的钥匙(token),以免它们在工作中途被锁在外面。
- 清理小组(The Clean-Up Crew): 它会在将便利贴展示给机器人之前,剔除其中杂乱、令人困惑的部分,以免它们被糟糕的格式搞混。
- “禁区”(The "No-Go" Zone): 它拒绝触碰图书馆的安全系统文件(工作流文件),因为改动这些文件可能会把所有人锁在外面。
- 停止按钮(The Stop Button): 如果机器人在循环中卡住或不断重复同样的错误,系统会直接切断电源。
- 单人作业(The Solo Worker): 一次只处理一本书,以防止机器人之间互相碰撞。
- 新鲜密钥(The Fresh Key): 它会自动在身份卡过期前进行刷新,这样工作就不会因为超时而中断。
3. “前后对比”测试(基准意识)
这是 Phoenix 最聪明的技巧。有时,图书馆的书在机器人动手之前就已经坏了。
- 旧方法: 机器人修复了一个错别字,但书仍然测试失败,因为书原本就是坏的。机器人会因此被责怪。
- Phoenix 方法: 在机器人做出任何更改之前,它会对书的当前状态拍摄一张“快照”。在机器人做出更改后,它会将新状态与快照进行对比。
- 如果书原本就是坏的,且修改后依然是坏的(但没有引入新的错误),Phoenix 会说:“成功!我们没有让情况变得更糟。”
- 如果书原本是正常的,现在却坏了,Phoenix 会说:“停止!我们引入了回归错误(regression)。”
4. 结果显示
研究人员通过两种方式测试了 Phoenix:
- 练习赛(SWE-bench Lite): 他们给了 Phoenix 24 个特定的、预定义的难题。Phoenix 完美地解决了其中的 75%,且没有破坏任何原本正常工作的部分。
- 现实世界测试(42 个真实问题): 他们让 Phoenix 在来自 14 个不同真实项目的 42 个实际问题上进行实战演练。
- 安全性: Phoenix 实现了 100% 的“正确性保持”(Correctness Preservation)。这意味着它从未破坏过此前通过测试的内容。它的表现非常安全。
- 成功率: 然而,只有大约一半的修复实际上是正确的修复。另一半是“幻觉”,即机器人把代码写到了错误的地方(比如把维修手册写到了小说专区)。机器人知道如何修复,但有时无法找到问题的确切位置。
核心结论
Phoenix 就像一名非常谨慎、训练有素的学徒图书管理员。它非常擅长不让情况变糟,并且非常擅长遵循严格的流程。然而,如果描述与文件名不完全匹配,它有时会在寻找问题的确切位置时遇到困难。
论文的结论是,对于 AI 在现实世界中的应用,安全性必须优先于速度。Phoenix 证明了,通过使用专门化的智能体团队和严格的安全防护措施,你可以在不意外破坏软件的前提下,实现软件修复的自动化。目前主要需要解决的问题是,如何更好地帮助“规划者”机器人更频繁地找到书中的正确页面。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。