SWE-Touch: Benchmarking Coding Agents When Users Touch the Code
一个测量编码智能体在任务进行中被用户直接改动代码时会崩到什么程度的基准
SWE-Touch 是一个评测框架,模拟用户在编码智能体执行任务过程中直接修改代码,而不只是发消息。它会在智能体正在查看的代码附近,注入一个看似合理但与任务目标冲突的假用户修改(Counter-Edit),并在 SWE-bench Verified 及两个更长任务的基准上测量九个模型的反应。结果显示平均解决率下降了7.7个百分点,单独编码能力强并不能保证在这种干扰下依然稳定。
METAL LAB 解读图
SWE-Touch 的注入与评测流程
证据状态已报告实测结果
- 挖掘关键代码区域让三个不同模型(GPT 5.5、GLM 5.1、MiniMax M2.7)各自完成任务,取其轨迹重叠部分找出对解题至关重要的代码区域。
- 生成并验证 Counter-Edit独立的 User Patch Generator 在这些区域附近构造一个看似合理但与任务冲突的修改,并验证它单独或与参考修复合并都无法解决任务。
- 注入共享工作区只要智能体的动作触及目标区域,系统就把这个假修改和带上下文的用户消息注入实时代码库,默认最多注入三次。
- 验证结果并归类失败原因用测试检验最终代码,对失败案例按是否保留冲突代码、错误替换、还是不完整调和等类型进行分类。
他们做了什么
- 现有的编码智能体基准大多让智能体独自工作,或只允许用户通过消息参与,但作者发现已发布的 SWE-chat 对话数据中,有59.0%的会话实际包含用户直接修改代码库的记录。
- SWE-Touch 让三个不同模型(GPT 5.5、GLM 5.1、MiniMax M2.7)各自完成同一任务,再取它们轨迹的重叠部分找出任务关键代码区域,然后用一个独立的 User Patch Generator 在这些区域附近构造一个看似合理但会阻碍任务完成的代码修改。
- 每个候选修改都经过三项验证:假用户修改单独不能解决任务,参考修复方案能解决任务,而两者合并后仍然无法解决——以确保冲突是真实且非平凡的。
- 评测时,一旦智能体的动作触及目标代码区域,系统就会将这个假修改和一条带上下文的用户消息注入代码库,默认最多注入三次,随后观察智能体如何继续应对并用测试检验最终结果。
- 在 SWE-bench Verified 上对九个模型的评测显示,Counter-Edit 条件下平均解决率下降了7.7个百分点,在更长任务的 SWE-Bench Pro 和 DeepSWE 基准上性能下降依然持续。
![Figure 1: Users and agents share a workspace in real coding sessions. (a) A user edit alters the repository state that subsequent agent actions observe and modify. (b) Our analysis of the released SWE-chat data [5] finds that 59.0% of sessions contain repository changes attributed to the user.](https://media.metallab.ai/papers/2608.02499/f0.png)
| Benchmark | Code | User | User | Codebase |
|---|---|---|---|---|
| Repair | Simulator | Messages | Edit | |
| SWE-bench Verified | ✓ | ✗ | ✗ | ✗ |
| Ambig-SWE | ✓ | ✓ | ✓ | ✗ |
| HiL-Bench | ✓ | ✓ | ✓ | ✗ |
| SWE-Interact | ✓ | ✓ | ✓ | ✗ |
| SWE-Together | ✓ | ✓ | ✓ | ✗ |
| SWE-Touch (ours) | ✓ | ✓ | ✓ | ✓ |

| Source | Reference repair | Counter-Edit |
|---|---|---|
| Lines / files | Lines / files | |
| SWE-bench Verified | 13.3 / 1.20 | 7.0 / 1.04 |
| SWE-Bench Pro | 361.0 / 5.44 | 13.0 / 1.40 |
| DeepSWE | 730.2 / 7.24 | 10.8 / 1.52 |
| Vanilla | Counter-Edit | Δ | Retention | Rank | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Model | Resolve | Steps | Tok. (K) | Resolve | Steps | Tok. (K) | Resolve | Steps | (%) | Δ |
| Claude Opus 4.8 | 85.2±1.8 (1) | 24.5 | 367 | 83.3±0.6 (1) | 30.9 | 506 | -1.8 | +6.4 | 96.0 | – |
| GPT 5.5 | 80.5±1.0 (2) | 33.2 | 1,344 | 79.2±0.6 (2) | 31.3 | 1,141 | -1.3 | -1.9 | 95.0 | – |
| GLM 5.1 | 72.7±2.0 (7) | 55.0 | 1,007 | 68.3±0.8 (4) | 64.5 | 1,272 | -4.3 | +9.5 | 83.3 | ↑3 |
| MiniMax M2.7 | 76.5±1.5 (3) | 45.3 | 865 | 62.7±2.4 (8) | 47.7 | 904 | -13.8 | +2.4 | 78.1 | ↓5 |
| MiniMax M2.5 | 75.7±3.3 (4) | 45.1 | 863 | 66.2±1.0 (5) | 47.5 | 908 | -9.5 | +2.4 | 78.3 | ↓1 |
| Qwen 3.7 Max | 75.2±1.0 (5) | 29.9 | 420 | 70.3±0.8 (3) | 31.1 | 424 | -4.8 | +1.2 | 90.3 | ↑2 |
| Qwen3-Coder-480B | 57.2±3.5 (9) | 52.6 | 763 | 40.7±1.0 (9) | 54.6 | 806 | -16.5 | +2.0 | 60.8 | – |
| Kimi K2.6 | 70.3±2.0 (8) | 62.5 | 1,381 | 64.3±3.4 (6) | 62.1 | 1,296 | -6.0 | -0.4 | 87.2 | ↑2 |
| DeepSeek V4 Pro | 74.8±0.8 (6) | 41.9 | 827 | 63.8±1.8 (7) | 46.6 | 954 | -11.0 | +4.7 | 81.5 | ↓1 |

| SWE-Bench Pro | DeepSWE | |||||||
|---|---|---|---|---|---|---|---|---|
| Model | Vanilla | Counter-Edit | Δ Res. | Δ Steps | Vanilla | Counter-Edit | Δ Res. | Δ Steps |
| Claude Opus 4.8 | 68.0 | 68.0 | 0.0 | +7.5 | 56.0 | 46.0 | -10.0 | +9.9 |
| GPT 5.5 | 38.0 | 38.0 | 0.0 | +0.9 | 64.0 | 56.0 | -8.0 | +4.9 |
| GLM 5.1 | 43.1 | 32.8 | -10.3 | +19.1 | 19.4 | 16.8 | -2.5 | +31.4 |
| MiniMax M2.7 | 30.6 | 24.6 | -6.0 | +9.4 | 2.2 | 2.2 | 0.0 | +27.6 |
| MiniMax M2.5 | 32.6 | 24.6 | -8.0 | +20.4 | 0.0 | 0.0 | 0.0 | +33.1 |
| Qwen 3.7 Max | 36.0 | 26.0 | -10.0 | −1.4 | 4.1 | 2.1 | -2.0 | +2.3 |
| Qwen3-Coder-480B | 20.0 | 14.0 | -6.0 | +0.7 | 0.0 | 0.0 | 0.0 | +7.8 |
| Kimi K2.6 | 50.0 | 48.0 | -2.0 | −4.7 | 18.0 | 12.0 | -6.0 | +0.2 |
| DeepSeek V4 Pro | 34.0 | 32.0 | -2.0 | +8.9 | 4.1 | 2.0 | -2.1 | −7.6 |

| Intervention | GPT 5.5 | GLM 5.1 | MiniMax M2.7 | Qwen 3.7 Max | ||||
|---|---|---|---|---|---|---|---|---|
| Resolve | Δ | Resolve | Δ | Resolve | Δ | Resolve | Δ | |
| Vanilla | 81.5 | – | 70.5 | – | 76.5 | – | 74.0 | – |
| Message (K=3) | 79.5 | -2.0 | 73.0 | +2.5 | 76.5 | 0.0 | 77.0 | +3.0 |
| Code edit (K=3) | 80.5 | -1.0 | 66.5 | -4.0 | 67.0 | -9.5 | 71.5 | -2.5 |
| Both (K=1) | 78.5 | -3.0 | 72.0 | +1.5 | 64.5 | -12.0 | 71.5 | -2.5 |
| Both (K=3) | 79.5 | -2.0 | 69.0 | -1.5 | 64.5 | -12.0 | 71.0 | -3.0 |
| Both (K=5) | 78.0 | -3.5 | 69.0 | -1.5 | 60.0 | -16.5 | 69.0 | -5.0 |

| Model | Endpoint | In ($/M) | Out ($/M) |
|---|---|---|---|
| Claude Opus 4.8 | Anthropic | 5.00 | 25.00 |
| GPT 5.5 | OpenAI | 5.00 | 30.00 |
| GLM 5.1 | OpenRouter | 0.966 | 3.036 |
| MiniMax M2.7 | OpenRouter | 0.24 | 0.96 |
| MiniMax M2.5 | OpenRouter | 0.15 | 0.90 |
| Qwen 3.7 Max | OpenRouter | 1.475 | 4.425 |
| Qwen3-Coder-480B | OpenRouter | 0.22 | 1.80 |
| Kimi K2.6 | OpenRouter | 0.646 | 2.72 |
| DeepSeek V4 Pro | OpenRouter | 0.435 | 0.87 |
| Van. solved | Van. unresolved | |||
|---|---|---|---|---|
| Model | kept | →unres. | →solved | kept |
| GPT 5.5 | 152 | 8 | 7 | 33 |
| Claude 4.8 | 166 | 7 | 3 | 24 |
| GLM 5.1 | 125 | 25 | 16 | 34 |
| MiniMax M2.7 | 121 | 34 | 6 | 39 |
| MiniMax M2.5 | 119 | 33 | 10 | 38 |
| Qwen 3.7 Max | 139 | 15 | 4 | 42 |
| Qwen3-Coder | 73 | 47 | 9 | 71 |
| Kimi K2.6 | 123 | 18 | 9 | 50 |
| DeepSeek V4 | 123 | 28 | 7 | 42 |
研究结果
- 九个模型在 SWE-bench Verified 上的平均解决率,在 Counter-Edit 条件下比独立作业(Vanilla)低7.7个百分点,各模型间损失幅度从1.3到16.5个百分点不等。
- 独立作业表现最强的两个模型 Claude Opus 4.8(85.2%→83.3%)和 GPT 5.5(80.5%→79.2%)几乎保持稳定且排名不变,而 Vanilla 分数相近的中游模型在 Counter-Edit 后排名剧烈变化,例如 MiniMax M2.7 从第3名跌到第8名。
- 对之前已解决但后来失败的运行进行审查发现,63.3%的失败仍保留了用户的冲突代码未处理,13.9%用另一个错误实现替换了它,11.6%只做了不完整的调和。
- 只发送用户消息而不改代码,影响很小且各模型表现不一致(-2.0到+3.0个百分点);但悄悄只改代码不发消息,则每个模型都出现持续下降(-1.0到-9.5个百分点)。
- 作为对照的无害修改(Co-Edit,不与任务冲突)几乎不影响平均解决率(仅-0.1个百分点),说明问题的核心在于代码本身与任务目标的语义冲突,而不只是出现了外部修改这件事本身。
可应用场景
- 该框架可用于压力测试面向结对编程或实时代码审查场景的编码助手,检验其在用户可能同时修改代码时的稳健性。
- 可作为一种检查手段,评估智能体在外部代码变更后是否养成了重新核查和重新测试的习惯,而不是盲目沿用之前的计划。
- 团队在选择编码智能体时,可以将共享工作区下的稳健性作为独立的评价维度,而不仅仅依赖独立自主的排行榜分数。
局限与待验证事项
- 结果基于特定抽样的任务集(SWE-bench Verified 200个任务,SWE-Bench Pro 和 DeepSWE 各25个任务),尚未验证在其他代码库、编程语言或任务类型上的普适性。
- 模拟的用户消息由 GPT-4o 生成,而非真实人类撰写,可能无法完全反映真实用户表达修改意图的多样方式。
- Counter-Edit 是刻意构造出的、明确与任务冲突的极端情形,真实用户的修改未必总是如此清晰对立。
- 在两个更长任务的基准上,编辑触发方式改为按轨迹进度比例注入,而非按代码区域重叠触发,因此这些结果与主实验设置不能直接比较。
- 论文指出了检测变化、调和冲突、重新验证这三项所需能力,但尚未提出或测试一种能可靠同时满足这三点的智能体设计方案。
为什么重要
如果编码智能体无法承受人类在共享工作区中直接修改代码,这对真实的结对编程和协作开发场景是一个严重缺口,而不只是学术上的好奇。这项研究表明,静态排行榜式的独立表现和在共享工作区协作中的稳健性是两个不同的维度,这对于选择在真实协作编码场景中信任哪个智能体的人很有参考价值。
本文术语
- Counter-Edit · 一种看似合理但实际错误、被设计用来与任务完成目标冲突的假用户代码修改
- resolve rate(解决率) · 通过全部验证测试的任务所占的比例
- retention(保持率) · 在独立作业(Vanilla)下多数轮次判定为已解决的任务,在引入 Counter-Edit 后仍保持已解决状态的比例
- User Patch Generator · 专门负责构造并验证与任务冲突的假用户修改的独立智能体
- 共享工作区(shared workspace) · 用户和智能体共同操作同一个代码库、同一批文件、同一个可执行状态的场景
论文原文摘要(英文)
Real-world software development requires coding agents to operate in shared workspaces where users may inspect and modify code during an ongoing task, yet existing repository-level benchmarks typically evaluate agents working alone or restrict user participation to messages. This leads us to ask: how do coding agents understand and respond to code changes in a shared workspace? We introduce SWE-Touch, a framework that stress-tests this setting through validated Counter-Edits: plausible edits to
在 arXiv 阅读最新论文
- SWE-bench Science: Can Coding Agents Resolve Engineering Tasks in Science?让AI编程助手去修复真实科学软件,连最强的那个也有一半以上任务没做对
- FlashPrefill V2: Block-Sparse Prefill Attention for Long-Context LLM Serving把稀疏注意力从论文原型变成能真正上线服务的加速方案
- PolicyGuide: From Guarding One Action to Guiding the Whole Workflow for Policy-Compliant LLM Agents让客服AI坐席不只是拦住一个危险动作,而是把整个流程走对
- EXIMO: VLM Guided Exploration of VLA Policies不用人工遥控演示,让会说话的AI来教机械臂做新家务
- EnvHarness: Awakening Static Worlds for Agent Learning不重新搭建训练环境,而是给现有环境套一层可插拔组件,针对每个智能体的具体弱点重新塑形
- Remember, Verify, or Ask? Cross-Family Evaluation of Memory Commitment in LLM AgentsAI助手在该向你提问的时候,却更愿意自己去核实事实
- SynFlow: A Multidimensional Diachronic Semantic Analysis Toolkit一款把单词意义变化拆解到语法细节的开源分析工具
- Automated Summarization of Financial News Using Large Language Models and Retrieval-Augmented Generation: An Early Empirical Study (Fall 2023)用AI总结股市新闻发现:简单的摘要方法反而比时髦的检索增强技术更靠谱
METAL LAB 最新报道
图片来源: Yuqiao Tan et al., arXiv:2608.02499, arxiv-nonexclusive