자율형 AI 에이전트가 단 20분 만에 완전한 검색 증강 생성(RAG) 스택을 구축하고, 인간의 코드 한 줄 없이 초안 풀 리퀘스트(pull request)를 생성했습니다.

“루프(loop)”가 중요한 이유

RAG 스택을 구축한다는 것은 보통 검색 엔진, 임베딩 모델, 언어 모델, 그리고 이들을 연결하는 글루 코드(glue code)를 하나로 엮는 것을 의미합니다. 개발자들은 Helm 차트를 미세 조정하고, 인증 오류를 수정하며, 일치하지 않는 모델 이름을 찾아다니느라 수 시간을 허비하곤 합니다. 이번 테스트에서 자율형 에이전트는 코드가 작성되기 전 인간과 에이전트 간의 합의를 강제하는 5단계 루프를 따랐습니다.

단계 내용
제안(Proposal) 에이전트가 프롬프트를 읽고 구체적인 계획을 초안으로 작성하지만, 아직 코드를 생성하지는 않습니다.
합의(Agreement) 사용자가 계획을 검토하고 승인하거나 수정을 요청합니다.
구현(Implementation) 에이전트가 새로운 브랜치에서 기능을 구축합니다.
초안 게이트(Draft Gate) 에이전트가 자체 린팅(linting) 및 테스트 스위트를 실행하여 발견된 오류를 수정합니다.
초안 PR(Draft PR) 코드가 푸시되고 최종적인 인간 검토를 위한 풀 리퀘스트가 생성됩니다.

대부분의 AI 보조 코딩 도구는 곧바로 구현 단계로 넘어가 버려, 의도와 맞지 않는 코드를 생성하는 경우가 많습니다. 명시적인 합의 단계를 삽입함으로써, 이 루프는 맹목적인 실행을 방지하고 커밋이 이루어지기 전에 사용자가 프로젝트의 방향을 잡을 수 있게 해줍니다.

구현된 스택

에이전트는 20분 만에 프로덕션 환경에서 즉시 사용 가능한 RAG 파이프라인을 조립했습니다:

  • OpenSearch 3.7: 하이브리드 검색(벡터 + 키워드)이 구성되었습니다.
  • Local Ollama LLM: 검색 증강 응답을 위한 생성 엔진 역할을 합니다.
  • FastMCP server: 언어 모델에 4개의 커스텀 도구를 노출합니다.
  • Skaffold 및 Helm: 컨테이너 빌드, Kubernetes 매니페스트, 서비스 배포를 자동화하는 스크립트입니다.

파이프라인에는 30개의 기사가 데이터로 입력되어, 엔드 투 엔드(end-to-end) 검색 및 생성 테스트를 즉시 수행할 수 있었습니다. 개발자가 각 구성 요소를 설정하는 데 보통 하루 꼬박 걸린다는 점을 고려하면, 그 속도는 놀라운 수준입니다.

시스템을 무너뜨릴 뻔한 버그들

에이전트의 신뢰성은 사람이 직접 배포할 때 흔히 중단될 만한 다섯 가지의 뚜렷한 실패 사례를 통해 시험대에 올랐습니다:

  1. OpenSearch 인증 오류 – 에이전트가 잘못된 비밀 키(secret key)를 제공하여 클러스터에서 연결을 거부했습니다.
  2. URL 내 정규식(Regex) 오타 – 문자 하나가 잘못 입력되어 유효한 엔드포인트가 끊긴 링크로 변했고, 이로 인해 데이터 로더가 작동하지 않았습니다.
  3. 모델 이름 불일치 – 커넥터가 다른 Ollama 모델 식별자를 요구하여 "model not found" 오류가 발생했습니다.
  4. JVM 메모리 제한 – 대량 인덱싱 과정에서 Java 힙 메모리가 고갈되어 메모리 부족(out-of-memory) 충돌이 발생했습니다.
  5. 모델 청크의 실수로 인한 삭제 – 정리 스크립트가 필수 파일을 중복 파일로 잘못 식별하여 삭제함으로써 전체 파이프라인을 위협했습니다.

에이전트가 막혔을 때, “loop-police”가 개입하다

loop-police라고 불리는 동반 와치독(watchdog)이 루프의 상태를 모니터링합니다. 삭제 버그가 발생했을 때 에이전트가 종료되지 않는 무한 루프에 빠지자, loop-police는 정체 상태를 감지하고 현재 브랜치를 중단시킨 뒤 강제로 '합의(Agreement)' 단계로 되돌렸습니다. 그 후 에이전트는 실수를 인지하고 손상된 상태를 정리한 뒤 파이프라인을 처음부터 다시 구축했습니다. 이 자가 치유(self-healing) 사이클은 초기 계획 승인 이후 인간의 개입 없이 완료되었습니다.

개발자에게 주는 의미

  • 제어권을 희생하지 않는 속도. 루프를 통해 엔지니어는 의도를 명시한 다음, 인간이 승인한 청사진을 따르는 자율 시스템에 실행을 맡길 수 있습니다.
  • 내장된 안전망. 자동화된 린팅, 테스트, 그리고 폭주하는 루프를 끊을 수 있는 와치독은 조용한 실패(silent failure)의 위험을 줄여줍니다.
  • 낮아진 진입 장벽. Helm, Kubernetes 또는 벡터 검색에 대한 깊은 전문 지식이 부족한 팀도 필요한 내용을 일상적인 언어로 설명함으로써 기능적인 스택을 구축할 수 있습니다.

이 방식이 만능 해결책(silver bullet)은 아닙니다. '합의(Agreement)' 단계에서는 비현실적인 기대치나 보안 문제를 포착할 수 있는 지식 있는 검토자가 여전히 필요합니다. 루프가 도메인 전문 지식을 대체하는 것은 아닙니다. 단지 반복적인 기반 작업(plumbing work)을 반복 가능한 패턴으로 패키징해 줄 뿐입니다.