Cursor 에이전트가 이제 자기 컴퓨터를 직접 제어할 수 있습니다
Agent의 역량은 실행되는 환경에 달려 있습니다. 자신이 만들고 있는 소프트웨어를 직접 사용할 수 없으면 에이전트는 결국 한계에 부딪힙니다.
지난 몇 달 동안 저희는 에이전트에 완전한 개발 환경이 갖춰진 전용 가상 머신을 제공하고, 변경 사항을 테스트하고 결과물(동영상, 스크린샷, 로그)을 생성할 수 있게 하면서 이 문제를 내부적으로 해결해 왔습니다. 이를 통해 사용자는 에이전트의 작업을 빠르게 검증할 수 있습니다.
오늘 저희는 Cursor 클라우드 에이전트의 새 버전을 웹, 모바일, 데스크톱 앱, Slack, GitHub 등 어디에서 작업하든 사용할 수 있도록 제공합니다. 클라우드 에이전트는 스스로 여러분의 코드베이스에 온보딩하고, 변경 사항을 시연할 결과물과 함께 바로 병합할 수 있는 PR을 생성합니다. 또한 브랜치를 로컬에 체크아웃하지 않고도 에이전트의 원격 데스크톱을 제어해 수정된 소프트웨어를 직접 사용해 보고, 필요하면 직접 수정할 수도 있습니다.
이는 Tab 자동완성에서 벗어나 에이전트와 동기적으로 작업하는 방식으로 전환한 이후, 저희의 소프트웨어 개발 방식에서 가장 큰 변화였습니다. 이제 Cursor에서 병합하는 PR의 30% 이상이 클라우드 샌드박스에서 자율적으로 작동하는 에이전트에 의해 생성되고 있습니다.


한 단계 더 높은 자율성
로컬 에이전트는 코드 생성을 쉽게 시작할 수 있게 해주지만, 곧 충돌이 생기고 서로는 물론 사용자와도 컴퓨터 리소스를 두고 경쟁하게 됩니다. 클라우드 에이전트는 각 에이전트에 격리된 VM을 제공해 이런 제약을 없애므로, 여러 에이전트를 병렬로 실행할 수 있습니다.
클라우드 에이전트는 자체 샌드박스에서 소프트웨어를 직접 만들고 상호작용할 수도 있어, 첫 시도를 그대로 넘기는 대신 결과를 검증할 때까지 반복적으로 작업할 수 있습니다. 아래 영상은 컴퓨터 활용을 강화하는 초기 연구에서 나온 개념 증명입니다.
브라우저에서 에이전트가 웹페이지를 탐색하고, 스프레드시트 같은 도구를 다루고, 데이터를 해석해 결정을 내리며, 복잡한 UI 환경에서 문제를 해결하는 모습을 확인할 수 있습니다.
Cursor에서 클라우드 에이전트 사용하기
지난 한 달 동안 저희는 내부적으로 클라우드 에이전트를 사용해 왔고, 그 결과 소프트웨어를 개발하는 방식이 바뀌었습니다. 작업을 잘게 쪼개고 에이전트를 일일이 관리하는 대신, 더 크고 도전적인 작업을 맡기고 스스로 실행하도록 둡니다.
다음은 저희가 클라우드 에이전트를 활용하는 몇 가지 방식입니다:
새 기능 개발
저희는 최근 Cursor Marketplace에 출시한 plugins를 개발하는 데 클라우드 에이전트를 활용했습니다. 다음은 저희가 사용한 프롬프트 중 하나입니다:
주어진 plugin 페이지에 표시되는 각 component마다 소스 코드 링크를 포함하고 싶습니다. skills, commands, rules, 하위 에이전트의 경우에는
.md파일입니다. hooks의 경우에는hooks.json입니다. mcps의 경우에는.mcp.json또는 정의된 manifest입니다. plugin의 모든 components를 인덱싱할 때 소스 파일을 추적하고, 기반 GitHub URL을 통해 해당 파일로 연결되는 링크를 구성하세요. 이것을 프런트엔드에 노출하고, 프런트엔드에서 이 아이콘을 사용해 GitHub로 링크하도록 하세요.https://github.com/prisma/cursor-plugin로 로컬에서 테스트하세요
에이전트는 이 기능을 구현한 뒤, 가져온 Prisma plugin으로 이동해 각 component를 클릭하며 GitHub 링크를 검증하는 과정을 직접 기록했습니다.
로컬 테스트를 위해 에이전트는 marketplace 페이지를 제어하는 feature flag를 일시적으로 우회한 뒤, 푸시하기 전에 원래대로 되돌렸습니다. main 브랜치에 rebase한 뒤 merge conflict를 해결했고, 하나의 commit으로 squash했습니다.
취약점 재현하기
저희는 Slack에서 클라우드 에이전트를 시작하면서 "이 취약점을 분류하고 아주 자세히 설명해 주세요"라는 프롬프트와 함께 클립보드 유출 취약점에 대한 설명을 전달했습니다. 에이전트가 실행을 마치자, Slack 스레드에 자신이 수행한 작업의 요약을 답글로 남겼습니다.
에이전트는 노출된 API를 통해 취약점을 악용하는 HTML 페이지를 만들었습니다. 데모 페이지를 로컬에서 호스팅하기 위해 백엔드 서버를 실행했고, Cursor의 인앱 브라우저에서 해당 페이지를 불러왔습니다.
비디오 아티팩트에는 전체 공격 흐름이 담겨 있습니다. 에이전트는 테스트 UUID를 시스템 클립보드에 복사하고, Cursor의 브라우저에서 데모 페이지를 불러온 뒤, 버튼을 클릭해 UUID를 유출해 화면에 표시했습니다. 또한 클립보드 탈취가 성공한 것을 보여주는 스크린샷을 찍고 데모 HTML 파일을 리포지토리에 커밋했습니다.
빠른 수정 처리하기
저희는 클라우드 에이전트에게 정적인 "Read lints" 레이블을 lint 결과에 따라 동적으로 바뀌는 레이블로 교체해 달라고 요청했습니다. 에이전트는 진단이 0개일 때는 "린터 오류 없음", 진단이 N개일 때는 "오류 N개 발견"을 구현했고, 기존 CSS에 맞게 스타일도 적용했습니다.
에이전트는 Cursor 데스크톱 앱에서 두 가지 경우를 테스트했습니다. 여러 type error가 있는 파일과 오류가 전혀 없는 파일입니다. 비디오 아티팩트에서는 오류가 없는 파일에 “린터 오류 없음”을 보여주는 펼쳐진 그룹이 있는지 에이전트가 확인하는 모습을 볼 수 있습니다.
UI 테스트하기
저희는 cursor.com/docs에서 모든 것이 제대로 작동하는지 확인하기 위해 클라우드 에이전트를 실행했습니다. 에이전트는 45분 동안 docs 사이트 전체를 꼼꼼히 점검했습니다. 에이전트는 사이드바, 상단 내비게이션, 검색, 페이지 복사 버튼, 피드백 공유 대화상자, 목차, 테마 전환을 포함해 테스트한 모든 기능의 요약을 제공했습니다.
이제 에이전트가 구현의 대부분을 처리할 수 있게 되면서, 개발자의 역할은 방향을 제시하고 무엇을 출시할지 결정하는 데 더 가까워졌다는 것을 알게 되었습니다.
다음 단계
저희는 에이전트가 PR을 병합하고, 롤아웃을 관리하고, 프로덕션을 모니터링하는 자율 운영 코드베이스의 미래를 향해 나아가고 있습니다. 개발자가 에이전트를 사용해 diff를 만드는 세상에서, 에이전트가 테스트를 거친 기능을 엔드투엔드로 배포하는 세상으로 나아갈 것입니다.
이러한 전환을 완전히 실현하려면 도구, 모델, 그리고 상호작용 방식을 개선해야 합니다. 저희의 단기적 초점은 여러 에이전트 간 작업을 조율하고, 이전 실행에서 학습하며 경험이 쌓일수록 더 효과적으로 동작하는 모델을 만드는 데 있습니다.
cursor.com/onboard에서 시작해 에이전트가 스스로 설정을 완료하고 데모를 녹화하는 모습을 확인해 보세요. 또는 문서에서 더 자세히 알아보세요.