【今週の話題】CursorのBackground Agents (Preview)が開始

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

Cursor – Background Agents
How to use background agents toi parallelize your work.

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

青枠がCursorの親Windowで赤枠のみがBackground Agents

利用方法

まず、Cursorのバージョンを0.50以上にアップデートする必要があります。次に、Beta設定からBackground Agentを有効にしてください。

また、プライバシーモードを無効にしておく必要があります。プライバシーモードは、ソースコードをCursorのサーバーに保存しない設定ですが、Background AgentではVM上でソースコードをチェックアウトして開発を行うため、今のところ無効化が必須となっています。

この機能を利用するには、ワークスペースがGitHubのリポジトリである必要があります。さらに、GitHubアカウントをCursorに接続し、リポジトリへのアクセスをCursorアプリケーションに許可します。これによって、VM上で行ったコード編集の結果をGitHub上のブランチにプッシュし、プルリクエストを作成することが可能です。

なお、条件を満たしても、機能が有効化されるまで時間がかかる場合があります。筆者の環境では、実際に利用可能になるまで1日ほど待つ必要がありました。

新しいエージェントを生成するには Cmd + ' (または Ctrl + ')

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自身の設定ファイルのようです。

https://docs.cursor.com/background-agent#the-environment-json-spec

Subscribe to laiso

Sign up now to get access to the library of members-only issues.
Jamie Larson
Subscribe