カーソルエージェントが自身のコンピューターを制御可能に
クラウドエージェントは作成したソフトウェアを使用して変更を検証し、作業をデモンストレーションできるようになりました。
キーポイント
Cursorがクラウドエージェントを一般公開し、仮想マシン上で自律的にソフトウェア開発・テスト・PR作成を実行可能にした
エージェントがブラウザ操作やデスクトップアプリケーション使用など、複雑なUI環境での作業を自律的に行えるよう進化
Cursor社内では既にマージされるPRの30%以上がクラウドエージェントによって作成されており、開発プロセスの変革が進行中
影響分析・編集コメントを表示
影響分析
この発表はAIエージェントの自律性を新たな段階に引き上げる重要な進展である。エージェントが仮想環境でソフトウェアを実際に操作・検証できるようになることで、単なるコード生成から完全な開発サイクルを自律的に実行する能力へと進化しており、ソフトウェア開発の自動化と効率化に大きな影響を与える可能性がある。
編集コメント
AIエージェントが単なるコード生成ツールから、実際の開発環境で自律的に作業を完遂する存在へと進化した画期的な発表。開発者の役割が「作業の指示」から「成果の検証」へとシフトする可能性を示唆している。
エージェントの能力は、それが動作する環境によってのみ決まります。自身が作成しているソフトウェアを使用する能力がなければ、エージェントは限界に達してしまいます。
過去数ヶ月間、私たちはこの問題に対処するため、エージェントに完全な開発環境を備えた独自の仮想マシンと、変更をテストし成果物(動画、スクリーンショット、ログ)を生成する能力を与えることで、内部で対応してきました。これにより、あなたはエージェントの作業を迅速に検証できます。
本日、私たちはCursorクラウドエージェントの新バージョンを、ウェブ、モバイル、デスクトップアプリ、Slack、GitHubを含む、あなたが作業するあらゆる場所から利用可能にします。クラウドエージェントは、あなたのコードベースに自らをオンボーディングし、変更内容をデモするための成果物とともに、マージ可能なPRを生成します。また、エージェントのリモートデスクトップを制御して、変更されたソフトウェアを使用したり、自分で編集を加えたりすることもできます。ローカルでブランチをチェックアウトする必要はありません。
これは、タブ補完からエージェントとの同期作業への移行以来、ソフトウェア構築方法における最大の変革です。CursorでマージされるPRの30%以上が、現在、クラウドサンドボックスで自律的に動作するエージェントによって作成されています。
#自律性の次のレベル
ローカルエージェントはコード生成を簡単に始められますが、すぐに競合が発生し、互いに(そしてあなたと)コンピューターリソースを奪い合います。クラウドエージェントは、各エージェントに分離されたVMを提供することでこの制約を取り除き、多数を並行して実行できるようにします。
クラウドエージェントはまた、自身のサンドボックス内で直接ソフトウェアをビルドし操作できるため、最初の試みを引き渡すのではなく、出力を検証するまで反復作業を行うことができます。以下の動画は、強化されたコンピューター使用に関する私たちの初期研究からの概念実証を示しています。
エージェントがブラウザでウェブページを操作し、スプレッドシートのようなツールを扱い、データを解釈して決定を下し、複雑なUI環境での問題を解決する様子を見ることができます。
エージェントは、自身のVM内でデスクトップアプリケーションと対話する様子を記録しました。
#Cursorでのクラウドエージェントの使用
過去1ヶ月間、私たちは内部でクラウドエージェントを使用しており、それはソフトウェアの構築方法を変えました。タスクを小さな塊に分割してエージェントを細かく管理する代わりに、より野心的なタスクを委任し、彼ら自身で実行させています。
これらは私たちがクラウドエージェントを使用しているいくつかの方法です:
新機能の構築
私たちはクラウドエージェントを使用してプラグインの構築を支援し、それを最近Cursorマーケットプレイスで公開しました。以下は私たちのプロンプトの一例です:
指定されたプラグインページに表示される各コンポーネントについて、ソースコードへのリンクを含めたいと考えています。スキル、コマンド、ルール、サブエージェントについては、それは.mdファイルです。フックについては、hooks.jsonです。mcpsについては、それが定義されている.mcp.jsonまたはマニフェストです。プラグインのすべてのコンポーネントをインデックス化する際に、ソースファイルを追跡し、基盤となるgithub URLを介してそのファイルへのリンクを構築してください。これをフロントエンドに表示し、このアイコンを使用してフロントエンドがgithubにリンクするようにします。https://github.com/prisma/cursor-plugin でテストしてください。
エージェントは機能を実装した後、インポートされたPrismaプラグインに移動し、各コンポーネントをクリックしてGitHubリンクを確認する様子を自身で記録しました。
エージェントは、ボタンをクリックして正しいソースファイルにリンクしていることを確認する様子を記録しました。
ローカルテストでは、エージェントは一時的にマーケットプレイスページを制限している機能フラグを迂回し、プッシュする前に元に戻しました。メインにリベースし、マージ競合を解決し、単一のコミットにスカッシュしました。
脆弱性の再現
私たちはSlackからクラウドエージェントを起動し、「この脆弱性を詳細に調査・説明してください」というプロンプトとともに、クリップボードデータ流出の脆弱性の説明を送りました。エージェントの実行が終了すると、Slackスレッドで達成内容の概要を返信しました。
エージェントは、公開されたAPIを介して脆弱性を悪用するHTMLページを構築しました。デモページをローカルでホストするためのバックエンドサーバーを起動し、Cursorのアプリ内ブラウザでページを読み込みました。
動画成果物は完全な攻撃フローを示しています:エージェントはテスト用UUIDをシステムクリップボードにコピーし、Cursorのブラウザでデモページを読み込み、ボタンをクリックしてUUIDを流出させ表示しました。また、クリップボード盗難が成功したことを示すスクリーンショットを撮影し、デモHTMLファイルをリポジトリにコミットしました。
エージェントは、脆弱性を実証するために攻撃フローを順を追って説明する様子を記録しました。
クイックフィックスの対応
私たちはクラウドエージェントに、静的な「Read lints」ラベルを、lint結果によって駆動される動的なラベルに置き換えるよう依頼しました。エージェントは、診断結果がゼロの場合は「No linter errors」、N個の診断結果がある場合は「Found N errors」を実装し、既存のCSSに合わせたスタイリングを行いました。
エージェントはCursorデスクトップアプリで2つのケースをテストしました:複数のタイプエラーがあるファイルと、エラーのないクリーンなファイルです。動画成果物は、エージェントがクリーンなファイルに「No linter errors」と表示される展開されたグループがあることを確認する様子を示しています。
エージェントは、lintラベルの修正を正しく実装したことを示すために自身を記録しました。
私たちはクラウドエージェントを起動して、cursor.com/docs で全てが正しく動作するか確認させました。エージェントは45分間かけて私たちのドキュメントサイトを完全に巡回しました。エージェントは、サイドバー、トップナビゲーション、検索、ページコピーボタン、フィードバック共有ダイアログ、目次、テーマ切り替えなど、テストしたすべての機能の概要を提供しました。
エージェントは、CursorドキュメントサイトでUIをテストする様子を記録しました。
エージェントが実装の大部分を処理できるようになった今、開発者の役割は方向性を設定し、何をリリースするかを決定することに重点が移っていることがわかりました。
私たちは、エージェントがPRをマージし、ロールアウトを管理し、本番環境を監視する自律的なコードベースの未来を目指して構築しています。開発者がエージェントを使用して差分を作成する世界から、エージェントがテスト済みの機能をエンドツーエンドでリリースする世界へと移行していきます。
この変革を完全に実現するには、ツーリング、モデル、および相互作用パターンの改善が必要です。私たちの短期的な焦点は、多数のエージェント間での作業調整と、過去の実行から学習し経験を積むにつれて効果的になるモデルの構築にあります。
cursor.com/onboard にアクセスして、エージェントが自身を設定しデモを記録する様子をご覧ください。または、ドキュメントで詳細を確認してください。


原文を表示
Agents are only as capable as the environment they run in. Without the ability to use the software they are creating, agents hit a ceiling.
Over the last few months, we addressed this internally by giving agents their own virtual machines with full development environments, and the ability to test their changes and produce artifacts (videos, screenshots, and logs) so you can quickly validate their work.
Today we're making a new version of Cursor cloud agents available from anywhere you work, including the web, mobile, desktop app, Slack, and GitHub. Cloud agents onboard themselves onto your codebase and produce merge-ready PRs with artifacts to demo their changes. You can also control the agent's remote desktop to use the modified software and make edits yourself, without checking out the branch locally.
This has been the biggest shift in how we build software since the move from Tab autocomplete to working synchronously with agents. More than 30% of the PRs we merge at Cursor are now created by agents operating autonomously in cloud sandboxes.
#The next level of autonomy
Local agents make it easy to start generating code, but they quickly run into conflicts and compete with each other (and with you) for your computer's resources. Cloud agents remove this constraint by giving each agent an isolated VM, so you can run many in parallel.
Cloud agents can also build and interact with software directly in their own sandbox, allowing them to iterate until they've validated their output rather than handing off the first attempt. The video below shows a proof-of-concept from our earlier research on enhanced computer use.
You can see the agent navigate web pages in the browser, manipulate tools like spreadsheets, interpret data and make decisions, and resolve issues in complex UI environments.
The agent recorded itself interacting with desktop applications in its VM.
#Using cloud agents at Cursor
For the last month, we’ve been using cloud agents internally, and it has changed how we build software. Instead of breaking tasks into small chunks and micro-managing agents, we delegate more ambitious tasks and let them run on their own.
These are a few ways we’re using cloud agents:
Building new features
We used cloud agents to help us build plugins, which we recently launched on the Cursor Marketplace. Here is one of our prompts:
For each component displayed in a given plugin's page, we'd like to include a link to the source code. For skills, commands, rules, and subagents - that's the .md file. For hooks, it's the hooks.json. For mcps, it's the .mcp.json or the manifest where it's defined. As we index all the components of a plugin, keep track of the source file and construct links to that file by way of the underlying github url. Surface this to the frontend and have our frontend link out to github using this icon. Test w/ https://github.com/prisma/cursor-plugin
The agent implemented the feature, then recorded itself navigating to the imported Prisma plugin and clicking each component to verify the GitHub links.
The agent recorded itself clicking on buttons to verify they link to the correct source files.
For local testing, the agent temporarily bypassed the feature flag gating the marketplace page, then reverted before pushing. It rebased onto main, resolved merge conflicts, and squashed to a single commit.
Reproducing vulnerabilities
We kicked off a cloud agent from Slack with the prompt, "Please triage and explain this vulnerability to me in great detail," followed by a description of a clipboard exfiltration vulnerability. When the agent finished running, it responded in the Slack thread with a summary of what it accomplished.
The agent built an HTML page that exploits the vulnerability via an exposed API. It started a backend server to host the demo page locally and loaded the page in Cursor’s in-app browser.
The video artifact shows the complete attack flow: the agent copied a test UUID to the system clipboard, loaded the demo page in Cursor's browser, and clicked a button to exfiltrate and display the UUID. It also took a screenshot showing the successful clipboard theft and committed the demo HTML file to the repo.
The agent recorded itself walking through the attack flow to demonstrate the vulnerability.
Handling quick fixes
We asked a cloud agent to replace the static "Read lints" label with a dynamic one driven by lint results. It implemented "No linter errors" for zero diagnostics and "Found N errors" for N diagnostics, with styling to match existing CSS.
The agent tested two cases in the Cursor desktop app: a file with multiple type errors and a clean file with no errors. The video artifact shows the agent verifying that the clean file has an expanded group that shows “No linter errors.”
The agent recorded itself to show that it implemented the lint label fix correctly.
We spun up a cloud agent to check that everything works correctly at cursor.com/docs. It spent 45 minutes doing a full walkthrough of our docs site. The agent provided a summary of all the features it tested, including the sidebar, top navigation, search, copy page button, share feedback dialog, table of contents, and theme switching.
The agent recorded itself testing the UI on the Cursor docs site.
Now that agents can handle most of the implementation, we’ve found that the role of a developer is more about setting direction and deciding what ships.
We’re building toward a future of self-driving codebases, where agents merge PRs, manage rollouts, and monitor production. We will go from a world where developers use agents to create diffs to one where agents ship tested features end-to-end.
To fully realize that shift will require improving tooling, models, and the interaction patterns. Our near-term focus is on coordinating work across many agents and building models that learn from past runs and become more effective as they accumulate experience.
Get started at cursor.com/onboard to watch the agent configure itself and record a demo. Or learn more in the docs.


関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み