AI Reviewers가 환각을 일으키는 것이 지겨워서, 대신 GitLab용 Autonomous Agent를 만들었습니다.

발행: (2026년 3월 8일 PM 03:00 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

Introduction

우리는 모두 그런 경험을 해봤습니다. 300줄에 달하는 거대한 머지 요청을 푸시하면, 몇 초 안에 “AI 코드 리뷰어” 봇이 PR에 열 개의 댓글을 남깁니다.
그 중 두 개는 프레임워크에서 전역적으로 처리하고 있는 “누락된 import”에 대해 불평하고, 하나는 지난 스프린트에서 명시적으로 제거한 라이브러리를 제안합니다. 나머지는 성가신 포맷팅 잡동사니입니다. 당신은 조용히 Resolve Thread를 열두 번 클릭하고 한숨을 쉽니다.

표준 AI 리뷰어는 단순히 .patch 파일을 LLM에 파이프하고 최선을 기대합니다. 이들은 컨텍스트가 부족한데, 바로 그래서 제가 AI Review Agent를 만들었습니다—GitLab에 네이티브하게 구축된, 진정한 자율형·컨텍스트 인식 코드 리뷰 에이전트입니다. Go 언어로 구현되었습니다.

Why Existing AI Reviewers Fall Short

Zero Codebase Context

“왜 mylog.Info() 대신 fmt.Println()을 사용했나요?”

리뷰어는 프로젝트의 로깅 규칙이나 헬퍼 유틸리티에 대한 지식이 전혀 없습니다.

Context‑Window Explosions

150개의 파일이 포함된 MR diff를 LLM에 쏟아붓다 보면 모델의 컨텍스트 윈도우가 금방 소진되어, 원래 시스템 프롬프트를 잊어버리고 무관하거나 환각된 피드백을 생성합니다.

One‑Way Communication

대부분의 봇은 리뷰를 남기고 사라집니다. 당신은 그들에게 설명을 요구하거나 제안을 명확히 할 수 없습니다.

How AI Review Agent Works Differently

봇은 단순히 diff를 정적으로 읽는 것이 아니라 read_file, search_code, multi_diff와 같은 도구를 갖추고 있습니다.

CacheManager.Get() 같은 호출을 만나면, 일시 정지하고 search_code를 사용해 코드베이스에서 CacheManager 구현을 찾은 뒤 읽어보고, 코드가 버그인지 판단합니다—환각된 주장들을 없애줍니다.

Persistent Conversation

단일 댓글을 남기고 사라지는 대신, AI Review Agent는 대화에 머무릅니다:

@reply 로 GitLab 스레드에서 답변합니다.
“사실, 상위 서비스의 레이스 컨디션 때문에 이렇게 구현했습니다.”

모든 코드베이스에는 고유의 암묵적인 규칙이 있습니다. AI Review Agent는 “Repository Best Practices” 규칙집을 통해 시간이 지날수록 똑똑해지도록 설계되었습니다.

Webhook‑Driven Architecture

AI Review Agent는 고성능 웹훅 서버로 동작합니다. GitLab 프로젝트에 한 번만 설정하면, 웹훅이 푸시마다 에이전트를 트리거합니다. 리뷰는 워커 풀 시스템과 재시도 로직을 사용해 비동기적으로 큐에 쌓이며, OpenAI API에 일시적인 문제가 발생해도 리뷰가 사라지지 않도록 보장합니다.

Usage

터미널에서 에이전트와 직접 상호작용할 수 있습니다:

./cli review --project-id 123 --mr-id 45 --model claude-3-7-sonnet-20250219

CLI는 AI의 제안을 출력하고, 1, 3, 5 등으로 입력해 어떤 댓글을 실제 GitLab MR에 푸시할지 인터랙티브하게 선택하게 해줍니다.

Technical Details

  • Language: Go 1.25
  • Architecture: 확장성을 위한 Clean Architecture 추상화
  • Features:
    • Graceful degradation
    • Multi‑LLM 라우팅 (OpenAI, Anthropic, Google Gemini)
    • 비동기 작업 및 피드백 메트릭을 위한 SQLite 또는 PostgreSQL 기반 영구 저장소

Get Involved

팀에서 GitLab을 사용하고 더 똑똑하고 덜 시끄러운 AI 리뷰어가 필요하거나, Go 기반 AI 에이전트에 관심이 있다면 프로젝트를 확인해 보세요:

🔗 GitHub Repository:

피드백, 기능 요청, 초기 기여자를 적극적으로 찾고 있습니다. 댓글로 알려 주세요: AI 리뷰어가 PR에 남긴 가장 짜증나는 댓글은 무엇인가요?

0 조회
Back to Blog

관련 글

더 보기 »