1日1AI活動 Cursor ③機能 Chat
#ai #1日1ai #cursor
公式サイト https://www.cursor.com/ja
ドキュメント https://docs.cursor.com/welcome
Cursorの機能 / Chat
https://docs.cursor.com/chat/overview
チャットモードでの文脈に応じたAI支援による、コードの探索、編集、管理のための自然言語インターフェース
Chat(以前は "Composer")はCursorのAIアシスタントで、サイドバーに常駐し、自然言語を通してコードベースと対話することができます。質問したり、コード編集を依頼したり、ターミナル・コマンドの候補を得たりすることができます。
What's Chat?
コードを理解する
分からないコードについて質問したり、説明を受けたり、コードベースを探索することができます。
コードの編集
手動でファイルをナビゲートすることなく、小さな微調整や大規模な複数ファイルの変更を行うことができます。
Run Commands
特定のユースケースに応じたターミナルコマンドの提案を得る。
ワークフローの自動化
Cursorで検索、推論、実行し、ワークフローを自動化しましょう。
Getting Started
サイドバーのチャットに⌘+L(Mac)またはCtrl+L(Windows/Linux)でアクセスします
自然言語でリクエストを入力すると、AIがそれに応じて応答します。
https://scrapbox.io/files/681b438c97084d1125ea271b.png
What can I do with Chat?
Build features
チャットはあなたのコードベースを学習し、あなたに代わってコードベースに変更を加える機能を持っています。これは新しい機能を実装するための強力な方法であり、機能リクエストのための完璧なツールです。
エージェントモードを使って、どのような機能を実装して欲しいかをチャットに説明するだけです。チャットはあなたのコードベースと関連ファイルを見て、これらのフィールドで必要な変更を提案します。
コードの編集だけでなく、新しいファイルの追加やパッケージマネージャによるパッケージの追加など、他の変更を提案することもあります。
リファクタリング
あなたのコードベースと、各コンポーネントがどのように組み合わされているかを理解することで、Chat はコードベースのリファクタリングを支援することができます。
チャットにコードベースの現在の構造と変更点を説明してください。エージェントは関連するコードを読み、変更を計画し、リファクタリングやプロジェクトの再構築を簡単にするためにそれらを実装することができます。
新しいプロジェクトのセットアップ
チャットは、新しいプロジェクトを立ち上げる手助けをするのに優れています!
チャットにどのようなプロジェクトを構築したいかを伝え、希望する技術スタックの具体的な要件を説明すると、エージェントがあなたのために作業を開始し、プロジェクト構造を作成し、依存関係をインストールし、できるだけ早く開始するために初期コードを記述します。
Modes
Chat offers different modes optimized for specific tasks:
Agent Mode
https://docs.cursor.com/chat/agent
完全なツールで複雑なコードベースの変更を独自に探索、計画、実行する自律型AIコーディングエージェント
エージェントはCursorのデフォルトで最も自律的なモードで、最小限のガイダンスで複雑なコーディングタスクを処理するように設計されています。すべてのツールが有効になっており、自律的にコードベースを探索し、ドキュメントを読み、ウェブをブラウズし、ファイルを編集し、ターミナルコマンドを実行してタスクを効率的に完了します。
自律的な運用
自立的にコードベースを調査し、関連するファイルを特定し、必要な変更を行う。
フルツールアクセス
利用可能なすべてのツールを使用して、検索、編集、ファイル作成、ターミナルコマンドの実行が可能。
コンテキスト理解
プロジェクトの構造と依存関係を包括的に理解します。
マルチステップ・プランニング
複雑なタスクを管理可能なステップに分割し、順番に実行する。
Agent Workflow
人間と同じように、エージェントモードは体系的なアプローチに従ってタスクを完了します:
1🧠リクエストの理解
エージェントモードは、タスクの要件と目標を完全に理解するために、あなたのリクエストとコードベースのコンテキストを分析します。
2 🔍 コードベースの探索
エージェントは、関連するファイルを特定し、現在の実装を理解するために、コードベース、ドキュメント、Web を検索します。
3📝 変更の計画
分析に基づいて、エージェントはタスクをより小さなステップに分解し、利用可能なコンテキストから学習しながら変更を計画します。
4🔧 変更の実行
エージェントは、コードベース全体にわたって、計画に従って必要なコードの変更を行います。また、新しいライブラリ、実行するターミナルコマンド、Cursor の外で行うべきステップを提案する可能性もあります。
5🔍 結果の確認
エージェントは、変更を適用することで、変更が正しいことを確認します。もし問題やリンターエラー(言語でサポートされている場合)に気づいたら、修正を試みます。
6✅ タスク完了
エージェントが満足すると、戻って変更をまとめます。
エージェントモードでは、変更を加える前にチェックポイントを作成し、必要に応じて元に戻すことができます。
Example Use Cases
最良の結果を得るためには、何を成し遂げたいかを具体的に伝えることだが、エージェントがどのようにタスクに取り組むべきかを指定する必要はない。
code:sh
"Add a dark mode toggle to my React application"
エージェント・モードでは次のことを行います:
アプリケーションのスタイリングアプローチを特定する
必要なテーマの状態管理を追加する
トグル・コンポーネントを作成する
関連するコンポーネント全体のスタイリングを更新する
必要に応じて永続性を追加する
code:sh
"Optimize my API calls to implement caching and reduce redundant requests"
エージェントモードでは
すべての API 呼び出し場所を検索する
適切なキャッシュ戦略を実装する
キャッシュ無効化ロジックを追加する
キャッシュされたデータを使用するようにコンポーネントを更新する
設定オプション
モデルの選択: キーバインドを編集する: エージェントモードのキーバインドを設定する
利用可能なツールを切り替える: 利用可能なツールの切り替え
自動実行と自動修正エラーを有効にする: 自動実行と自動修正エラーを有効にする(ツールの設定についてもっと読む)
https://scrapbox.io/files/68252b2562e167c9b31b48a1.png
Ask Mode
https://docs.cursor.com/chat/ask
Askモードでは、変更を加えることなく、AI検索とクエリによってコードベースを探索し、学ぶことができます。
Askは、コードベースについて質問し、探索し、学習するために作られたチャット用の「読み取り専用」モードです。デフォルトで検索ツールが有効になっているCursorのビルトインモードです。
Cursorでモードがどのように機能するかについては、チャットの概要をお読みください。
Askは他のデフォルトモード(AgentとManual)とは異なり、デフォルトでは提案された変更を適用しません。これは一種の "read only "モードであり、ファイルやその他のコンテキストを読み込む完全な機能を持ちますが、自分自身で変更を加える機能はありません。
これは、変更を加えたくないコードベースについて学んだり、実装する前にAIと一緒に解決策を考えたりするのに最適です!
設定オプション
Model - Askのデフォルトとなるモデルを事前に選択
Keybinding - Askモードに切り替えるためのキーバインドを設定
Search Codebase - AIにファイルを表示させたいときに、手動でファイルをコンテキストとして指定する代わりに、Cursorが独自のコンテキストを検索できるようにする。
Manual Mode
https://docs.cursor.com/chat/manual
明示的なファイルターゲットで正確なコード変更を行う - ユーザー制御のツールによる集中編集モード
Manualモードは、必要な変更がどこにあるかが正確に分かっている場合に、ターゲットとなるコードを修正するために設計されています。
エージェントモードとは異なり、コードベースを探索したり、ターミナルコマンドを実行することはありません。
正確な編集
ユーザーの指示通りに特定のコード変更を適用。
直接命令
自律的な探索や計画なしに、ユーザーの命令に従う。
複数ファイルの編集
指定した複数のファイルにまたがって、調整された変更を加えることができます。
Focused Toolset
主にファイル編集機能を使用。検索ツールやターミナルツールがない。
Using Manual Mode
マニュアル・モードでは、より正確で的を絞ったコード編集が可能です。このモードは、コードのどこにどのような変更が必要かを正確に把握している場合に、的を絞ってコードを修正するために設計されています。
マニュアル・モードを使用するには、@記号を使って編集したいファイルを明示的に指定する必要があります。
1. リクエストを理解する
通常のチャットと同様にリクエストを作成します。
2 コードベースを調べる
シンボル @ を使って編集したいファイルに言及することで、リクエストにコンテキストを追加します。
3📝 変更を計画する
適用後、変更を確認できます。リンターが設定されている場合、手動モードは潜在的な問題にフラグを立てるかもしれません。
4🔧 変更の実行
編集が適用されると、タスクは完了したとみなされます。
マニュアル・モードは、コントロールと精度が必要な場合に優れており、AIペア・プログラマーとして特定のプランを実行します。最良の結果を得るために、明確な文脈と指示を与えてください。
Example Use Cases
明確なファイルパス(@を使用)と、必要な変更の明確な説明を記述してください。
特定の関数のリファクタリング
"@src/utils/helpers.tsと@src/components/UserProfile.tsxで、関数getUserDataの名前をfetchUserProfileに変更し、これらのファイル内のすべての呼び出しサイトを更新してください。"
ボイラープレートの適用
定型文やテンプレートとして繰り返し利用されるテキストやコード
"@src/newModule.jsと@src/newService.javaの先頭に標準的なcopyrightヘッダーコメントを追加して"
設定オプション
モデルを選択します: マニュアルモード専用のモデルを事前に選択します。
キーバインドを編集する: カスタムキーバインドを設定することで、素早くマニュアルモードを起動することができます。
使用可能なツール: マニュアルモードでは主にファイル編集ツールを使用します。検索ツールとターミナルツールは使用できません。
モードピッカーまたは⌘.ショートカットを使用して、現在のニーズに合わせてモードを切り替えます。
Context
チャットがコードベースを分析します:
開いているファイル @記号: シンボルを使って特定のコード要素を参照
プロジェクトの構造: プロジェクト構造: ファイルと依存関係の構成
インターフェイスは、クエリに基づいて関連するコンテキストを提案し、正確な応答を保証します。
Code Edits
チャットがコードの変更を提案するとき:
レビューする: 提案された変更を diff ビューで見る
適用する: Ask モードでは、"Apply" ボタンで変更を明示的に適用
Accept/Reject: 変更後、変更を維持するか破棄するかを決定
Cursor のカスタムモデルは、数千行のファイルに数秒で編集案を適用します。
Tab
チャットでは、一度に複数の会話を実行し、タブを使って切り替えることができます。
これを行うには、単純に ⌘+T (Mac) または Ctrl+T (Windows/Linux) を押して新しいタブを作成します。チャット履歴とは異なり、タブは並行して実行でき、前のリクエストに依存しません。
Cursor は、複数のタブが一度に同じファイルに変更を加えないようにしながら、同時に行われるすべての会話をインテリジェントに追跡し、いつでも切り替えられるようにします。
Checkpoint
コードベースを以前の状態に戻したいことがあります。Cursorは、あなたがリクエストするたびに、またAIがコードベースに変更を加えるたびに、コードベースのチェックポイントを自動的に作成します。
以前の状態に戻すには、以下の方法があります:
以下のように、以前のリクエストの入力ボックス内に表示される「チェックポイントの復元」ボタンをクリックします。
チャット履歴のメッセージの左側に表示される「+」ボタンをクリックします。
Rules
Cursorは入念に設計されたビヘイビアセットとともに箱から出されるが、あなたとのやりとりやあなたのコードに変更を加える方法の両方において、特定のワークフローに合うようにCursorをカスタマイズすることができる