검증 도구의 '도달 범위'가 가치를 결정한다: AI 코딩 에이전트의 검증 도구 통제 실험
The reach of a verification tool decides its value: A controlled study of verification surface, artifact quality, and cost in AI coding agents
TL;DR Highlight
부트 체크 하나로 실행 실패가 사라졌고, 셸은 토큰 2.35배를 썼다
Who Should Read
코딩 에이전트에 린터·셸·스크린샷 같은 도구를 어디까지 줄지 비용 때문에 고민하는 에이전트 개발자
Core Mechanics
- 도구 없이 만들면 7개 중 1개는 실행조차 안 됨
- 도구 없는 조건의 앱 생존율은 86.5%(192개 중 166개)였다.
- 실패 원인은 편집 중 파일이 깨지거나 DB 시드 스크립트가 첫 부팅에서 터지는 것이 대부분이었다.
- 부트 체크 하나가 가성비 최고
- 서버가 떴는지만 알려주는 도구(boot probe) 하나로 생존율이 99.5%까지 올랐다.
- 토큰 중앙값은 214k로 도구 없는 조건(262k)보다도 적었다.
- 셸은 깊이를 사지만 비용이 2.35배
- 동시 요청 경쟁, 재시작 후 데이터 보존 같은 어려운 테스트는 실제 실행해야 통과했다.
- 하지만 기능 점수 차이 12점 중 10점은 부트 체크만으로 이미 확보됐다.
- 린터는 효과가 없었다
- 린터+타입체커 조건은 도구 없는 조건과 통계적으로 구분되지 않았다.
- 린터 스크립트를 연결하지 않아 실패한 호출을 무시하고 끝낸 사례도 있었다.
- 스크린샷은 눈에 보이는 문제에만 도움
- 요소 배치·인터랙션 문제가 큰 과제에서 이득이 컸지만 다중비교 보정 후엔 유의하지 않았다.
- 100,000행 스크롤 같은 측정형 문제에는 도움이 없었다.
Evidence
- 셸 vs 도구 없음: 기능 +12.26점
- API로 검사하는 3개 앱(message-board, kanban-board, seat-booking)에서 execution − no_verification 차이이며 95% CI [+7.04, +17.47], Holm p=0.0006이다.
- 부트 체크 vs 도구 없음: 생존율 +0.13
- 7개 앱 전체 기준 생존율 차이이며 95% CI [+0.10, +0.16], Holm p=0.0006이다.
- gemini는 생존율이 50%p, gpt-5.5는 20%p 올랐다.
- 중앙값 토큰 비용 비교
- no_verification 262k, boot_check 214k, execution 615k, visual 674k, delayed_verification 1,199k였다.
- 부트 체크는 셸의 약 35% 비용으로 기능 점수 91.7 대 94.2를 냈다.
- 스크린샷 효과는 보정 후 유의하지 않음
- 시각 과제 2개에서 visual − execution은 사람 점수 +6.88, 95% CI [+0.83, +13.41], Holm p=0.0826이다.
- 로그 탐색기 음성 대조에서는 −2.17이었다.
How to Apply
- 에이전트에 부트 체크 도구 먼저 붙이기
- 오늘 설치·서버 기동·포트 리슨 여부만 반환하는 도구 하나를 에이전트 도구 목록에 추가하라.
- 도구 없이 돌린 결과와 실행 성공률을 같은 과제로 비교하라.
- 검증 도구를 실패 유형에 맞춰 고르기
- 레이아웃·배치 문제가 많은 작업에는 스크린샷 도구를 추가하라.
- 동시성이나 성능 문제가 많은 작업에는 셸을 주고 부하·경쟁 요청으로 확인하게 하라.
- 린터는 연결 여부와 호출 로그 점검하기
- 린트 스크립트가 실제로 설정돼 있는지 확인하라.
- 에이전트가 오류를 받고도 재검사 없이 끝내지 않도록 종료 전 재실행 규칙을 넣어라.
- 모델별로 검증 예산 따로 정하기
- 도구 없이 이미 잘 만드는 모델에는 부트 체크만 줘라.
- 실패가 잦은 모델에만 셸을 열어 토큰 비용을 아껴라.
Try It
# Claude Code 또는 ChatGPT에 붙여넣기 (논문 방법의 간이 버전: 부트 체크 + 검증 습관)
너는 소프트웨어 엔지니어다. 아래 과제를 구현하라.
과제: {{과제 설명}}
규칙:
1. 모든 파일을 쓴 뒤 종료하기 전에 반드시 의존성을 설치하고 서버를 실행해 포트가 리슨되는지 확인하라.
2. 서버가 안 뜨면 에러 로그를 읽고 고친 뒤 다시 실행하라.
3. 서버가 뜬 뒤 핵심 API를 curl로 한 번씩 호출해 응답을 확인하라.
4. 마지막에 확인한 항목과 확인하지 못한 항목(화면 렌더링, 클릭 동작 등)을 구분해 보고하라.
이어서 해 볼 것: 같은 과제를 위 규칙 없이 한 번 더 돌려 실행 성공 여부와 토큰 사용량을 비교해 보라.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓
Related Resources
Original Abstract (Expand)
Modern artificial-intelligence coding agents can be equipped with tools for checking their own work e.g. a linter, a boot probe, a shell, a screenshot tool. We call this set the agent's verification surface. This study asks whether increasing only that surface, with everything else held fixed, produces a matching growth in the quality of the software the agent ships. We built a minimal coding agent whose tool list is the single controlled variable and used it to implement 1,116 web applications across six models and eight tool configurations. A condition-blind human graded every application against a frozen rubric, and automatic probes stress-tested the API-observable behaviors. Verification's cheapest benefit arrives first, which is to make sure that the application comes up. Without any tools, about one build in seven fails to launch at all and a single boot probe removes nearly all of these failures at roughly 35 percent of a full shell's token cost, while the full shell multiplies the no-tools cost by 2.35. Screenshots help most where mistakes are visible (e.g. element placement, interaction), though even there the gain over a shell is modest and does not survive correction for multiple statistical comparisons. In cases where failures can only be measured rather than seen, such as keeping scrolling smooth over a 100,000-row list, screenshots add nothing. A verification tool improves the output artifact only where its reach covers the way the application actually fails.