"All tests pass." "Build succeeded." "Pushed to main."
AI 에이전트가 뱉는 이 문장들을 우리는 얼마나 의심하고 있을까. 실제로는 거의 의심하지 않는다. 로컬에서 한 번 돌려보거나, 에이전트의 요약을 읽고 머지 버튼을 누른다. 그 사이에 무슨 일이 벌어졌는지는 잘 들여다보지 않는다.
세 개의 사례가 지금 이 순간 동시에 말하고 있다. exit code를 믿다가 틀렸던 개발자, AI가 리뷰한 PR에서 Jira 자격증명이 털릴 뻔했던 Snowflake, 그리고 쿼리가 빨라진 줄 알았는데 실은 데이터를 조용히 잃어가던 SQL 최적화 사례. 세 사례 모두 'AI가 코드를 뽑으면 끝'이 아니라는 것, 그리고 검증 구조 없이 신뢰는 환상이라는 것을 각기 다른 각도에서 증명한다.
에이전트의 자기 보고를 믿지 마라
dev.to에 올라온 한 포스트는 꽤 불편한 실험 결과를 공개했다. 저자는 Claude Code, Cursor, Devin 같은 AI 코딩 에이전트가 세션 중 남기는 트랜스크립트 파일에 주목했다. .jsonl 형식으로 디스크에 고스란히 남는 이 파일에는 에이전트가 실행한 모든 명령어와 실제 exit code가 담겨 있다. 에이전트 본인이 요약한 내용이 아니라, 진짜 일어난 일의 기록이다. 그런데 아무도 읽지 않는다.
그래서 그는 직접 검증 도구를 만들었다. 이름은 coherence. 동작 원리는 단순하다. 에이전트가 산문으로 남긴 주장("테스트 통과