월~금 오전 7시, 일요일 오전 8시 — AI 뉴스와 용어를 보내드립니다메일로 받아보기

METAL LAB

코딩 에이전트가 작업 중 사용자가 코드를 직접 고쳐버리면 얼마나 무너지는지 실측한 벤치마크

arXiv:2608.024992026-08-02

SWE-Touch: Benchmarking Coding Agents When Users Touch the Code

코딩 에이전트가 작업 중 사용자가 코드를 직접 고쳐버리면 얼마나 무너지는지 실측한 벤치마크

SWE-Touch는 코딩 에이전트가 작업을 진행하는 동안 사용자가 실제로 코드를 수정하는 상황을 시뮬레이션하는 평가 틀이다. 작업과 충돌하는 그럴듯한 가짜 사용자 수정(Counter-Edit)을 에이전트가 자주 들여다보는 코드 위치에 끼워 넣고, 아홉 개 모델의 대응을 SWE-bench Verified 등에서 측정했다. 그 결과 평균 해결률이 7.7퍼센트포인트 떨어졌고, 강한 모델일수록 반드시 안정적인 것은 아니었다.

METAL LAB 해설 도표

SWE-Touch 평가 파이프라인

증거 상태측정 결과가 보고됨

  1. 핵심 영역 채굴세 개의 서로 다른 모델(GPT 5.5, GLM 5.1, MiniMax M2.7)이 만든 수정 궤적을 겹쳐서 작업에 중요한 코드 영역을 찾아낸다.
  2. Counter-Edit 생성 및 검증별도의 User Patch Generator가 그 영역 근처에 그럴듯하지만 작업을 방해하는 코드 수정을 만들고, 단독으로는 안 풀리고 정답과 합쳐도 안 풀리는지 검증한다.
  3. 공유 워크스페이스 주입에이전트가 해당 코드에 접근할 때마다 최대 3회까지 이 가짜 사용자 수정과 자연어 메시지를 저장소에 실시간으로 끼워 넣는다.
  4. 결과 검증 및 실패 분석최종 코드를 테스트로 검증하고, 실패한 경우 사용자의 충돌 코드를 방치했는지, 잘못 대체했는지, 불완전하게 고쳤는지 등 7가지 유형으로 분류한다.
METAL LAB이 원문을 바탕으로 재구성한 해설 도표이며, 논문 저자의 원문 figure가 아닙니다.

무엇을 했나

  1. 기존 코딩 에이전트 벤치마크는 에이전트가 혼자 작업하거나 사용자 개입을 메시지로만 제한했는데, 실제 SWE-chat 대화 데이터의 59.0% 세션에서 사용자가 저장소를 직접 수정한 이력이 있었다.
  2. 여러 모델(GPT 5.5, GLM 5.1, MiniMax M2.7)의 정답 궤적을 겹쳐서 작업에 핵심적인 코드 영역을 찾아내고, 별도의 User Patch Generator가 그 근처에 그럴듯하지만 작업 완료를 방해하는 코드 수정(Counter-Edit)을 만들어 검증한다.
  3. 검증은 사용자 수정만으로는 작업이 풀리지 않고, 정답 패치는 원래 문제를 풀며, 둘을 합쳐도 여전히 풀리지 않는다는 세 조건을 확인하는 방식으로 이루어졌다.
  4. 평가 중에는 에이전트가 해당 코드 영역에 접근할 때마다 최대 3회까지 이 가짜 사용자 수정과 사용자 메시지를 저장소에 주입하고, 이후 에이전트가 어떻게 반응하는지 관찰한다.
  5. SWE-bench Verified에서 아홉 개 모델을 평가한 결과 평균 해결률이 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.
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.
Table 1: Comparison of user interaction modes in coding-agent benchmarks.
BenchmarkCodeUserUserCodebase
RepairSimulatorMessagesEdit
SWE-bench Verified
Ambig-SWE
HiL-Bench
SWE-Interact
SWE-Together
SWE-Touch (ours)
Figure 2: Overview of SWE-Touch. Agent trajectories identify task-critical regions; a separate generator constructs and validates task-conflicting edits; evaluation injects each edit and its contextual message into the shared workspace before task verification.
Figure 2: Overview of SWE-Touch. Agent trajectories identify task-critical regions; a separate generator constructs and validates task-conflicting edits; evaluation injects each edit and its contextual message into the shared workspace before task verification.
Table 2: Average patch size, shown as changed lines / files.
SourceReference repairCounter-Edit
Lines / filesLines / files
SWE-bench Verified13.3 / 1.207.0 / 1.04
SWE-Bench Pro361.0 / 5.4413.0 / 1.40
DeepSWE730.2 / 7.2410.8 / 1.52
Figure 3: Longer-horizon robustness under user edits on SWE-Bench Pro and DeepSWE: (a) cost–performance shifts and (b) sensitivity to edit frequency.
Figure 3: Longer-horizon robustness under user edits on SWE-Bench Pro and DeepSWE: (a) cost–performance shifts and (b) sensitivity to edit frequency.
Table 3: Main results on SWE-bench Verified over three runs. Resolve is mean ± standard deviation; Steps and Tok. (K) are completed-task means, with tokens reported in thousands. Δ is Counter-Edit minus Vanilla; Retention is the share of majority-solved Vanilla tasks that remain majority-solved under Counter-Edit. (1) indicates mean resolve-rate ranking; Rank Δ shows the corresponding ranking change.
VanillaCounter-EditΔRetentionRank
ModelResolveStepsTok. (K)ResolveStepsTok. (K)ResolveSteps(%)Δ
Claude Opus 4.885.2±1.8 (1)24.536783.3±0.6 (1)30.9506-1.8+6.496.0
GPT 5.580.5±1.0 (2)33.21,34479.2±0.6 (2)31.31,141-1.3-1.995.0
GLM 5.172.7±2.0 (7)55.01,00768.3±0.8 (4)64.51,272-4.3+9.583.3↑3
MiniMax M2.776.5±1.5 (3)45.386562.7±2.4 (8)47.7904-13.8+2.478.1↓5
MiniMax M2.575.7±3.3 (4)45.186366.2±1.0 (5)47.5908-9.5+2.478.3↓1
Qwen 3.7 Max75.2±1.0 (5)29.942070.3±0.8 (3)31.1424-4.8+1.290.3↑2
Qwen3-Coder-480B57.2±3.5 (9)52.676340.7±1.0 (9)54.6806-16.5+2.060.8
Kimi K2.670.3±2.0 (8)62.51,38164.3±3.4 (6)62.11,296-6.0-0.487.2↑2
DeepSeek V4 Pro74.8±0.8 (6)41.982763.8±1.8 (7)46.6954-11.0+4.781.5↓1
(b) Resolve rate under varying edit frequency (K) on two longer-horizon benchmarks.
(b) Resolve rate under varying edit frequency (K) on two longer-horizon benchmarks.
Table 4: Mean resolve rates on SWE-Bench Pro and DeepSWE over two runs. Δ Res. is the change in resolve rate, and Δ Steps is the change in mean model calls per observed trajectory. Both differences are Counter-Edit minus Vanilla.
SWE-Bench ProDeepSWE
ModelVanillaCounter-EditΔ Res.Δ StepsVanillaCounter-EditΔ Res.Δ Steps
Claude Opus 4.868.068.00.0+7.556.046.0-10.0+9.9
GPT 5.538.038.00.0+0.964.056.0-8.0+4.9
GLM 5.143.132.8-10.3+19.119.416.8-2.5+31.4
MiniMax M2.730.624.6-6.0+9.42.22.20.0+27.6
MiniMax M2.532.624.6-8.0+20.40.00.00.0+33.1
Qwen 3.7 Max36.026.0-10.0−1.44.12.1-2.0+2.3
Qwen3-Coder-480B20.014.0-6.0+0.70.00.00.0+7.8
Kimi K2.650.048.0-2.0−4.718.012.0-6.0+0.2
DeepSeek V4 Pro34.032.0-2.0+8.94.12.0-2.1−7.6
Figure 4: Failure analysis of solved-to-unresolved runs across nine models on SWE-bench Verified. (a) Overall distribution across seven failure types. (b) Per-model composition. (c) Percentage of failures in which the agent revises or removes the user edit before termination. Sample sizes and audit details are reported in Appendix D.
Figure 4: Failure analysis of solved-to-unresolved runs across nine models on SWE-bench Verified. (a) Overall distribution across seven failure types. (b) Per-model composition. (c) Percentage of failures in which the agent revises or removes the user edit before termination. Sample sizes and audit details are reported in Appendix D.
Table 5: Resolve rates for message, code-edit, and edit-frequency ablations on SWE-bench Verified. Δ is relative to the paired Vanilla run.
InterventionGPT 5.5GLM 5.1MiniMax M2.7Qwen 3.7 Max
ResolveΔResolveΔResolveΔResolveΔ
Vanilla81.570.576.574.0
Message (K=3)79.5-2.073.0+2.576.50.077.0+3.0
Code edit (K=3)80.5-1.066.5-4.067.0-9.571.5-2.5
Both (K=1)78.5-3.072.0+1.564.5-12.071.5-2.5
Both (K=3)79.5-2.069.0-1.564.5-12.071.0-3.0
Both (K=5)78.0-3.569.0-1.560.0-16.569.0-5.0
Figure 5: Post-edit behavior on a diagnostic sample from SWE-bench Verified. (a) Mean read, edit, and test commands issued after the final user edit. (b) Agent response mode to the user edit.
Figure 5: Post-edit behavior on a diagnostic sample from SWE-bench Verified. (a) Mean read, edit, and test commands issued after the final user edit. (b) Agent response mode to the user edit.
Table 7: List prices used to convert tokens into dollars in Figure 3(a), as displayed by the serving endpoint on 27 July 2026; OpenRouter rates are the promotional prices shown at that time. Cached input is charged at the input rate.
ModelEndpointIn ($/M)Out ($/M)
Claude Opus 4.8Anthropic5.0025.00
GPT 5.5OpenAI5.0030.00
GLM 5.1OpenRouter0.9663.036
MiniMax M2.7OpenRouter0.240.96
MiniMax M2.5OpenRouter0.150.90
Qwen 3.7 MaxOpenRouter1.4754.425
Qwen3-Coder-480BOpenRouter0.221.80
Kimi K2.6OpenRouter0.6462.72
DeepSeek V4 ProOpenRouter0.4350.87
Figure 6: Task-level outcome transitions from Vanilla to Counter-Edit on SWE-bench Verified. Arrows indicate the direction and magnitude of shifts between solved and unresolved states.
Figure 6: Task-level outcome transitions from Vanilla to Counter-Edit on SWE-bench Verified. Arrows indicate the direction and magnitude of shifts between solved and unresolved states.
Table 10: Verifier outcomes under Vanilla and Counter-Edit, by model.
Van. solvedVan. unresolved
Modelkept→unres.→solvedkept
GPT 5.51528733
Claude 4.81667324
GLM 5.1125251634
MiniMax M2.712134639
MiniMax M2.5119331038
Qwen 3.7 Max13915442
Qwen3-Coder7347971
Kimi K2.612318950
DeepSeek V412328742

실제로 확인된 결과

  • 아홉 개 모델 평균으로 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, SWE-Bench Pro, DeepSWE라는 특정 벤치마크의 샘플(각각 200개, 25개, 25개 과제)에 한정되어 있어 다른 도메인이나 언어로의 일반화는 검증되지 않았다.
  • 사용자 메시지는 GPT-4o가 생성한 시뮬레이션이며, 실제 인간 사용자의 다양한 어투나 의도 표현과는 차이가 있을 수 있다.
  • Counter-Edit는 인위적으로 설계된 '작업과 충돌하는' 극단적 사례로, 실제 사용자 수정이 항상 이렇게 명확히 충돌하는 것은 아니다.
  • 롱호라이즌 벤치마크에서는 영역 기반 트리거 대신 궤적 진행률 기준으로 편집을 주입해 방식이 다르며, 두 세팅 간 결과를 직접 비교하기는 어렵다.
  • 해결 회복에 필요한 조건(충돌 인지, 올바른 재작성, 표적 테스트 검증)을 모두 만족하는 에이전트 설계는 아직 제안되지 않았고 향후 과제로 남아 있다.

왜 중요한가

코딩 에이전트가 실제 협업 환경에서 사람이 코드를 직접 바꾸는 상황을 견디지 못한다면 도입 현장에서 신뢰하기 어렵다. 이 연구는 정적인 벤치마크 순위와 실제 협업 환경에서의 안정성이 다른 축이라는 점을 보여줘, 에이전트 개발자와 도입 담당자 모두에게 새로운 평가 기준을 제시한다.

이 논문의 용어

  • Counter-Edit · 작업을 방해하도록 설계된, 그럴듯하지만 틀린 가짜 사용자 코드 수정
  • resolve rate(해결률) · 검증 테스트를 모두 통과한 작업의 비율
  • retention(잔존율) · 원래(Vanilla) 상태에서 다수결로 풀렸던 작업이 사용자 수정 후에도 여전히 풀리는 비율
  • User Patch Generator · 작업과 충돌하는 가짜 사용자 코드 수정을 만들고 검증하는 별도의 에이전트
  • 공유 워크스페이스(shared workspace) · 사용자와 에이전트가 같은 저장소, 같은 파일, 같은 실행 상태를 함께 다루는 환경

저자 · Yuqiao Tan

arXiv에서 원문 보기

최신 논문

논문 전체 보기 →

METAL LAB 최신 기사

그림 출처: Yuqiao Tan et al., arXiv:2608.02499, arxiv-nonexclusive