SWE-Touch: Benchmarking Coding Agents When Users Touch the Code
Yuqiao Tan, Jinxiang Meng, Fangyu Lei, Minzheng Wang, Shizhu He, Jun Zhao, Kang Liu
cs.SE, cs.AI, cs.CL
2026-08-04
新基准 SWE-Touch 在任务中途注入与修复冲突的用户改动,九个模型平均解决率掉 7.7 个百分点。
仓库级基准(SWE-bench 一族)默认让智能体独占代码库,后来的交互式基准(Ambig-SWE、HiL-Bench、SWE-Interact、SWE-Together)虽引入用户,却只允许发消息。真实开发是共享工作区:同一个仓库、同一批文件、同一份可执行状态。团队对 SWE-chat 真实会话的统计显示,59.0% 的会话存在由用户发起的仓库改动。也就是说,「用户直接改代码」是一条独立且高频的交互通道,却没有任何基准去测它。SWE-Touch 的核心问题是:当用户在任务进行中修改了共享代码库,编程智能体能不能察觉、调和冲突、并重新验证受影响的行为。
框架三部分。其一,挖掘任务关键代码区。对每个任务跑三个不同家族的模型(GPT 5.5、GLM 5.1、MiniMax M2.7),把多条修复轨迹里被读过的行区与被改过的行区分别跨轨迹求交,再按「改优先于读、实现文件优先于测试」选出至多八个关键区。200 个任务里 174 个拿到改区、24 个读区、2 个退化到参考补丁。
其二,构造 Counter-Edit。一个独立的、由 GPT 5.5 驱动的 User Patch Generator 检查关键区周边,产出小而局部合理的统一 diff,只动实现代码。每个候选都要过三态校验:单独打上不通过、参考补丁单独打上通过、两者叠加仍不通过。192 个代码改动里 150 个跑全三态,另 42 个参考补丁打不上去但仍冲突,一并保留。SWE-bench Verified 上的 Counter-Edit 平均只改 7.0 行、1.04 个文件,设计成「像自信的开发者写错的小改」。
其三,注入与对照。运行时监控智能体动作,只要它访问的区域与补丁区重叠就触发注入,默认最多 K=3 次,每次配一句由 GPT-4o 生成的上下文消息。用户人格被设为「校准失准的构建者」:真诚地相信自己的改动正确,态度从协作到坚持逐级加码。作为对照,Co-Edit 用同一框架生成与任务一致的有用局部补丁(单独打上仍不解决)。这套设计是逼智能体做三件事:发现外部改动、把冲突状态和任务要求调和、重新跑相关测试。
九个模型在 SWE-bench Verified(200 任务,每次三跑)上,Counter-Edit 让平均解决率掉 7.7 个百分点,每个模型都为负,幅度从 1.3 到 16.5:
| 模型 | Vanilla | Counter-Edit | Δ | 保留率 |
| Claude Opus 4.8 | 85.2 | 83.3 | -1.8 | 96.0% |
| GPT 5.5 | 80.5 | 79.2 | -1.3 | 95.0% |
| Qwen 3.7 Max | 75.2 | 70.3 | -4.8 | 90.3% |
| GLM 5.1 | 72.7 | 68.3 | -4.3 | 83.3% |
| MiniMax M2.5 | 75.7 | 66.2 | -9.5 | 78.3% |
| Kimi K2.6 | 70.3 | 64.3 | -6.0 | 87.2% |
| DeepSeek V4 Pro | 74.8 | 63.8 | -11.0 | 81.5% |
| MiniMax M2.7 | 76.5 | 62.7 | -13.8 | 78.1% |
| Qwen3-Coder-480B | 57.2 | 40.7 | -16.5 | 60.8% |
两个旗舰最稳;开源中段排名大幅洗牌,M2.7 从第 3 跌到第 8,Qwen 3.7 Max 升到第 3。在 SWE-Bench Pro、DeepSWE(各 25 任务)的长程任务上,退化仍存(均值约 -4.9 与 -3.4)。消融:只发消息影响小且不一致(-2.0 到 +3.0),只静默改代码每个模型都掉(最多 -9.5),七个模型上 Co-Edit 平均仅掉 0.1——证明真正难的是「冲突」而非「被打断」。失败分析里 63.3% 的案例最终保留了用户的冲突代码;「会不会去改掉用户代码」的修订率与性能变化呈 Spearman ρ=0.80 的强相关,Claude Opus 4.8 高达 79.3%,DeepSeek V4 Pro 仅 15.9%。
对每天用 Cursor、Trae、Copilot Workspace 配对编程的人,这是高频场景:你边看边动手改两行,智能体得跟上。论文用数据说明,自主榜单上的高分并不保证协作鲁棒性,几个在 SWE-bench Verified 上成绩不错的开源模型一进共享工作区就大幅退化。选型时除了看 pass rate,还该看「被用户碰过之后还剩多少」。
作者自承三点:只测了一类受控的任务冲突改动,没覆盖部分正确、需求变更、互补编辑等更广的用户行为;区域触发是为可比性而设,真实用户会据智能体实时表现动态干预;这套环境更适合用作训练目标。存疑处:用户人格固定为「永远错且自信」,与真实用户(有时对、有时动无关代码)差距明显;200 任务子集里 8 个退化成纯文本反馈、6.4% 的跑次补丁零次落地,都被保留在评分集中;长程扩展各只 25 任务、两跑,方差偏大;所有评测模型为 2026 年中版本,结论会随模型迭代失效。