수백 개의 자율 코딩 에이전트 확장 및 협업을 통한 학습

Scaling long-running autonomous coding · Cursor

작성자
이 섭
발행일
2026년 01월 14일

핵심 요약

  • 1 복잡한 프로젝트를 위한 다중 에이전트 코디네이션은 도전적이지만, 플래너-워커 계층 구조를 통해 효과적으로 확장 가능합니다.
  • 2 초기 동적 조정 방식의 실패를 통해 에이전트의 역할 분담과 계층 구조가 대규모 자율 코딩의 핵심임을 확인했습니다.
  • 3 장기 실행 에이전트 작업의 성공에는 모델 선택의 중요성, 불필요한 복잡성 제거, 그리고 프롬프트 엔지니어링의 역할이 결정적입니다.

도입

본 보고서는 수개월이 소요되는 복잡한 프로젝트에 자율 코딩 에이전트를 적용하여 그 한계를 탐색하고, 수백 개의 에이전트를 동시에 운영하며 협업을 조율한 경험을 공유합니다. 수백만 줄의 코드와 수조 개의 토큰을 생성하는 과정에서 얻은 학습 내용을 바탕으로, 단일 에이전트의 한계를 넘어 다중 에이전트 시스템을 효과적으로 구축하고 운영하는 방안에 대해 논의합니다.

단일 에이전트의 한계 및 초기 협업 시도

단일 에이전트는 집중된 작업에 효과적이나, 복잡한 프로젝트에서는 속도가 느립니다. 이에 따라 다중 에이전트의 병렬 실행이 필요했으나, 이들의 조율 방식이 주요 과제로 부상했습니다. 초기에는 동적 조정을 시도하여 에이전트들이 공유 파일을 통해 스스로 작업을 결정하고 잠금 메커니즘으로 충돌을 방지하려 했습니다. 그러나 이는 다음과 같은 문제에 직면했습니다:

  • 병목 현상: 에이전트들이 잠금을 너무 오래 유지하거나 해제하지 않아 처리량이 급격히 감소했습니다.

  • 취약성: 잠금을 보유한 채 에이전트가 실패하거나, 이미 보유한 잠금을 다시 획득하려 시도하는 등 시스템이 불안정했습니다.

  • 위험 회피: 계층 구조가 없는 상태에서 에이전트들은 어려운 작업을 회피하고 작은 변경사항에만 집중하여 실질적인 진전 없이 작업이 정체되었습니다.

플래너 및 워커 모델을 통한 해결

이러한 문제를 해결하기 위해 역할 분담을 통한 계층 구조를 도입했습니다. 이 새로운 파이프라인은 다음과 같은 명확한 책임을 가집니다:

  • 플래너 (Planners): 코드베이스를 지속적으로 탐색하고 작업을 생성합니다. 특정 영역에 대한 하위 플래너를 생성하여 계획 자체를 병렬화하고 재귀적으로 수행할 수 있습니다.

  • 워커 (Workers): 할당된 작업에만 집중하여 완료하고 변경사항을 푸시합니다. 다른 워커와 조율하거나 전체 그림을 신경 쓰지 않습니다.

  • 심판 에이전트 (Judge Agent): 각 주기(cycle)의 끝에 작업을 계속할지 여부를 결정합니다.

이 모델은 대부분의 조율 문제를 해결하고, 에이전트가 터널 비전에 갇히지 않고 매우 큰 프로젝트로 확장할 수 있게 했습니다.

성공적인 실험 사례

이 시스템은 다음과 같은 야심 찬 프로젝트에서 성공적인 결과를 보여주었습니다:

  • 웹 브라우저 구축: 약 일주일 동안 1,000개 파일에 걸쳐 100만 줄 이상의 코드를 작성했습니다. 수백 명의 워커가 동시에 작동하며 최소한의 충돌로 동일한 브랜치에 푸시했습니다.

  • Solid to React 마이그레이션: Cursor 코드베이스에서 3주 이상 동안 +266K/-193K 편집을 통해 Solid를 React로 마이그레이션했습니다.

  • 제품 개선: 장기 실행 에이전트가 Rust 버전을 통해 비디오 렌더링 속도를 25배 향상시키고, 커서 추적 및 자연스러운 스프링 전환을 통한 부드러운 확대/축소 및 패닝 기능을 추가했습니다.

핵심 학습 내용

  • 모델 선택의 중요성: GPT-5.2 모델은 지시 사항 준수, 집중 유지, 드리프트 방지, 정확하고 완전한 구현 측면에서 장기 실행 자율 작업에 훨씬 더 적합했습니다. Opus 4.5는 조기에 작업을 중단하고 지름길을 택하는 경향이 있었습니다.

  • 역할에 따른 모델 할당: 특정 코딩 훈련 모델(GPT-5.1-codex)보다 일반 모델(GPT-5.2)이 플래너 역할에 더 적합한 경우가 있었습니다. 이제는 보편적인 단일 모델 대신 각 역할에 가장 적합한 모델을 사용합니다.

  • 복잡성 제거: 품질 관리 및 충돌 해결을 위한 통합자(integrator) 역할을 도입했으나, 오히려 병목 현상을 유발하여 제거했습니다. 워커들이 스스로 충돌을 처리할 수 있었기 때문입니다.

  • 프롬프트 엔지니어링의 영향: 시스템 동작의 상당 부분은 에이전트에게 지시하는 프롬프트에 달려있습니다. 효과적인 조율, 비정상적인 행동 방지, 장기간 집중 유지를 위해 광범위한 실험이 필요했습니다.

결론

다중 에이전트 조율은 여전히 어려운 문제이지만, 더 많은 에이전트를 투입하여 자율 코딩을 확장할 수 있다는 질문에 대한 답은 예상보다 낙관적입니다. 수백 개의 에이전트가 단일 코드베이스에서 몇 주 동안 협력하여 야심 찬 프로젝트에서 실질적인 진전을 이룰 수 있음을 확인했습니다. 현재 시스템은 최적화되지 않았고, 드리프트 및 터널 비전 방지를 위한 주기적인 초기화가 필요하지만, 여기서 개발된 기술은 Cursor의 에이전트 기능에 큰 영향을 미칠 것입니다. 이는 AI 지원 소프트웨어 개발 분야의 가장 어려운 문제에 대한 중요한 진전을 시사합니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!