Cursorのチャット欄(Cmd+L / Ctrl+L)やComposer(Cmd+I / Ctrl+I)のドロップダウンで切り替えられるこれらのモードは、それぞれ「AIの自律性」と「目的」が異なります。
1. Ask モード(質問・調査)
「コードを書き換えず、知識だけを借りる」モードです。 既存のコードに一切変更を加えないため、安全に調査ができます。
- 役割: コードの意味を解説させる、ベストプラクティスを聞く、リファクタリング案を相談する。
- 特徴: ファイルを書き換える「Apply」ボタンが出ないため、純粋な対話に集中できる。
- ブログでの紹介例: 「まずは『Ask』で設計を相談。納得してから実装へ。」
2. Plan モード(設計・タスク分割)
「実装前に『手順書』を作る」モードです。2.2での最大の進化ポイントの一つです。 複雑な機能をいきなり作り始めるのではなく、まず「何をすべきか」を整理します。
- 役割: 実装ステップの可視化、タスクの細分化。
- 新機能: Mermaid形式の図解(フローチャート)を自動生成して、処理の流れを視覚的に示してくれます。
- 特徴: 生成されたToDoリストを確認し、OKならそのまま「Agent」に渡して実行させることができます。
3. Agent モード(自律実行・構築)
「AIが主体となって手を動かす」最強の実行モードです。 単一ファイルの修正に留まらず、プロジェクト全体を横断してコードを書き換えます。
- 役割: 新機能の実装、大規模なリファクタリング、複数ファイルの一括修正。
- 特徴: ファイルの作成、ターミナルでのコマンド実行、既存コードの削除などを自律的に行います。
- 最新機能(Multi-agent Judging): 内部で複数のAIが解決策を考え、最も優れた案をAI自身が選定して提案します。
4. Debug モード(科学的デバッグ)
「事実(ログ)に基づいてバグを仕留める」新設モードです。 「たぶんここが原因です」という推測ではなく、「実際に動かして確かめる」アプローチを取ります。
- 役割: 原因不明のバグ修正、実行時エラーの解消。
- プロセス:
- AIが原因の仮説を立てる。
- 検証用のログコードを自動で埋め込む。
- 開発者がアプリを動かし、AIがログを分析。
- 特定された原因に対して最小限の修正を行い、ログコードを掃除して終了。
【比較表】どのモードをいつ使う?
| モード | AIの行動 | 主な利用シーン | 2.2の注目ポイント |
| Ask | 答えるだけ | 仕様の理解・技術相談 | 履歴のピン留め機能 |
| Plan | 手順を考える | 複雑な機能の設計 | Mermaid図解・ToDo分割 |
| Agent | コードを書く | 一気呵成な実装 | 複数AIによる案の比較 |
| Debug | ログを追う | 厄介なバグの特定 | ログ埋め込み〜自動削除 |
なぜモードの「切り替え」が重要なのか?
それぞれのモードは「脳の使い道」が違うからです。
- Agentモードの脳(クリエイティブ・構築): 「新しいものを作る」のが得意です。しかし、バグが出たときに「とりあえずこう直せば動くかも?」と勘でコードを書き換えて、逆に状況を悪化させる(いわゆる「壊しながら直す」)弱点があります。
- Debugモードの脳(論理的・調査的): 「原因を特定する」ことに特化しています。勘に頼らず、「ここにログを仕込んで値を確認しよう」という着実なステップを踏みます。
【使い分けのイメージ】
自分: 「Agentさん、この機能作って」 Agent: 「OK!(コードを書くが、実行するとエラー発生)」 自分: (ここでモードを Debug に切り替えて)「エラーが出たから、ログを見て原因を特定して」 Debug: 「承知しました。変数の値を調査して、最小限の修正案を出します」
2. 情報の共有はどうなっている?
モードを切り替えても、以下の情報はすべて保持されたまま「引き継ぎ」が行われます。
- コンテキスト(文脈): それまでのチャットでの指示内容や、AIが何をしようとしていたかという流れ。
- コードベースの状態: Agentが書き換えた最新のファイル内容。
- 作業履歴(Plan): Planモードで立てた手順のうち、どこまでが終わっているかという進捗状況。
3. 「Debugモード」へ切り替えるべき決定的な瞬間
Agentで開発中に以下のような状況になったら、迷わずDebugモードに切り替えてください。
- 「無限ループ修正」に陥ったとき: AIが「修正しました」→「あ、まだエラーですね。再修正します」を3回以上繰り返したら、AIが原因を勘違いしています。
- 「実行時エラー」が出たとき: コードの文法(Syntax)は正しいのに、ブラウザを動かすと「undefinedです」などと怒られる場合。これはログを見ないとAIも分かりません。
- 複雑なロジックが絡むとき: データベース、API通信、非同期処理など、目に見えない裏側の動きでバグが起きているとき。



