跳转至

Ambig-SWE: Interactive Agents to Overcome Underspecificity in Software Engineering

会议: ICLR 2026
arXiv: 2502.13069
代码: https://github.com/sani903/InteractiveSWEAgents
领域: AI安全
关键词: underspecification, interactive agent, SWE-Bench, clarification, software engineering

一句话总结

构建 Ambig-SWE(基于 SWE-Bench Verified 的欠指定变体),系统评估 LLM 编程 agent 在三个维度上的交互能力——检测欠指定、提出澄清问题、利用交互信息——发现交互可将欠指定场景下的解决率提升最高 74%,但模型默认非交互行为且难以区分指定充分/不足的指令。

研究背景与动机

  1. 领域现状:LLM agent 在软件工程中被广泛部署(如 SWE-Bench 上的 OpenHands),但用户指令经常欠指定。人类开发者遇到信息不足时会主动询问,而 AI agent 则直接假设并继续执行。
  2. 现有痛点:(1) 欠指定指令导致错误输出、安全风险和计算资源浪费;(2) 现有关于欠指定的研究只关注缺少单一细节,而真实软件工程任务涉及多个相互依赖的信息缺口;(3) LLM 默认非交互行为——即使面对严重信息不足也不会主动询问。
  3. 核心矛盾:交互能有效恢复因欠指定损失的性能(最高 74%),但模型不知道什么时候该交互、该问什么、如何利用获得的信息。
  4. 本文要解决什么? 系统评估和量化 LLM agent 处理欠指定指令的能力,分解为可独立改进的原子能力。
  5. 切入角度:在 SWE-Bench Verified 上构建欠指定变体,设计三种评估设置(Full/Hidden/Interaction),用 GPT-4o 模拟用户。
  6. 核心idea一句话:将欠指定处理分解为"检测-提问-利用"三步,用交互实验量化每步的能力和改进空间。

方法详解

整体框架

三种评估设置:(1) Full——完整 GitHub issue,不交互;(2) Hidden——欠指定版本(GPT-4o 摘要),不交互;(3) Interaction——欠指定版本,可与持有完整信息的 GPT-4o 代理人交互。在 OpenHands 框架下测试 6 个模型。

关键设计

  1. 三维评估分解:
  2. RQ1: 交互效果——比较 Hidden vs Interaction vs Full 的解决率,量化交互的恢复能力
  3. RQ2: 欠指定检测——随机给模型 Full 或 Hidden 输入,看模型是否能区分并选择交互(测准确率/FPR/FNR)
  4. RQ3: 问题质量——分析模型提出的澄清问题是否有针对性、是否获取了关键信息

  5. 用户代理人设计:

  6. GPT-4o 持有完整 issue,仅回答所持信息中明确存在的内容
  7. 若被问到超出所持信息的内容,回答"I don't have that information"
  8. 保守设计——隔离 agent 的信息获取能力,避免代理人幻觉

  9. 交互鼓励梯度:

  10. 三级 prompt:Neutral(可以问)→ Moderate(仔细检查信息完整性)→ Strong(提问对成功至关重要)
  11. 测试模型在不同鼓励强度下的行为变化

损失函数 / 训练策略

N/A(评估论文,不训练模型)

实验关键数据

主实验(解决率 %)

模型 Hidden Interaction Full 恢复率
Claude S4 49.0 52.4 58.8 89%
Claude S3.5 27.3 35.0 43.8 ~80%
Qwen3 Coder 45.6 53.6 59.2 ~85%
Haiku 3.5 13.0 20.8 26.0 ~80%
Deepseek-v2 2.0 7.2 12.2 59%
Llama 70B 1.4 3.6 6.6 54%

欠指定检测(Strong prompt)

模型 Accuracy FPR↓ FNR↓
Claude S4 0.89 0.03 0.18
Claude S3.5 0.76 0.36 0.10
Qwen3 Coder 0.50 0.00 1.00

关键发现

  • Qwen3 Coder FNR=1.0:即使在 Strong prompt 下也从不主动交互——完全忽略欠指定!遵循固定的 SWE-Bench 解题协议
  • 交互最高可提升 74%(Hidden→Interaction),但仍明显低于 Full——说明模型利用交互信息的能力有限
  • 信息类型分析:获取导航信息(文件路径)对弱模型帮助最大,对强模型帮助有限(因为它们自己能定位代码)
  • 模型规模/编码能力 ≠ 交互能力——Haiku(小模型)的信息利用率与 Sonnet 3.5 相当
  • Claude S4 在 Hidden 场景下大量探索代码库弥补信息不足(平均 65 步),交互时增加到 75 步——交互增加了效果但不增加效率

亮点与洞察

  • "检测-提问-利用"的分解框架:将模糊的"交互能力"分解为可独立评估和改进的原子技能,方法论价值高
  • 揭示了训练范式的缺陷:当前模型训练优化任务完成率,不优化"什么时候该问"——导致默认非交互行为
  • Qwen3 Coder 的刻板行为:即使收到用户回答的信息也按固定协议重新探索——说明模型不真正理解交互的目的

局限性 / 可改进方向

  • 欠指定版本由 GPT-4o 生成,可能比真实欠指定用户 issue 更"干净"
  • Interaction 设置中代理人是 GPT-4o,不一定反映真实用户行为
  • 仅在 SWE-Bench(Python 仓库)上评估,其他语言/领域未覆盖
  • 未提出改进模型交互能力的训练方法,仅诊断

相关工作与启发

  • vs AQuA VQA: AQuA 研究 VLM 对视觉歧义的策略选择,Ambig-SWE 研究编码 agent 对信息缺失的交互能力——不同模态但同一主题(如何处理不确定性)
  • vs SWE-Bench: SWE-Bench 假设指令完整,Ambig-SWE 专门测试指令不完整时的行为——更贴近真实场景
  • vs ClearVQA: ClearVQA 训练模型"二元选择"(答/问),Ambig-SWE 分解为三步且在复杂软件工程场景中评估

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次系统评估 SWE agent 的交互能力,三步分解框架新颖
  • 实验充分度: ⭐⭐⭐⭐⭐ 6 个模型、3 种设置、3 级 prompt、多维分析
  • 写作质量: ⭐⭐⭐⭐⭐ 实验设计严谨,分析深入
  • 价值: ⭐⭐⭐⭐⭐ 对 agent 交互能力的重要诊断,直接指导未来训练方向