Background Agents를 사용하면 원격 환경에서 코드를 편집하고 실행하는 비동기 에이전트를 생성할 수 있습니다. 상태를 확인하고, 후속 작업을 보내거나, 언제든지 직접 제어할 수 있습니다.

사용 방법

  1. 를 눌러 백그라운드 에이전트 제어판을 열어 에이전트 목록을 확인하고, 새 에이전트를 생성하며, 상태를 확인합니다.
  2. 프롬프트를 제출한 후, 목록에서 에이전트를 선택하여 상태를 확인하고 머신에 접속합니다.

백그라운드 에이전트는 며칠 정도의 데이터 보존이 필요합니다.

피드백

Discord #background-agent 채널 또는 background-agent-feedback@cursor.com으로 피드백을 보내주세요. 버그, 기능 요청 또는 아이디어를 보내주시기 바랍니다.

설정

백그라운드 에이전트는 기본적으로 격리된 ubuntu 기반 머신에서 실행됩니다. 에이전트는 인터넷에 액세스할 수 있으며 패키지를 설치할 수 있습니다.

GitHub 연결

백그라운드 에이전트는 GitHub에서 저장소를 복제하고 별도의 브랜치에서 작업하여 쉬운 인수인계를 위해 저장소에 푸시합니다. 저장소(및 종속 저장소나 서브모듈)에 읽기-쓰기 권한을 부여하세요. 향후 다른 제공업체(GitLab, BitBucket 등)도 지원할 예정입니다.

기본 환경 설정

고급 사용 사례의 경우 환경을 직접 설정하세요. 원격 머신에 연결된 IDE 인스턴스를 가져오세요. 머신을 설정하고 도구와 패키지를 설치한 다음 스냅샷을 생성하세요. 런타임 설정을 구성하세요:
  • 설치 명령은 에이전트가 시작되기 전에 실행되어 런타임 종속성을 설치합니다. 이는 npm install이나 bazel build를 실행하는 것을 의미할 수 있습니다.
  • 터미널은 에이전트가 작업하는 동안 백그라운드 프로세스를 실행합니다 - 웹 서버를 시작하거나 protobuf 파일을 컴파일하는 것과 같습니다.
가장 고급 사용 사례의 경우 머신 설정을 위해 Dockerfile을 사용하세요. dockerfile을 사용하면 시스템 수준 종속성을 설정할 수 있습니다: 특정 컴파일러 버전, 디버거를 설치하거나 기본 OS 이미지를 전환할 수 있습니다. 전체 프로젝트를 COPY하지 마세요 - 우리가 작업 공간을 관리하고 올바른 커밋을 체크아웃합니다. 여전히 설치 스크립트에서 종속성 설치를 처리하세요. 개발 환경에 필요한 모든 비밀을 입력하세요 - 이들은 데이터베이스에 암호화되어 저장되고(KMS 사용) 백그라운드 에이전트 환경에서 제공됩니다. 머신 설정은 .cursor/environment.json에 저장되며, 이는 저장소에 커밋하거나(권장) 비공개로 저장할 수 있습니다. 설정 플로우가 environment.json 생성을 안내합니다.

유지보수 명령

새 머신을 설정할 때 기본 환경에서 시작한 다음 environment.jsoninstall 명령을 실행합니다. 이 명령은 개발자가 브랜치를 전환할 때 실행하는 것입니다 - 새로운 종속성을 설치합니다. 대부분의 사람들에게 install 명령은 npm install이나 bazel build입니다. 빠른 머신 시작을 보장하기 위해 install 명령이 실행된 후 디스크 상태를 캐시합니다. 여러 번 실행되도록 설계하세요. install 명령에서는 디스크 상태만 유지됩니다 - 여기서 시작된 프로세스는 에이전트가 시작될 때 살아있지 않습니다.

시작 명령

install을 실행한 후 머신이 시작되고 start 명령을 실행한 다음 모든 terminals를 시작합니다. 이는 에이전트가 실행될 때 살아있어야 하는 프로세스를 시작합니다. start 명령은 종종 생략할 수 있습니다. 개발 환경이 docker에 의존하는 경우 사용하세요 - start 명령에 sudo service docker start를 넣으세요. terminals는 앱 코드용입니다. 이러한 터미널은 사용자와 에이전트가 사용할 수 있는 tmux 세션에서 실행됩니다. 예를 들어, 많은 웹사이트 저장소에서 npm run watch를 터미널로 설정합니다.

environment.json 사양

environment.json 파일은 다음과 같을 수 있습니다:
{
  "snapshot": "POPULATED_FROM_SETTINGS",
  "install": "npm install",
  "terminals": [
    {
      "name": "Run Next.js",
      "command": "npm run dev"
    }
  ]
}
공식적으로 사양은 여기에 정의되어 있습니다.

모델

백그라운드 에이전트에는 Max Mode 호환 모델만 사용할 수 있습니다.

가격

Background Agent 가격에 대해 자세히 알아보세요.

보안

Background Agents는 Privacy Mode에서 사용할 수 있습니다. 저희는 귀하의 코드로 훈련하지 않으며 에이전트 실행을 위해서만 코드를 보관합니다. Privacy mode에 대해 자세히 알아보기. 알아두어야 할 사항:
  1. 편집하려는 저장소에 대해 GitHub 앱에 읽기-쓰기 권한을 부여하세요. 저희는 이를 사용하여 저장소를 복제하고 변경사항을 적용합니다.
  2. 귀하의 코드는 격리된 VM 내의 AWS 인프라에서 실행되며, 에이전트에 액세스할 수 있는 동안 VM 디스크에 저장됩니다.
  3. 에이전트는 인터넷에 액세스할 수 있습니다.
  4. 에이전트는 모든 터미널 명령을 자동으로 실행하여 테스트를 반복할 수 있습니다. 이는 모든 명령에 대해 사용자 승인이 필요한 foreground agent와 다릅니다. 자동 실행은 데이터 유출 위험을 초래합니다: 공격자가 프롬프트 인젝션 공격을 실행하여 에이전트를 속여 악성 웹사이트에 코드를 업로드하도록 할 수 있습니다. background agents의 프롬프트 인젝션 위험에 대한 OpenAI의 설명을 참조하세요.
  5. privacy mode가 비활성화된 경우, 제품 개선을 위해 프롬프트와 개발 환경을 수집합니다.
  6. background agent를 시작할 때 privacy mode를 비활성화한 후 에이전트 실행 중에 활성화하면, 에이전트가 완료될 때까지 privacy mode가 비활성화된 상태로 계속됩니다.