본문 바로가기
원문
Google Developers Blog·· 3시간 전AI 점수51

Google, 코딩 에이전트가 TODO 주석 때문에 빗나가는 실태 분석

Agent Distraction

AI 요약

Google는 코딩 에이전트가 코드 안의 TODO(bug/...) 주석에 끌려 관련 없는 작업으로 빗나가는 실태를 분석했다. 파일을 읽는 세션의 13%가 이런 참조에 닿았고, 6%에서는 해당 버그에 대한 추가 행동이 일어났으며, 그중 83%는 개발자의 요청이 없었다. 요청 없이 빗나간 경우 세션당 단계는 70% 많아졌고, 토큰은 77% 많아졌으며, 대기 시간은 105% 길어졌다.

자세히

분석의 출발점은 사람이라면 무시하고 넘어갈 수 있는 오래된 사양, 이미 해결된 버그, 뒤처진 문서를 에이전트는 행동의 단서로 읽어 들여 버린다는 문제의식이다. 수작업 리뷰로는 월간 수백만 세션 규모의 측정이 불가능하므로, 코드에서 도출할 수 있는 객관적인 지표로 인라인 TODO(bug/...) 주석을 대리 지표로 선택했다. TODO는 버그가 해결된 뒤에도 남는 경우가 많으며, 링크된 버그 티켓이 공식 기록이 된다. 에이전트가 마주친 TODO를 버그 상태 및 사용자 프롬프트와 대조하여, 유효한 작업과 불필요한 곁길을 자동으로 구분한다.

수치는 수천 명의 엔지니어가 에이전트를 조작한 분산 트레이스, 수억 규모의 개별 단계에서 산출했다. 파일을 읽는 세션의 13%가 TODO 또는 FIXME의 버그 참조에 닿았고, 에이전트는 94%의 경우 주석을 무시했지만 6%에서는 해당 버그 ID에 대해 행동했다. 그 행동의 83%는 개발자가 버그를 요청하지 않은 무의뢰 행동이었다. 무의뢰 이탈을 현재의 버그 상태와 대조하면, 41%는 이미 닫힌 티켓을 쫓고 있었으며, 그 내역은 수정 완료·검증 완료가 32%, 구식 또는 won't-fix가 9%, 중복이나 제한된 티켓이 2%였다. 57%는 버그가 아직 열려 있었고, 에이전트가 작업 범위를 넓히고 있었다. 그 내역은 조사만 한 경우가 61%, 코드 편집까지 이어진 경우가 39%였다.

개발자, 코드베이스의 복잡도, 작업 유형, 모델 계층, 읽은 파일 수, 초기 프롬프트 길이, 참조가 나타난 단계를 통제한 고정효과 회귀분석에서도, 무의뢰 버그 이탈은 큰 오버헤드를 낳았다(모두 p<0.0001). 세션당 단계는 70%, 토큰은 77%, 대기 시간은 105% 더 길었다. 사례로는 2023년에 수정된 버그를 가리키는 TODO를 따라가다 조사가 엇나간 경우와, 조사 중인 버그의 TODO를 보고 요청 없이 ModelDownloaderV1 코드를 변경했다가 나중에 사람이 범위 확대를 지적한 경우가 소개되어 있다.

대책으로는 코드베이스 전체에서 수정 완료 또는 구식이 된 버그 참조를 찾는 에이전트를 만들었다. 다만 TODO가 실제로 불필요한지 확인하려면 버그, 파일, 코드베이스의 변경 이력을 때로는 수년 치 거슬러 올라가 살펴봐야 한다. TODO와 그 의도가 구식이 되었다고 확인된 경우에만 삭제 변경을 리뷰에 올린다. 이 TODO 클리너는 지난 6개월 동안 실제로 구식이 된 참조를 수천 건 삭제했고, 사람 리뷰어의 승인율은 95%를 넘었다. 에이전트에게 야심 찬 과제를 맡길수록 핫패스 이외의 잊힌 영역도 부담이 되므로, presubmit 분석기, 코퍼스 전체 스캐너, 불필요한 TODO를 고치는 코딩 에이전트가 효과적이라고 밝히고 있다.

출처: Google Developers Blog · developers.googleblog.com