あれとコレとそれ

日常のあれこれをここにおいておくための場所

Cursor Chat / Composer Normal / Composer Agentの違いと使い分け

10月から勤め先のリンクアンドモチベーションでも、Cursorの有料ライセンスを配布することになり、よく質問を受ける機能の使い分けをまとめました。

前提

本記事で使用しているCursorアプリの情報は以下の通りです。バージョンやOS違いによる情報の齟齬にはご注意ください。

  • バージョン: 0.44.11
  • OS: macOS

Cursorとは

www.cursor.com

Cursorは、AIを活用した次世代のコードエディタです。

CursorはVisual Studio Codeからフォークして開発されているため、Visual Studio Codeと似た使い心地を維持しながら、以下のような特徴的な機能を提供しています。

  1. Cursor Tab:
    非常に強力なCode Copilot機能
  2. Cursor Chat:
    エディタ内のコードとシームレスに連携し、AIに質問することができる機能
  3. Cursor Composer:
    Cursor Chatと同じようにAIを扱えるが、Cursor Composerはコードの編集により適した機能

Chat機能でできること

公式ドキュメント: Chat - overview | Cursor - Build Software Faster

Cursor Chatは、コードベースに関する質問や相談ができる対話型のAIアシスタント機能です。主な特徴は以下の通り:

1. コンテキストを考慮した質問が可能

現在開いているファイルやカーソル位置のコードを自動的に認識するので、「ここにバグはありますか?」といった直感的な質問が可能。 またショートカット(Ctrl+Shift+L)や、@ を使用したシンボル追加によってコードブロック単位での参照も可能です。

2. コードベース全体への質問が可能

チャットの送信時に Ctrl+Enter を使用することで、コードベース全体に関する質問が可能。 または @Codebase を使用することでも、プロジェクト内のコードを検索して回答させることが可能です。

3. 豊富な参照機能

@シンボルでは、上記で紹介した以外のコンテキストを指定することが可能。

@シンボルの指定

フォルダやGit、一般公開されているライブラリのドキュメント等も参照可能です。

Vue.jsに関するドキュメントも参照可能

4. コード提案の即時適用

チャットで提案されたコードは、コードブロック上部の Apply ボタンをクリックすることで即座にコードベースに適用可能です。(詳細は公式ドキュメントを参照)

Cursor Chat Apply機能

Composer機能でできること

公式ドキュメント: Composer - overview | Cursor - Build Software Faster

上記の通りCursor Chatでは、エディタ内の情報はもちろんエディタ外からも情報を参照でき、また提案されたコードをコードベースに適応することができます。

そしてそれらの機能はこのCursor Composerでも実行可能です。

では、Cursor ChatとCursor Composerは何が違うのか。公式ドキュメントからの引用によると:

What’s the difference between Chat and Composer?
Cursor Chat helps you search and understand your code. Use it to explore your codebase, ask questions, and get explanations. You can search your code with ⌘⏎. Composer helps you write and edit code. It provides a workspace where you can generate new code and apply changes directly to your files.

ChatとComposerの違いは?
Cursor Chatは、コードの検索と理解を支援します。コードベースの検索、質問、説明の取得にご利用ください。コードの検索は⌘⏎で行えます。Composerはコードの記述と編集をサポートします。新しいコードを生成したり、変更をファイルに直接適用できるワークスペースを提供します。

というふうに、コードの編集により適した機能がCursor Composerになります。 どういった点がコードの編集に適しているかは、後続の章で記載します。

Cursor Composer Normal Modeでできること

公式ドキュメント: Composer - overview#normal | Cursor - Build Software Faster

Normal Modeは以下のように右下にある normal / agent トグルボタンで、normal 側をアクティブ状態にすることで利用することができます。

Normal Modeの設定方法

Cursor Chatとの違い

前述の通りCursor Chatの場合はコードの提案はしてくれますが、コードへの適応は人間が実行する必要があります。しかし、Cursor Composerの場合はコードの適応まで自律的に行ってくれます。

Cursor Composer Normal Modeでコードの変更を依頼

Cursor Composer Agent Modeでできること

公式ドキュメント: Composer - overview#agent | Cursor - Build Software Faster

Agent Modeは以下のように右下にある normal / agent トグルボタンで、agent 側をアクティブ状態にすることで利用することができます。

Agent Modeの設定方法

注意事項
以降の説明では、Yolo ModeをONにした状態で解説しています。Yolo Modeはバージョン 0.44.x で導入された機能になりますが、OFFにしている場合、スクリプトの自動実行がされませんのでご注意ください。(Changelog - Dec 17, 2024 | Cursor - The AI Code Editor | Cursor - The AI Code Editor

Cursor Chat / Cursor Composer Normal Modeとの違い

前述の通りCursor Chatの場合はコードの提案まで、Cursor Composer Normal Modeはコードの適応までを実施してくれます。

対してCursor Composer Agent Modeはさらに、コードの適応後にスクリプトを実行して動作確認を自律的に行ってくれます。

以下の画像の例では関数の呼び出し処理が必要だと考え、その処理を追加する提案とコードの適応までを自律的に行っています。

Cursor Composer Agent Modeでコードの変更を依頼

Cursor ChatとCursor Composer Normal Modeで同様の指示をしたら、動作確認の方法を提案してくれますが動作確認はしてくれません。

Cursor Chatに動作確認まで依頼した際の挙動

Cursor Composer Normal Modeに動作確認まで依頼した際の挙動

スクリプト実行以外だとファイルの読み込みも自律的にしてくれる

以下のファイルに記述されている Hello Agent Mode! を出力するように指示してみます。

読み込み対象のファイル

プロンプトでは読み込み対象のファイル(output_text.txt)をファイルコンテキストに追加せず相対パスを指定します。

すると相対パスから読み込み対象のファイル内容を確認し、コードの変更に使用してくれます。

Cursor Composer Agent Modeでファイルの読み込みを指示した際の挙動

Cursor Composer Normal Modeで同様の指示をしたらファイルを読み込む処理を追加します。これは期待していた変更とは違います。

Cursor Composer Normal Modeでファイルの読み込みを指示した際の挙動

おわりに

今回は、Cursor Chat / Composer Normal / Composer Agentの違いと基本的な使い分けについてまとめました。

使い分けについては、公式ドキュメントにもあるように、

  • コードについて確認したいときは、Cursor Chat
  • コードにちょっとした変更を加えたいときは、Cursor Composer Normal Mode
  • コードに複雑な変更を加えたいときは、Cursor Composer Agent Mode

というようにするとよいのではないでしょうか。

今後のブログ執筆意向

個人的には珍しいCursorの機能や挙動を記事にしたい気持ちもありましたが、AI系のツールをより広く普及するためにも、しばらくはこういった記事を中心に執筆していきたいと思います。