1. 자체 코딩 에이전트 구축의 배경과 필요성
Stripe가 범용 AI 코딩 도구에 의존하지 않고 ‘Minions’를 직접 개발한 이유는 자사 코드베이스의 특수성 때문입니다. * 거대한 코드 규모와 특수 스택: Stripe는 수억 줄에 달하는 Ruby 코드로 구성되어 있으며, Rails가 아닌 독자적인 프레임워크와 Sorbet 타입 시스템을 사용합니다. * 내부 라이브러리 의존성: LLM이 학습하지 못한 수많은 자체 라이브러리가 존재하여, 범용 모델만으로는 정확한 코드 작성이 어렵습니다. * 높은 안정성 요구: 연간 1조 달러 이상의 거래를 처리하는 시스템 특성상 엄격한 규제와 컴플라이언스를 준수해야 하며, 이는 고도의 맥락 이해를 필요로 합니다.
2. Minions의 주요 특징 및 워크플로우
Minions는 ‘원샷(One-shot)’ 작업을 목표로 설계되었으며, 개발자의 업무 흐름에 자연스럽게 녹아들어 있습니다. * 심리스한 인터페이스: 개발자는 Slack에서 에이전트를 태그하거나 내부 티켓 시스템의 버튼을 클릭하는 것만으로 작업을 시작할 수 있습니다. * 격리된 개발 환경(Devbox): 에이전트 실행 시 10초 이내에 준비되는 독립된 개발 환경이 할당되어 안전하게 코드를 수정하고 테스트할 수 있습니다. * 자율적인 코드 생성 및 검증: 에이전트는 코드를 수정한 후 로컬 린트와 테스트를 스스로 실행하며, 실패 시 피드백을 바탕으로 코드를 수정합니다.
3. 기술적 구현: Goose와 MCP의 활용
Minions의 내부 아키텍처는 효율적인 도구 활용과 맥락 파악에 중점을 둡니다. * Goose 포크 및 커스텀: Block의 오픈소스 에이전트인 ‘goose’를 포크하여 Stripe의 결정론적 워크플로우(Git 작업, 테스트 등)와 결합했습니다. * Toolshed와 MCP: ‘Model Context Protocol(MCP)’을 통해 400개 이상의 내부 도구와 연결되는 ‘Toolshed’ 서버를 구축하여 에이전트에게 풍부한 맥락을 제공합니다. * 피드백 루프 최적화: 비용과 시간을 고려하여 CI 실행을 최대 2회로 제한하되, 로컬에서 최대한 많은 오류를 잡아내는 ‘Shift-left’ 전략을 취합니다.
4. 도입 성과 및 향후 전망
현재 Stripe 내에서 Minions의 영향력은 상당합니다. * 생산성 향상: 매주 1,000개 이상의 PR이 에이전트에 의해 생성되며, 이는 개발자가 여러 작업을 병렬로 처리할 수 있게 돕습니다. * 품질 유지: 에이전트가 작성한 코드는 반드시 사람의 리뷰를 거치지만, 코드 자체는 100% AI가 작성하여 리뷰어의 부담을 줄입니다. * 미래 방향성: Stripe는 에이전트가 단순 반복 업무를 넘어 복잡한 엔지니어링 과제를 해결하는 동료로 진화할 것으로 기대하고 있습니다.