제품

Projects 소개

Alexi Robbins & Fredrika Lindh읽는 데 4분

오늘 Cursor에서 Projects를 출시합니다. Projects를 사용하면 기능 하나, 마이그레이션, 앱 전체처럼 더 큰 규모의 작업을 진행할 수 있습니다. 수개월에 걸친 작업의 컨텍스트를 유지하고, 수천 개의 하위 에이전트에 작업을 위임하며, 별도의 프롬프트 없이도 반복 작업을 수행합니다.

지난 2월 저희는 에이전트 군이 작업 전체를 맡아 수행하는 소프트웨어 개발의 제3의 시대라는 비전을 제시했습니다. Projects는 그 비전을 실제로 구현한 결과물입니다. 추상화 수준을 한 단계 끌어올려, 개발자가 에이전트를 관리하는 일에서 벗어나 작업 자체를 지휘할 수 있게 합니다.

Cursor에서는 몇 달째 Projects를 사용해 수백 건의 PR에 이르는 마이그레이션을 실행하고, 디자인 시스템의 일관성을 유지하고, Projects 자체를 배포하는 등의 작업을 해왔습니다. 그 결과 생산성을 크게 끌어올리는 도구임을 확인했습니다. 신규 사용자는 30% 더 많은 PR을 merge했고, Projects를 주로 사용하는 사용자는 6배 더 많은 PR을 merge했습니다."

하나의 coordinator로 수천 개의 에이전트를 지휘하세요

Project는 coordinator 에이전트와 대화하며 관리합니다. coordinator는 직접 코드를 작성하지 않고, 코드를 작성하는 다른 에이전트들을 지휘합니다. 직접 실행하지 않고 위임하기 때문에 작업에 묶여 멈추는 일이 없고, 언제나 지시에 즉각 반응합니다.

Projects를 가능하게 하는 세 가지 핵심 기능이 있습니다:

기본은 클라우드, 필요할 때는 로컬. Project는 자체 컴퓨터에서 실행되므로 노트북을 닫아도 작업이 멈추지 않습니다. 덕분에 노트북으로 감당할 수 있는 수준보다 더 많은 하위 에이전트를 병렬로 실행할 수 있습니다. 내 머신에서 테스트가 필요할 때는 coordinator가 로컬 에이전트를 띄워 그곳에서 실행합니다.

공유 컨텍스트. 작업을 시작할 때마다 에이전트에게 처음부터 설명할 필요는 없어야 합니다. 각 Project는 에이전트가 사용하는 모든 클라우드 및 로컬 머신 간에 동기화되는 파일 집합을 유지합니다. 에이전트는 조사 결과와 artifact는 물론, 코드베이스에 대해 알게 된 내용과 사용자가 선호하는 작업 방식까지 함께 기록합니다. 예를 들어 어떤 에이전트가 특정 service를 테스트하는 방법을 알아냈다면, 이후의 모든 에이전트가 그 지침을 활용할 수 있습니다. 이 컨텍스트는 Project와 함께 쌓여가며, 시간이 지날수록 coordinator를 더욱 효과적으로 만들어 줍니다.

Subscriptions. coordinator는 Slack 채널을 watch하거나, 일정에 따라 실행되거나, 내 모든 PR을 따라가며 CI를 고치고 PR이 열리거나 merge될 때 동작할 수 있습니다. 이렇게 사용자가 프롬프트를 줄 때까지 기다리지 않고, 스스로 탐지한 signal에 따라 동작을 취할 수 있습니다.

Cursor 팀은 Projects를 이렇게 사용합니다

Cursor 엔지니어들이 Projects로 하는 작업은 대부분 다음 세 가지 패턴에 속합니다.

기능 작업

대부분의 엔지니어는 규모가 큰 작업을 진행할 때 Project를 만듭니다. 기능 작업은 보통 에이전트가 시스템을 조사하고 알아낸 내용을 공유 컨텍스트로 기록하면서 시작됩니다. 이어서 coordinator가 계획을 세우고, 에이전트들을 투입해 계획의 여러 부분을 병렬로 구현하고 테스트하게 합니다.

피드백을 주고받는 턴이 쌓일수록 Project는 여러분의 아키텍처와 선호를 학습합니다. 기능을 시험해 볼 준비가 되면 coordinator가 여러분의 컴퓨터에서 에이전트를 실행해 로컬에서 실행할 수 있습니다. 배포한 뒤에도 같은 Project가 로그를 모니터링하고, 최초 결정의 배경이 된 전체 컨텍스트를 바탕으로 버그 보고서를 처리할 수 있습니다.

마이그레이션

Projects는 시작하기는 쉽지만 끝내기는 어려운 마이그레이션에 특히 유용합니다. Cursor 팀은 새로운 프레임워크를 도입하고 스타일링 시스템을 교체하는 데 Projects를 활용했고, 그 과정에서 수백 개의 PR을 처리했습니다.

먼저 coordinator와 함께 안전한 접근 방식을 정하면, coordinator가 그 방식을 코드베이스 전반에 점진적으로 적용합니다. 초기에는 PR을 하나하나 꼼꼼히 검토하게 됩니다. 수정 사항이 문제없이 유지되는 것이 확인되면 검토를 점차 줄이게 되고, coordinator가 스스로 마이그레이션을 계속 진행해 나갑니다.

Gardening

Projects는 코드 품질 유지나 회귀 감시처럼 끝이 없는 작업을 다루기에 특히 좋습니다. coordinator에게 새 PR을 따라가거나 Slack의 버그 보고서를 지켜보거나 정해진 일정에 따라 실행하도록 지시해 두면, 새로운 작업이 생길 때마다 알아서 움직입니다.

우리 팀의 한 엔지니어는 디자인 시스템 Project를 이런 방식으로 운영합니다. 처음에는 엔지니어가 수정 사항을 하나하나 검토하며 잘못된 부분을 바로잡았습니다. 지금은 coordinator가 새로 올라오는 모든 PR을 살펴 디자인 시스템에 속하는 컴포넌트를 추출하고, 같은 실수가 두 번 발견되면 lint 규칙을 추가합니다. 이 Project는 하루 20~100개의 PR을 다루는 규모로 커지고 있어, coordinator가 작업을 정리하고 엔지니어는 주의가 필요한 지점만 살펴봅니다.

Projects 시작하기

Projects는 베타로 제공되며, 오늘부터 모든 사용자에게 순차적으로 배포됩니다. 왼쪽 내비게이션에서 Project를 시작해 만들고 싶은 것을 설명하면, 그다음부터는 coordinator가 알아서 진행합니다. 여러 PR에 걸친 기능 개발, 마이그레이션, 자리를 비운 사이에 처리해두고 싶은 작업처럼 대화 한 번으로 끝나지 않는 일에 특히 잘 맞습니다.

분류: 제품

작성자s: Alexi Robbins & Fredrika Lindh