SWE-Shift 是一个面向编码代理的基准,专注于评估它们在 中途环境变化 时的鲁棒性。传统的仓库级别基准假设任务和运行环境在执行期间保持不变,而实际软件开发中,代码、依赖、运行时状态以及需求都会在代理工作时发生变化。
基准从同一份保存的历史和工作区生成两条并行路径:
- Clean continuation:不做任何干预,直接继续执行原任务。
- Shifted continuation:在特定时刻注入与任务相关的更新(如依赖升级、文件修改、会话切换等)。
要在 Shifted 场景中成功,代理必须同时满足三点:
- 完成当前任务;
- 保留仍然有效的已有工作;
- 满足更新后的状态检查和证据检查。
SWE-Shift 包含 120 个场景,覆盖 12 类变化(如工具更换、依赖冲突、运行时状态失效等),每类在 9 个预设干预位置进行评估。我们对 17 种编码代理系统进行了实验,结果显示 Shifted 成功率普遍低于 Clean。例如,GPT-6 Astra 的成功率从 67.35% 降至 24.79%,两者同时成功的配对成功率仅为 20.34%。在工具/会话更换和陈旧证据的场景下,所有系统的配对成功率均为 0%。此外,后期干预位置的配对成功率对不同系统表现不一,有的下降,有的提升。
这些结果表明,即使代理能够在不变任务上取得高成功率,也可能在面对代码、依赖或状态的突发变化时,无法正确保留已有工作、恢复运行状态或刷新证据,从而导致失败。
点评