Dialogue SWE-Bench: A Benchmark for Dialogue-Driven Coding Agents
本文介绍了 Dialogue SWE-Bench,这是一个全新的基准测试和基于人格的角色用户模拟器,用于评估编程智能体通过对话解决软件工程问题的能力,并揭示了对话能力是一个独立的性能维度,并不一定与编程模型的强度相关。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下你正在尝试修理一个坏掉的面包机。
旧方法(当前的基准测试):
现在,当我们测试 AI 编程助手时,我们的行为就像是一个机器人给另一个机器人一份完美的、长达 10 页的手册。手册上写着:“面包机坏了,因为加热元件松动了。请将其拧紧。” AI 阅读手册,修复面包机,然后我们给它一颗金星。
问题在于,现实中的人类不会那样说话。我们没有完美的手册。我们会说:“嘿,我的面包机表现得很奇怪,”然后 AI 必须询问:“它在发出声音吗?在冒烟吗?按下杠杆时会发生什么?”
新方法(Dialogue-SWEBench):
这篇论文引入了一个新的测试场,名为 Dialogue-SWEBench。他们不再给 AI 一份完美的手册,而是建立了一个模拟环境,让 AI 必须通过与一个“幽灵用户”对话来解决一个真实的软件问题。
以下是他们构建它的方式:
1. “幽灵用户”模拟器
研究人员创建了一个特殊的 AI 程序来扮演人类用户的角色。
- 人格设定: 这个幽灵用户拥有特定的性格(比如“焦虑且谨慎”或“懒惰且缺乏耐心”)。
- 知识储备: 幽灵知道关于这个 Bug 的整个故事(就像一份秘密剧本),但它被严格禁止一次性把所有信息都告诉 AI。它必须只在被询问时才透露细节。
- 自我纠错: 如果幽灵用户不小心说了一些不可能发生的话(比如“我刚刚在手机上运行了代码”),模拟器会捕捉到这一点,并对自己说“哎呀,我不能那样做”,然后重写消息以确保真实性。这确保了测试的公平性。
2. 测试流程
在这种新的测试中,AI 编程代理不能仅仅查看一个文件并修复它。它必须:
- 倾听用户模糊的抱怨(“我的代码崩溃了!”)。
- 提出澄清性的问题(“你看到了什么错误信息?”)。
- 获取答案。
- 修复代码。
- 向用户验证修复结果。
如果 AI 试图在不提问的情况下猜测答案,或者问了太多愚蠢的问题,它就会失败。
3. 大惊喜
研究人员在这一新的“聊天”环境中测试了目前最智能的编程 AI(如 GPT-5 等)。他们发现了一个令人惊讶的事实:
成为一名优秀的程序员并不自动意味着你成为一名优秀的对话者。
- “大脑袋”陷阱: 最庞大、最强大的模型(即“大脑袋”)在对话部分表现得反而更差。它们倾向于提出过多不必要的疑问,或者在聊天流程中感到困惑。
- “小而精”的赢家: 一个稍小的模型(GPT-5-mini)在对话方面做得更好,能以更低的成本解决更多问题。
- 秘诀所在: 研究人员构建了一种新型的代理,它使用一种“模式”(Schema,可以理解为清单或心理白板)。在 AI 聊天过程中,它会填写其清单上的方框:什么是 Bug?预期结果是什么?还缺少什么信息?
- 这种“模式引导型”代理是解决问题的最佳选择,因为它在对话过程中保持了条理性,而不是仅仅靠猜测。
4. 结论
论文得出结论,我们一直把编程代理当作在实验室里独自工作的机器人进行测试。但在现实世界中,它们是与人类协作的队友。
- 编程能力 ≠ 聊天能力: 一个模型可以精通编写代码,但在弄清楚人类真正需求方面却表现糟糕。
- 解决方案: 为了制造更好的编程助手,我们需要训练它们成为更好的倾听者和提问者,而不只是更好的编码者。
简而言之: 这篇论文构建了一个“聊天模拟器”,以测试编程 AI 是否真的能通过与人类交流来修复 Bug。他们发现,最大的、最昂贵的模型并不总是最好的对话者,而给 AI 一个心理清单能极大地帮助它解决问题。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。