【今週の話題】CursorのBackground Agents (Preview)が開始
この機能は、Cursor社がホストするリモートの仮想マシン(Ubuntu VM)上で動作するコーディングエージェントです。Cursor版Devinといえます。

Background Agentsが編集するコードは、実行時にGitHubからクローンしたものです。そのため、ローカルのソースコードを編集しても、Background Agents側には一切反映されません。Cursorの親ウィンドウ内に、リモート専用のCursor子ウィンドウが開き、これを複数同時に立ち上げることができます。

利用方法
まず、Cursorのバージョンを0.50以上にアップデートする必要があります。次に、Beta設定からBackground Agentを有効にしてください。
また、プライバシーモードを無効にしておく必要があります。プライバシーモードは、ソースコードをCursorのサーバーに保存しない設定ですが、Background AgentではVM上でソースコードをチェックアウトして開発を行うため、今のところ無効化が必須となっています。
この機能を利用するには、ワークスペースがGitHubのリポジトリである必要があります。さらに、GitHubアカウントをCursorに接続し、リポジトリへのアクセスをCursorアプリケーションに許可します。これによって、VM上で行ったコード編集の結果をGitHub上のブランチにプッシュし、プルリクエストを作成することが可能です。
なお、条件を満たしても、機能が有効化されるまで時間がかかる場合があります。筆者の環境では、実際に利用可能になるまで1日ほど待つ必要がありました。

VM環境
Background Agentが稼働する仮想マシンの環境はLinux(Ubuntu)です。そのため、WindowsアプリやiOSアプリの開発など、Linux以外のOSを前提とした開発用途には対応していません。
仮想マシン(VM)のスペックについて。これは公式情報ではなく、利用時に調べた現時点でのものです。コマンド実行結果がこのGistにあります。
Background Agentsが動作するVMは、Ubuntu 25.04(x86_64)で、AWS EC2 US-west-1リージョンのr7i.4xlargeインスタンス上で稼働していました。unameの結果はLinux cursor 6.8.0-1024-awsです。
素朴なUbuntu環境ですが、中身はカスタマイズされています。LLVMやClangのツールチェイン、OpenJDK、Perl、Python、Goが標準でインストールされており、Node.jsはNVM経由で導入されています。一方、Ruby、Rust、PHPなどはデフォルトでは含まれていません。使いたい場合は自分でセットアップします。
また、XvfbやXデスクトップ環境などもプリインストールされています。これは、おそらくCursor自体の開発環境としても利用されているためと考えられます。筆者はXデスクトップアプリ(xclock)の起動に成功したので、その気になればAndroidエミュレータなども起動してデバッグできそうです。
このインスタンスでvscode-server改めcursor-serverが起動していて、ローカルのCursorから接続してエージェントウィンドウを開いてクラウドIDEとして使用できます。DevinやGitHub Copilotだとブラウザ上で行なっていることをCursorはアプリ内に閉じ込めている感じですね。
モデルはMax系のみ対応しており、Cursorの説明によるとo3が推奨らしいです。Max系はロングコンテキスト処理をサーバー連携など駆使して拡張しているので有効そうですが、o3とそれ以外の差はまだ筆者の体験では差を感じていないです。長時間タスクに向いてるとのことです。
時間といえば料金はモデル呼び出しトークン量に応じて課金されるようですが、コンピュートのコストも相当かかっていると思われるので正式リリース時にはDevinのようなCPU時間料金も含まれているかもしれません。
セットアップ方法
Background Agentを初めて利用する際には、最初に仮想マシン(VM)のセットアップが必要です。設定情報は、プロジェクト内の .cursor/environment.json
ファイルに保存して使いまわせます。
プロビジョニング方法は2通りあり、1つはシェルにログインしてコマンドを自由に実行して環境を整え、スナップショットを作成し、その時点での環境を使い回す方法です。もう1つは、DockerfileをRunbookとして活用してVM環境を自動で構築する方法です。ただし、実際にコンテナをビルドするわけではなく、Dockerfileに記載された実行手順を流用する形となっています。VMのログを見ていたところ、ベースとなるイメージはpublic.ecr.aws
にホストされていました。
environment.jsonに記述する主な項目として、installにはVMごとの初期化スクリプト、startにはマシン起動後に実行するプログラムを指定します。また、terminalsには、バックグラウンドでtmuxセッションとして起動しておくプロセス(たとえばwatch系のコマンドなど)を定義できます。ドキュメントに載っている以下はCursor自身の設定ファイルのようです。
