코딩 에이전트의 하네스를 바꿔도 점수는 대체로 오르지 않고 비용만 최대 3배 달라진다는 독립 연구가 나왔다. 산둥대 연구자 Yangze Liu와 Zhongyi Han은 같은 모델과 같은 과제, 같은 가격표로 하네스만 바꿔 비교했다. 447개 과제에서 Claude Code와 mini-SWE-agent는 5점 범위 안에서 통계적으로 동등했다고 밝혔다. 다만 OpenCode는 큰 과제 풀에서 최대 9점 뒤졌고, 사고를 끈 조건에서는 Qwen3.6과 mini-SWE-agent 조합, HY4-Preview와 Claude Code 조합이 각각 11점 떨어졌다.1,2
논문 제목은 "What Does a Harness Buy? Tokens, Mostly"다. 코드와 데이터는 GitHub에 공개돼 있다. 분석 스크립트는 GPU나 네트워크 없이 노트북 CPU에서 1분 안에 재현되고, 코드는 MIT 라이선스, 데이터는 CC BY 4.0이다.1,2
하네스는 모델이 코드 저장소에서 일하도록 시스템 프롬프트, 도구, 컨텍스트 관리를 묶은 틀이다. 연구진은 Claude Code, OpenCode, mini-SWE-agent 세 가지를 배포 버전 그대로 썼다. mini-SWE-agent는 Bash 도구만 주고 컨텍스트 관리를 하지 않는다. Claude Code와 OpenCode는 파일·검색 전용 도구, 긴 시스템 프롬프트, 자동 기록 압축을 갖췄다.2
모델은 Qwen3.6, Qwen3.8, DeepSeek-V4-Flash, GLM-5.3-Flash, HY4-Preview 다섯 가지였다. Claude Opus 5는 Claude Code에서만 기준선으로 돌렸다. 과제는 SWE-bench Verified에서 psf/requests 8개를 뺀 492개로, 난이도 1~4시간 42개와 4시간 초과 3개를 합친 어려운 과제 45개, 나머지 447개로 나눴다. 일부 설정은 두 번씩 돌려 잡음을 쟀다.1,2
모든 실행은 오프라인으로 했다. 웹 접속을 허용한 초기 시험에서 DeepSeek와 Qwen 계열 시도의 71%가 GitHub에서 정답 수정본을 그대로 가져왔다. Claude 모델은 거의 그러지 않았다. 연구진은 이 결과를 버렸고, 어느 개발사가 시험 데이터로 학습했다고 주장하지는 않는다고 밝혔다.
가장 무거운 Claude Code와 가장 가벼운 mini-SWE-agent의 447개 과제 점수 차이는 시험한 두 모델 모두 2점 미만이었다. 5점 범위 안에서 두 하네스는 통계적으로 동등했다. 어려운 45개 과제에서는 하네스에 따라 모델별로 2~5개 차이가 났지만, 같은 설정을 다시 돌려도 최대 3개가 달라졌다. 어떤 때는 mini-SWE-agent가, 어떤 때는 Claude Code가 앞섰다.2
어려운 45개 과제와 모델 다섯 가지에서 하네스를 바꾸면 결과가 뒤집히는 과제 비율은 13%였고, 같은 하네스를 다시 돌릴 때도 13%였다. 모델을 바꾸면 22%로 뛰었다.
연구진은 이 정도 잡음에서 비교가 가능한 범위도 계산했다. 45개 과제로는 13점 차이도 절반의 확률로만 잡아낸다. 447개 과제에서는 약 5점 차이가 안정적으로 검출된다. 연구진에 따르면 기존 연구가 보고한 20점 넘는 격차는 대개 한 번 돌린 결과이고, 같은 설정을 다시 돌리기만 해도 SWE-bench Verified에서 최대 6점까지 달라졌다. The Decoder는 Zhipu AI가 자사 하네스의 Claude Code 대비 2.4점 우위를 내세운다고 소개하면서, 이 폭이 두 검출 기준(13점, 약 5점) 모두에 못 미친다고 전했다.
잡음을 넘어선 하네스 효과는 OpenCode의 부진 하나였다. 큰 과제 풀에서 OpenCode는 다른 두 하네스보다 최대 9점 뒤졌다. 한 모델에서는 이 격차의 절반이 출력 길이 상한에 걸려 중간에 끊긴 실행에서 나왔다. 추론 도중 상한을 넘으면 Claude Code는 모델에게 계속하라고 재촉하지만, OpenCode는 단계를 그대로 끝내 시도가 대체로 실패한다.1,2
Claude Code식 재촉 프롬프트를 OpenCode에 붙여도 나아지지 않았다. 같은 과제가 재시도에서 같은 초과를 거의 일으키지 않기 때문이다. 나머지 격차는 설명하지 못했고, OpenCode에서는 모델이 훨씬 일찍 작업을 멈춘다는 관찰만 남겼다. 로컬 모델 실행에서는 OpenCode의 시간 제한이 Claude Code보다 훨씬 엄격했다. 연구진은 이를 통제하지 못한 변수로 꼽았다. OpenCode의 검색 도구는 처음 쓸 때 바이너리를 내려받으려다 오프라인에서 멈춘다. mini-SWE-agent는 컨텍스트 관리가 없어 컨텍스트 창 한도에 걸리는데, 주로 다른 하네스도 실패하는 과제에서였다.2
같은 모델, 같은 과제, 같은 가격표에서 과제당 비용은 하네스에 따라 최대 3배 벌어졌다. 토큰 사용량은 모델별로 가장 가벼운 설정 대비 2~3배까지 벌어지지만 통과율은 측정 불확실성 안에 머문다. 도구 호출당 돌려주는 텍스트 양은 세 하네스가 비슷해서 도구 출력은 차이를 거의 설명하지 못한다. 차이는 매 단계 다시 보내는 시스템 프롬프트와 도구 설명에서 나오고, 여기에 단계 수가 곱해진다.1,2
| 하네스 | 크기(토큰) |
|---|---|
| Claude Code | 약 16,600 |
| OpenCode | 약 7,000 |
| mini-SWE-agent | 1,000 미만 |
첫 호출 뒤에는 세 하네스 모두 컨텍스트가 비슷한 속도로 늘어난다. 연구진의 역공학에 따르면 Claude Code는 모델의 추론 출력도 대화 기록에 남긴다. 어느 요인이 지배하는지는 모델마다 다르다. GLM-5.3-Flash에서는 Claude Code 비용이 mini-SWE-agent의 거의 두 배였다. DeepSeek-V4-Flash에서는 mini-SWE-agent가 단계를 훨씬 많이 써서 Claude Code와 비용이 비슷해졌다. 캐시된 토큰의 낮은 가격은 격차를 줄이지만 순위는 바꾸지 않았다. GLM-5.3-Flash에서 시행 하나의 비용은 Claude Code 1.81위안, OpenCode 0.56위안이었다.
DeepSeek 자체 하네스는 자사 모델과 짝을 이뤄도 다른 하네스보다 점수가 높지 않았고 비용은 가장 컸다. Claude Opus 5는 Claude Code에서 도구를 빼도 결과가 달라지지 않았다. Claude Opus 5의 1년 된 버전은 비슷한 수의 과제를 절반 미만의 비용으로 풀었다. The Decoder는 그 이유가 Extended Thinking이 당시 기본값이 아니었기 때문이라고 전했다.
사고를 끄면 하네스 선택이 결과를 바꾼 유일한 경우가 나왔다. 사고를 끈 상태에서 Qwen3.6과 mini-SWE-agent 조합은 11점 떨어졌고, 같은 조건의 Claude Code와 OpenCode는 잡음 범위에 머물렀다. HY4-Preview도 사고를 끄면 Claude Code에서 11점 하락했다. 연구진은 시험 격자가 작아 이유를 설명할 수 없다고 인정했다. 연구는 주로 SWE-bench 한 가지에 의존하며, Terminal-Bench 2.1의 소규모 교차 확인에서 같은 양상이 나왔다.
연구진은 하네스가 사 주는 것은 "fewer ways to lose a task, and a bill, not pass rate"라고 결론 내리고, 하네스를 비교할 때마다 같은 설정의 재실행 결과를 함께 공개하라고 권고했다.2