チャットセッションの管理
Visual Studio Codeでチャットを使用して、対話型のAIインタラクションを行います。チャットセッションは、ユーザーとAIの間のプロンプトと応答の一連の流れと、コードやファイルからの関連するコンテキストで構成されます。この記事では、チャットセッションの作成と管理、セッション一覧の使用、およびセッションの整理方法について説明します。
チャットセッションとは何ですか?
チャットセッションは、すべてのプロンプト、応答、コンテキストを含む、AIとの1つの会話です。各セッションは独立しているため、あるセッションのコンテキストが別のセッションに引き継がれることはありません。
チャットセッションについて知っておくべき重要なこと
- コンテキストウィンドウ: チャットを進めるにつれて、セッションにコンテキストが蓄積されます。新しいセッションを作成すると、履歴がクリアされ、新しいコンテキストウィンドウが開始されます。チャット入力ボックスでコンテキストウィンドウの使用状況を監視できます。
- チェックポイント: いつでも以前の状態にロールバックしたり、以前のプロンプトを編集して方向性を変更したりできます。チェックポイントの詳細をご覧ください。
- エージェントタイプ: セッションは、ローカル、バックグラウンド、またはクラウドで実行できます。エージェントタイプの詳細をご覧ください。
- 複数のセッション: それぞれ異なるタスクに焦点を当てた複数のセッションを並行して実行できます。セッション一覧を使用して、進行中のセッションを監視し、セッション間を切り替えます。
- セッションインサイト: セッション履歴をクエリして、スタンドアップレポートを生成したり、ヒントを得たり、過去の作業を検索したりできます。セッションインサイトの詳細をご覧ください。
トピックを変更したいときは、新しいチャットセッションを開始して、AIがより関連性の高い応答を提供できるようにします。
新しいチャットセッションを開始する
新しいチャットセッションを開始すると、AIとの新しい会話が始まります。各セッションには独自のコンテキストウィンドウがあり、異なるエージェントタイプと権限レベルで実行できます。それぞれ異なるタスクやトピックに焦点を当てた複数のセッションを並行して実行できます。セッション一覧を使用して、アクティブなセッションを監視し、切り替えます。
新しいチャットセッションを開始するには
-
チャットビューの[新規チャット (+)] (New Chat)ボタンを使用するか、キーボードショートカット ⌘N (Windows、Linux Ctrl+N) を使用します。

-
Agent Targetドロップダウンを使用して、エージェントを実行する場所を選択します。例えば、Localを選択すると、ワークスペース、ツール、モデルへのフルアクセス権を持った状態で、エディター内で対話的にエージェントを実行できます。
-
[エージェント] (Agent)ドロップダウンからエージェントを選択して、セッションの役割やペルソナを選択します。たとえば、コードを書く前にエージェントに構造化された実装計画を作成させるには、[計画] (Plan)を選択します。セッション中はいつでもエージェントを切り替えることができます。
-
必要に応じて、[権限] (Permissions)ドロップダウンから権限レベルを選択し、ツールの承認に関してエージェントに付与する自律性のレベルを制御します。
-
チャット入力ボックスにプロンプトを入力し、Enter キーを押して送信します。
エージェントターゲット、エージェント、および権限レベルの詳細については、エージェントの概要をご覧ください。
チャットセッションを開く場所
好みの作業方法に応じて、チャットセッションをさまざまなビューで開くことができます。
-
サイドバー (デフォルト): [新規チャット (+)] > [新規チャット] (New Chat)を選択するか、[チャット: 新規チャット] (Chat: New Chat)コマンドを実行します。コードの横にチャットを表示したままにするのに最適です。

-
エディタータブ: [新規チャット (+)] > [新規チャットエディター] (New Chat Editor)を選択するか、[チャット: 新規チャットエディター] (Chat: New Chat Editor)コマンドを実行します。チャットに広いスペースを確保したり、セッションを並べて比較したりするのに最適です。

-
別のウィンドウ: [新規チャット (+)] > [新規チャットウィンドウ] (New Chat Window)を選択するか、[チャット: 新規チャットウィンドウ] (Chat: New Chat Window)コマンドを実行します。マルチモニター環境に最適です。

-
最大化: チャットビューのタイトルバーにある[最大化] (Maximize)ボタンを選択するか、[表示: 最大化パネルの切り替え] (View: Toggle Maximized Panel)コマンドを実行します。チャットがエディター領域全体を占有し、最大のスペースが確保されます。ボタンをもう一度選択すると、元のレイアウトに戻ります。
-
エージェントウィンドウ: エージェントが主なエクスペリエンスとなる専用ウィンドウです。タスクの記述や、複数のプロジェクトにわたるエージェントのオーケストレーションに集中したい、エージェント優先のワークフローに最適です。タイトルバーの [エージェントで開く] (Open in Agents) ボタンを選択するか、[チャット: エージェントウィンドウを開く] (Chat: Open Agents Window) コマンドを実行するか、コマンドラインから
code --agentsを使用します。エージェントウィンドウの詳細をご覧ください。
チャットセッションはいつでもビュー間で移動できます。チャットビュー、エディタータブ、またはチャットウィンドウにある ... メニューを選択し、[チャットを...に移動] (Move Chat into...) オプションのいずれかを選択します。または、コマンドパレットから対応する [チャット: チャットを移動] (Chat: Move Chat) コマンドを使用します。
セッション一覧
チャットビューを使用すると、実行場所に関係なく、すべてのセッションを一元的に管理できます。セッションのステータス、タイプ、ファイルの変更に関する情報とともに、セッションが表示されます。
検索とフィルターのオプションを使用して、特定のセッションを見つけます。また、重要なセッションをピン留めしてリストの上部に固定し、簡単にアクセスできるようにすることもできます。セッションをホバーし、ピンアイコンを選択して、ピン留めまたはピン留め解除を行います。
セッションの一覧はワークスペースにスコープされます。ワークスペースを開いていない場合、一覧にはすべてのワークスペースにわたるすべてのセッションが表示されます。セッションは、[今日] (Today) や [先週] (Last Week) などの期間ごとにグループ化されます。

リスト内のセッションを右クリックすると、セッション詳細を開くためのさまざまなオプション、セッションのアーカイブ、またはプルリクエストのチェックアウト(クラウドエージェントセッションの場合)などのエージェントタイプ固有のアクションなどの追加のアクションが表示されます。
チャットビューからセッション一覧を非表示にするには、空のチャットを右クリックして [セッションの表示] (Show Sessions) の選択を解除します ( chat.viewSessions.enabled )。
チャットビューは、コンパクトと並置(サイドバイサイド)の2つのモードで動作します。チャットビューの右上隅にあるトグルコントロールを使用して、コンパクトモードと並置モードを手動で切り替えることができます。
-
コンパクト:
コンパクトビューでは、セッション一覧がチャットビューに埋め込まれます。一覧からセッションを選択すると、チャットビューがそのセッションに切り替わります。戻るボタンを使用してセッション一覧に戻ります。

-
並置(サイドバイサイド)
並置ビューでは、セッション一覧がチャットビューと並んで表示されます。一覧からセッションを選択すると、その詳細がチャットビューに表示されます。

チャットビューの幅を広げると、自動的に並置モードに切り替わります。セッション一覧を右クリックし、[セッションの方向] (Sessions Orientation) を選択して、この動作を変更します ( chat.viewSessions.orientation )。トグルボタンを使用することもできます。
拡張機能の開発者は、提案されている API chatSessionsProvider を使用して、セッションビューと統合する方法を学習できます。この API は現在提案段階であり、変更される可能性があります。
セッションステータスインジケーター(試験段階)
セッションステータスインジケーターを使用すると、タイトルバーのコマンドセンターから直接セッションにすばやくアクセスできます。インジケーターには未読メッセージや進行中のセッションの視覚的なバッジが表示されるため、ビューを切り替えることなく AI のアクティビティを把握できます。

インジケーターの表示内容
- 未読セッションバッジ: 新しいメッセージがあるチャットセッションの数を示します。バッジを選択すると、未読セッションのみを表示するようにセッション一覧がフィルター処理されます。
- 進行中セッションバッジ: 実行中のエージェントがあるセッションの数を示します。バッジを選択すると、進行中のセッションのみを表示するようにセッション一覧がフィルター処理されます。
- キラキラ(Sparkle)アイコン: チャットやセッション管理のオプションにすばやくアクセスできます。
ステータスインジケーターの表示/非表示は、 chat.agentsControl.enabled 設定を使用して構成できます。
ウェルカムページでセッションを表示する
VS Code のウェルカムページは、チャットセッションを操作するためのスタートアップエクスペリエンスとして機能させることができます。最近のチャットセッションへのすばやいアクセス、新しいタスクを開始するための埋め込みチャットウィジェット、一般的なタスクのクイックアクションを提供します。
VS Code のウェルカムページをスタートアップエクスペリエンスとして構成するには、 workbench.startupEditor を agentSessionsWelcomePage に設定します。
セッションのアーカイブ
セッション一覧を整理するために、完了したセッションや非アクティブなセッションをアーカイブします。セッションをアーカイブしても削除されず、アクティブなセッション一覧から移動されるだけです。いつでもセッションのアーカイブを解除して、アクティブなセッション一覧に戻すことができます。
セッションをアーカイブするには、セッション一覧でセッションをホバーし、[アーカイブ] (Archive) を選択します。セッションをアーカイブすると、一覧から表示されなくなります。逆に、同じ方法でセッションのアーカイブを解除することもできます。

アーカイブされたセッションを表示するには、セッション一覧のフィルターオプションを使用し、[アーカイブ済み] (Archived) フィルターを選択します。
セッションの削除
セッションを完全に削除するには、セッション一覧でセッションを右クリックし、[削除] (Delete) を選択します。セッションを削除すると永久に削除され、元に戻すことはできません。Copilot CLI セッションの場合、セッションを削除すると、そのセッション用に作成された関連するワークツリー(worktree)も削除されます。
セッションのフォーク後など、複数の Copilot CLI セッションが同じワークツリーを共有している場合、1つのセッションを削除しても、別のセッションがそれを使用している間は共有ワークツリーは削除されません。ワークツリーは、最後にリンクされたセッションが削除またはアーカイブされた後にのみ削除されます。
セッションの削除は元に戻せません。セッションを非表示にしたいだけの場合は、代わりにアーカイブすることを検討してください。
リクエスト実行中にメッセージを送信する
次のメッセージを送信する前に、応答が完了するのを待つ必要はありません。リクエストが処理されている間、[送信] (Send) ボタンはドロップダウンに変わり、新しいメッセージの処理方法について 3 つのオプションが提供されます。

- [キューに追加] (Add to Queue): メッセージは待機し、現在の応答が完了した後に自動的に送信されます。現在の応答は中断されることなく完了します。
- [メッセージで方向修正] (Steer with Message): 現在のツール実行の完了後に現在のリクエストを譲るようにシグナルを送信します。現在の応答が停止し、新しいメッセージがすぐに処理されます。エージェントが誤った方向に向かっているときに、方向を修正するためにこれを使用します。
- [停止して送信] (Stop and Send): 現在のリクエストを完全にキャンセルし、新しいメッセージをすぐに送信します。
[送信] (Send) ボタンのデフォルトのアクションは構成可能です。 chat.requestQueuing.defaultAction を使用して、これを steer (デフォルト) または queue に設定します。
保留中のメッセージの並べ替え
複数の保留中のメッセージ(キューに登録されている、または方向修正中のメッセージ)がある場合、ドラッグアンドドロップして処理順序を変更できます。同じタイプのメッセージが複数保留されている場合、ホバーするとドラッグハンドルが表示されます。

チャットセッションをフォークする
チャットセッションをフォークすると、元のセッションから会話履歴を引き継ぐ新しい独立したセッションが作成されます。フォークされたセッションは元のセッションから完全に切り離されているため、一方のセッションでの変更は他方に影響しません。識別しやすいように、新しいセッションのタイトルにはプレフィックス「Forked:」が付きます。
ワークツリーの分離を使用する Copilot CLI セッションの場合、フォークされたセッションは元のセッションと同じワークツリーを引き続き使用します。
フォークは、別のアプローチを検討したいときや、付随的な質問をしたいとき、あるいは元のコンテキストを失うことなく長い会話を別の方向に分岐させたいときに便利です。
チャットセッションをフォークするには 2 つの方法があります
-
セッション全体をフォークする: チャット入力ボックスに
/forkと入力して Enter キーを押します。現在のセッションから会話履歴全体がコピーされた新しいセッションが開きます。 -
チェックポイントからフォークする: 会話内のチャットリクエストをホバーし、[会話をフォーク] (Fork Conversation) ボタンを選択します。そのチェックポイントまでのリクエストのみを含む新しいセッションが開きます。

チャットの応答に関する通知を受け取る
別のウィンドウやアプリケーションで作業しているときに、VS Code が重要なチャットイベントを知らせる OS 通知を送信できるため、何度も確認しに戻る必要がなくなります。
チャットの応答を受信したときに OS 通知を受け取るタイミングを構成するには、 chat.notifyWindowOnResponseReceived を使用します。通知には応答のプレビューが含まれており、これを選択するとチャットセッションにフォーカスが移動します。
エージェントが処理を続行するために入力や確認を必要とするときに OS 通知を受け取るタイミングを構成するには、 chat.notifyWindowOnConfirmation を使用します。
両方の設定には 3 つの選択肢があります
off: 通知を一切表示しないwindowNotFocused(デフォルト): VS Code ウィンドウにフォーカスがない場合にのみ通知を表示するalways: VS Code ウィンドウにフォーカスがある場合でも通知を表示する
バックグラウンドで長時間の実行が必要なエージェントタスクを実行しているときなど、VS Code の他の部分で作業しながらチャットのアクティビティを把握したい場合は、値を always に設定します。
チャットセッション内のプロンプト間を移動する
チャットセッション内のプロンプト間を移動するには、次のキーボードショートカットを使用します
- ⌥⌘↑ (Windows、Linux Ctrl+Alt+Up): チャットセッション内の前のプロンプトに移動します。
- ⌥⌘↓ (Windows、Linux Ctrl+Alt+Down): チャットセッション内の次のプロンプトに移動します。
- ⌥⌘PageUp (Windows、Linux Ctrl+Alt+PageUp): チャットセッション内の前のコードブロックに移動します。
- ⌥⌘PageDown (Windows、Linux Ctrl+Alt+PageDown): チャットセッション内の次のコードブロックに移動します。
チャットセッションの保存とエクスポート
チャットセッションを保存して、重要な会話を残したり、後で同様のタスクに再利用したりできます。
チャットセッションを JSON ファイルとしてエクスポートする
チャットセッションをエクスポートして、後で参照できるように保存したり、他のユーザーと共有したりできます。チャットセッションをエクスポートすると、セッションのすべてのプロンプトと応答を含む JSON ファイルが作成されます。
チャットセッションをエクスポートするには
-
エクスポートするチャットセッションをチャットビューで開きます。
-
コマンドパレットから [チャット: チャットのエクスポート...] (Chat: Export Chat...) コマンドを実行します (⇧⌘P (Windows、Linux Ctrl+Shift+P))。
-
JSONファイルを保存する場所を選択します。
チャットセッションを再利用可能なプロンプトとして保存する
チャットセッションを再利用可能なプロンプトとして保存し、同様のタスクに再利用できます。
チャットセッションを再利用可能なプロンプトとして保存するには
-
保存するチャットセッションをチャットビューで開きます。
-
チャット入力ボックスに
/savePromptと入力し、Enterキーを押します。このコマンドは
.prompt.mdファイルを作成します。これは、現在のチャットの会話をプレースホルダー付きのテンプレートに一般化する、再利用可能なプロンプトファイルです。プロンプトファイルを使用すると、異なるプロジェクトやコードベースで同じ種類のタスクを実行できます。 -
生成されたプロンプトファイルを必要に応じて確認および編集し、ワークスペースに保存します。
チャットメッセージを Markdown としてコピーする
チャットビューは、チャットメッセージを Markdown としてクリップボードにコピーするためのさまざまなオプションをサポートしています。これらは、メッセージまたはチャットの背景を右クリックしたときにコンテキストメニューから利用できます。
-
[コピー] (Copy): 個々のプロンプトまたは応答をクリップボードにコピーします。Markdown には応答テキスト、思考ステップ、およびツールの呼び出しが含まれます。
-
[すべてコピー] (Copy All): すべてのプロンプト、応答、思考ステップ、ツール呼び出しを含む、チャットセッション全体を Markdown 形式でコピーします。
-
[最終応答をコピー] (Copy Final Response): 最後のツール呼び出しの後の、エージェントの応答の最後の Markdown セクションのみをコピーします。これは、中間のステップなしで最終出力を共有または再利用するのに便利です。