チャットセッションの管理
Visual Studio Code のチャットは、AI とのチャットベースの対話を提供します。さまざまなトピックやタスクを探索する際に、複数のチャットセッションを作成し、それぞれを特定のコンテキストにスコープ設定してください。VS Code では、チャットビュー、エディタータブ、または別ウィンドウでチャットセッションを作成および管理するさまざまな方法が提供されています。
この記事では、チャットセッションの作成と管理方法、およびチャットセッション履歴を使用して以前の会話を続行する方法について説明します。
新しいチャットセッションを作成する
チャットセッションとは、単一の会話における AI との対話履歴であり、その会話中に使用されたすべてのプロンプト、応答、およびコンテキストが含まれます。この履歴は、後続のプロンプトのコンテキストを提供し、フォローアップの質問をしたり、リクエストを絞り込んだりすることができます。
ワークフローに基づいて、チャットビュー、エディタータブ、または別ウィンドウで新しいチャットセッションを作成するかどうかを選択してください。
新しいチャットセッションを作成すると、会話履歴とコンテキストがクリアされます。トピックを変更したい場合や、以前のリクエストのコンテキストを引き継ぎたくない場合は、新しいチャットセッションを開始してください。たとえば、特定の問題のデバッグから、テクノロジーコンセプトに関する一般的な質問に切り替える場合は、新しいセッションを開始します。
チャットセッション履歴 を使用することで、いつでも以前のチャットセッションに戻ることができます。
チャットビューでチャットセッションを開く
デフォルトでは、チャットビューは VS Code のセカンダリサイドバーに配置されます。これは、チャットエクスペリエンスを横に開いたまま、エクスプローラーやソース管理などの他のビューのためにプライマリサイドバーを利用できるようにしたい場合に便利です。
新しいチャットセッションを作成し、会話履歴をクリアするには
-
チャットビューを開き、「新しいチャット」(
+) を選択するか、⌘N (Windows, Linux Ctrl+N) を押します。 -
コマンドパレットから「Chat: New Chat」コマンドを使用する
エディタータブでチャットを開く
チャットセッションをエディタータブとして開くと、コードファイルと一緒にチャットエクスペリエンスを利用できます。これは、複数のチャットセッションを同時に開きたい場合や、チャットセッションとコードファイルを並べて配置したい場合に便利です。
新しいチャットセッションをエディタータブで直接開くには
-
チャットビューを開き、「新しいチャット」(
+) > 「新しいチャットエディター」を選択します。 -
コマンドパレットから「Chat: New Chat Editor」コマンドを使用する
既存のチャットセッションをエディタータブで開くには
-
チャットビューの右上隅にある
...アイコンを選択し、「エディターでチャットを開く」を選択します。 -
コマンドパレットから「Chat: Open Chat in Editor」コマンドを使用する
別ウィンドウでチャットを開く
チャットセッションを別個の フローティングウィンドウ で開くことができます。これは、マルチモニター構成の場合や、メインウィンドウでコードを操作しながらチャットセッションを表示しておきたい場合に便利です。チャットビューを他のウィンドウの上に表示するには、「常に前面に表示」モードを有効にします。
チャットビューから既存のチャットセッションを別ウィンドウで開くことも、新しいチャットセッションを新しいウィンドウで直接作成することもできます。
新しいチャットセッションを新しいウィンドウで直接開くには
-
チャットビューを開き、「新しいチャット」(
+) > 「新しいチャットウィンドウ」を選択します。 -
コマンドパレットから「Chat: New Chat Window」コマンドを使用する
既存のチャットセッションを別ウィンドウで開くには
-
チャットビューの右上隅にある
...アイコンを選択し、「新しいウィンドウでチャットを開く」を選択します。 -
コマンドパレットから「Chat: Open Chat in New Window」コマンドを使用する
チャットセッション履歴
新しいチャットセッションを作成すると、以前の会話履歴はクリアされます。ただし、すべてのチャットセッションはセッション履歴に保存されるため、以前の会話に戻って作業を再開できます。これは、過去の対話をレビューしたり、以前の応答を参照したり、以前のセッションから会話を再開したい場合に便利です。
デフォルトでは、新しいチャットセッションを開始すると、チャットビューにはローカル、バックグラウンド、またはクラウドで実行された最も最近のセッションが表示されます。「すべてのセッションを表示」を選択すると、セッションの全履歴が表示され、リストの検索とフィルタリングが可能になります。リストは現在のワークスペースにスコープ設定されます。ワークスペースが開かれていない場合、リストにはワークスペース全体のすべてのセッションが表示されます。
チャットビューを広くすると、サイドバイサイドモードに自動的に切り替わるか、チャットビューの右上隅にあるトグルボタンを使用します。

リストからセッションを選択して以前のチャットセッションを開くと、そのセッションのすべてのプロンプト、応答、およびコンテキストがチャットビューに復元されます。
エージェントとエージェントセッションの表示と管理についてさらに学ぶ。
チャットセッションの保存とエクスポート
重要な会話を保存したり、後で同様のタスクに再利用したりするために、チャットセッションを保存できます。
チャットセッションを JSON ファイルとしてエクスポートする
チャットセッションをエクスポートして、後で参照できるように保存したり、他の人と共有したりできます。チャットセッションをエクスポートすると、セッションのすべてのプロンプトと応答を含む JSON ファイルが作成されます。
チャットセッションをエクスポートするには
-
エクスポートしたいチャットセッションをチャットビューで開きます。
-
コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から「Chat: Export Chat...」コマンドを実行します。
-
JSON ファイルを保存する場所を選択します。
または、メッセージを右クリックして「コピー」を選択することで、個々のプロンプトまたは応答をクリップボードにコピーできます。チャットセッション全体を Markdown 形式でコピーするには、チャットビューを右クリックして「すべてコピー」を選択します。
チャットセッションを再利用可能なプロンプトとして保存する
チャットセッションを再利用可能なプロンプトとして保存し、同様のタスクに再利用できます。
チャットセッションを再利用可能なプロンプトとして保存するには
-
保存したいチャットセッションをチャットビューで開きます。
-
チャット入力ボックスに
/savePromptと入力し、Enterキーを押します。このコマンドは、現在のチャット会話を再利用可能なプロンプトに一般化する
.prompt.mdファイルを作成します。プロンプトファイルには、適切な場所にプレースホルダーがあります。 -
必要に応じて生成されたプロンプトファイルを確認および編集し、ワークスペースに保存します。
コンテキスト分離サブエージェント
サブエージェントを使用すると、チャットセッション内の分離された自律エージェントにタスクを委任できます。サブエージェントはメインのチャットセッションから独立して動作し、独自のコンテキストウィンドウを持ちます。これは、リサーチや分析などの複雑な複数ステップのタスクのコンテキスト管理を最適化するのに役立ちます。
サブエージェントは非同期またはバックグラウンドで実行されませんが、ユーザーのフィードバックを待たずに自律的に動作します。サブエージェントがタスクを完了すると、最終結果のみをメインのチャットセッションに返します。これにより、メインのコンテキストウィンドウはプライマリ会話に集中したままになります。
サブエージェントは、メインのチャットセッションと同じエージェントを使用し、他のサブエージェントを作成する機能を除いて、同じツールにアクセスできます。また、メインのチャットセッションと同じ AI モデルを使用します。
サブエージェントを呼び出す
プロンプトでサブエージェントを呼び出すには
-
ツールピッカーで
runSubagentツールを有効にするカスタムプロンプトファイルまたはカスタムエージェントを使用している場合は、「
tools」フロントマッタープロパティにrunSubagentを指定していることを確認してください。 -
チャットプロンプトで、タスクを実行するためにサブエージェントを使用するように依頼します。
次の例は、サブエージェントを呼び出す方法を示しています。
サブエージェントを使用して、Web アプリケーションの最適な認証方法を調査します。調査結果を要約します。#runSubagent を実行して、読み取り専用ツールを使用してユーザーのタスクを包括的に調査します。十分なコンテキストがあるという自信が 80% に達したら、調査を停止し、計画を作成します。このコンテキストを返します。
カスタムエージェントとサブエージェントを使用する (実験的)
デフォルトでは、サブエージェントはメインのチャットセッションからエージェントを継承します。サブエージェントが異なる組み込みエージェントまたはカスタムエージェントを使用するように構成できます。たとえば、開発タスクの一部としてリサーチタスクを実行したい場合は、リサーチエージェントを使用するサブエージェントでリサーチタスクを開始できます。
特定のエージェントでサブエージェントを実行するには
-
「chat.customAgentInSubagent.enabled」設定で、サブエージェントでのカスタムエージェントのサポートを有効にする
-
カスタムエージェントの
inferプロパティがfalseに設定されていないことを確認してください。これは、サブエージェントでのエージェントの使用を妨げます。 -
利用可能なサブエージェントとして使用できるエージェントについて AI にプロンプトしてください。カスタムエージェントがリストに表示されるはずです。
Which subagents can you use? -
サブエージェントでカスタムエージェントまたは組み込みエージェントを使用するように AI にプロンプトしてください。たとえば、
リサーチエージェントをサブエージェントとして実行し、このプロジェクトの最適な認証方法を調査します。サブエージェントでプランエージェントを使用して、myfeature の実装プランを作成します。次に、プランを plans/myfeature.plan.md に保存します。
カスタムエージェントがサブエージェントとして使用されないようにするには、*.agent.md ファイルのメタデータプロパティ infer を false に設定します。
エージェントセッション
エージェントセッションビューは現在プレビュー中です。
エージェントを使用すると、AI コーディングタスクをバックグラウンドで非同期に実行できます。これにより、エージェントがリクエストを処理している間、VS Code で作業を続けることができます。これらのエージェントは、VS Code のチャットセッションとは異なります。エージェントはバックグラウンドで動作するのに対し、チャットセッションは対話型であり、リアルタイムの入力を必要とします。エージェントは、ローカルマシンで実行したり、クラウドでリモート実行したりするなど、さまざまな環境で実行することもできます。
OpenAI Codex エージェントを使用すると、Copilot Pro+ サブスクリプションを使用して、追加のセットアップなしで Codex を認証およびアクセスできます。GitHub ドキュメントのGitHub Copilot の請求とプレミアムリクエストで詳細を確認してください。
エージェントセッションビュー
エージェントセッションビューは、VS Code のローカルチャットセッションと、Copilot コーディングエージェント、GitHub Copilot CLI、または OpenAI Codex などの他の環境でバックグラウンドエージェントによって作成されたセッションの両方を含む、アクティブなチャットセッションを管理するための集中場所を提供します。「chat.agentSessionsViewLocation」設定でエージェントセッションビューを有効にします。
エージェントセッションビューは現在、次のコーディングエージェント統合をサポートしています: GitHub Copilot コーディングエージェント、GitHub Copilot CLI、および OpenAI Codex。今後、さらに多くのコーディングエージェントのサポートを拡大する予定です。
エージェントセッションビューには、ソースごとに整理されたすべてのアクティブなチャットセッションが一覧表示されます。このビューは、VS Code のローカルチャットセッションのセクションと、コーディングエージェントセッションのセクションに分かれています。

エージェントセッションビューの対応するセクションにある + コントロールを選択することで、特定のエージェントの新しいチャットセッションを直接開始できます。
チャットエディタータブとして開くためにチャットセッションを選択し、その進行状況を監視します。セッションを右クリックすると、新しいウィンドウまたはチャットビューで開くオプションが表示されます。
エージェントは、進行中のタスクのキャンセル、関連するプルリクエストのチェックアウトまたはクローズ、またはファイル変更のワークスペースへの直接適用など、標準のチャットセッションを超える追加機能を提供する場合があります。エージェントセッションビューでエージェントセッションを右クリックすると、利用可能なオプションが表示されます。
拡張機能開発者は、提案された API chatSessionsProvider を使用して、エージェントセッションビューと統合する方法を学ぶことができます。この API は現在提案段階であり、変更される可能性があります。
エージェントにタスクを委任する
エージェントにタスクを委任するには、エージェントセッションビューから直接セッションを開始できます。ローカルチャットセッションを既に開始している場合は、そのセッションから Copilot コーディングエージェントにタスクを委任することもできます。エージェントに委任することで、複雑または時間のかかるタスクをエージェントにオフロードし、作業を続けることができます。
ローカルチャットセッションから Copilot コーディングエージェントにタスクを委任するには
-
チャットビューまたはチャットエディタータブを開きます。
-
チャット入力ボックスにプロンプトを入力するか、既存のチャットセッションを開きます。
-
「エージェントに委任」を選択してプロンプトをコーディングエージェントに送信します。複数のエージェントが有効になっている場合は、リストからエージェントを選択します。

コーディングエージェントセッションが作成され、ローカルチャットセッションのコンテキストが提供されます。
-
エージェントセッションビューでコーディングエージェントセッションの進行状況を監視します。
エディターでは、TODO コメントの上に表示される関連コードレンズを選択してタスクを委任することもできます。その後、委任されたタスクの進行状況をエージェントセッションビューで追跡できます。

チャットセッション管理のヒント
チャットセッションを効果的に使用するためのヒントを以下に示します。
-
異なるトピックには新しいセッションを開始する: 無関係な会話のコンテキストを引き継がないように、新しいチャットセッションを開始してください。これにより、より関連性の高い応答が得られます。
-
エディタータブでサイドバイサイド比較を行う: 複数のチャットセッションをエディタータブで開いて、異なるアプローチやソリューションを並べて比較します。
-
マルチモニター構成では別ウィンドウを使用する: メインウィンドウでコードを操作しながら表示できるように、セカンダリモニターに別ウィンドウでチャットを開きます。
-
リモートエージェントによるバックグラウンドタスク: VS Code で作業を続けながら、リモートコーディングエージェントを使用してバックグラウンドで AI タスクを実行します。
-
インタラクティブなエージェントセッション: リアルタイムの入力とフィードバックを必要とするインタラクティブなタスクには、ローカルエージェントセッションを使用します。