원문 미리보기
대규모 AI 코드 리뷰 오케스트레이션
Cloudflare는 기존 AI 코드 리뷰 도구의 유연성 부족과 단순 요약 방식의 한계를 극복하기 위해 오픈소스 에이전트인 OpenCode 기반의 CI 네이티브 오케스트레이션 시스템을 구축했습니다. 이 시스템은 보안, 성능 등 각 분야에 특화된 다수의 전문 에이전트를 코디네이터가 관리하여 노이즈를 줄이고 정확도 높은 리뷰 결과를 제공합니다. 현재 수만 개의 머지 리퀘스트를 처리하며 실제 버그와 보안 취약점을 효과적으로 차단하는 등 엔지니어링 생산성을 획기적으로 개선하고 있습니다.
기존 접근 방식의 한계와 다중 에이전트 전략
- 단순히 Git Diff를 LLM에 입력하는 방식은 환각(Hallucination) 현상과 무의미한 수정 제안 등 노이즈가 많아 실질적인 코드 품질 향상에 한계가 있었음.
- Cloudflare는 하나의 거대한 모델 대신 보안, 성능, 코드 품질, 문서화, 릴리스 관리, 내부 규정 준수 등 최대 7개의 전문 에이전트를 동시에 실행하는 구조를 선택함.
- '코디네이터 에이전트'가 개별 에이전트의 발견 사항을 취합하여 중복을 제거하고, 문제의 실제 심각도를 판단한 뒤 하나의 구조화된 리뷰 코멘트로 통합함.
플러그인 기반의 유연한 아키텍처
- 다양한 버전 관리 시스템(VCS)과 AI 프로바이더를 지원하기 위해
ReviewPlugin인터페이스 기반의 컴포저블 아키텍처를 채택함. - 리뷰 실행 주기는 세 단계로 나먐: 병렬로 실행되는
Bootstrap(비동기 준비), 순차적으로 실행되며 실패 시 중단되는Configure(필수 설정), 그리고 원격 설정 로드 등을 처리하는postConfigure단계임. ConfigureContextAPI를 통해 각 플러그인은 독립적으로 에이전트 등록, 프롬프트 주입, 환경 변수 설정을 수행하며, 최종적으로opencode.json설정 파일로 병합됨.- 이러한 격리 구조 덕분에 GitLab 플러그인이 AI Gateway 설정을 알 필요가 없는 등 컴포넌트 간 결합도를 최소화함.
OpenCode와 Bun을 활용한 기술적 구현
- OpenCode는 오픈소스이며 서버 중심 구조를 가지고 있어 프로그래밍 방식으로 세션을 생성하고 SDK를 통해 결과를 수집하기에 적합함.
- 대규모 머지 리퀘스트 처리 시 발생하는 Linux 커널의
ARG_MAX제한(E2BIG 에러)을 해결하기 위해, Bun의stdin스트림을 통해 대용량 프롬프트를 전달함. - 오케스트레이터는 OpenCode를 자식 프로세스(
Bun.spawn)로 실행하며, 모든 출력은 JSONL 형식의stdout이벤트를 통해 실시간으로 모니터링 및 수집됨.
Cloudflare의 사례는 단순한 AI 도입을 넘어, 대규모 조직의 복잡한 표준과 요구사항을 충족하기 위해 다중 에이전트와 플러그인 시스템이 왜 필요한지 잘 보여줍니다. 특히 CI/CD 파이프라인의 핵심 경로에 AI를 배치할 때 발생하는 인자 크기 제한이나 도구 간 결합도 문제를 해결한 아키텍처는 대규모 엔지니어링 팀에 실질적인 가이드라인이 될 것입니다.