イントロダクション
Copilot CLI の /research スラッシュ コマンドは、詳細な調査と研究のための強力なツールです。
/researchを入力し、その後に知りたいことの詳細を入力すると、Copilot は、コードベース、関連する GitHub リポジトリ、および Web から情報を収集して処理する特殊なリサーチ エージェントをアクティブ化します。 この組み込みのカスタム エージェントは、引用文献を含む包括的な Markdown レポートと CLI の簡単な概要を生成します。 完全なレポートを表示し、GitHub で gist として保存できるため、簡単に共有できます。
このコマンドは、コードベース、API、ライブラリ、ソフトウェア アーキテクチャ、およびその他の技術的なトピックに関する複雑な質問に対する包括的で適切に引用された回答を提供するように設計されています。
`/research`スラッシュ コマンドの使用
対話型 CLI セッションで、次のように入力します。
/research TOPIC
/research TOPIC
ここで TOPIC は、見つけたい内容の自然言語の説明です。
CLI に付与したアクセス許可に応じて、Copilot は、調査のコンパイル時にデータを格納するディレクトリを作成するためのアクセス許可を付与するように求められる場合があります。
調査が完了すると、Copilot に主要な結果の概要が表示され、完全なレポートを含む Markdown ファイルへのリンクが表示されます。
調査レポートの表示と共有
調査が完了したときに表示されるリンクを使用して、Markdown ファイルの既定のエディターで完全なレポートを表示できます。
または、Ctrl+キーを押して、現在のセッションの最新の研究レポートをターミナルで開きます。
メモ
+
<kbd>Y</kbd> キーを押したときにレポートを表示するために使用されるアプリケーションは、`COPILOT_EDITOR`、`VISUAL`、または`EDITOR`環境変数の値によって決定されます (優先順位の順)。 これらのいずれかが設定されていない場合、CLI は Linux 上で vi または macOS 上の vim を使用します。
レポートを共有するには、ファイルに保存するか、 GitHub gist を作成します。
-
gist を作成するには、次のように入力します。
Copilot prompt /share gist research
/share gist researchファイルに保存するには、次のように入力します。
Copilot prompt /share file research [PATH]
/share file research [PATH]`[PATH]`パラメーターを省略した場合、ファイルは現在の作業ディレクトリに保存され、リサーチ トピックに基づいてファイル名が付けられます。 -
アップ/ダウンキーを使用し、キーを入力して、現在のセッション中に作成したリサーチ レポートの一覧から共有するレポートを選択します。
GIST の URL、またはファイルへのパスが CLI に表示されます。
`/research` の利点
*
速度を超える深さ:通常のチャットは、迅速な回答のために最適化されています。
/research は徹底的に最適化されています。 アーキテクチャ図、コード スニペット、引用文献を使用して、数百行の長さのレポートを生成します。
-
**保存された出力と共有可能な出力**: レポートは Markdown ファイルとしてディスクに保存されます。 いつでも表示および共有できます。 これにより、研究の出力は、一時的なチャット メッセージではなく、永続的な成果物になります。 -
**リポジトリ間で動作**します。GitHub にログインすると、エージェントは組織のリポジトリ全体を検索したり、パブリックまたはアクセス可能なプライベート リポジトリからファイルをフェッチしたり、Web を検索したりできます。ローカル コードベースに限定されるわけではありません。 -
**クエリタイプの適応**: 標準の一括形式のレポートを生成するのではなく、応答形式は、ハウツーの質問、概念的な質問、または技術的な詳細を求める質問に応じて自動的に適応します。 -
**自律的な操作**:エージェントは明確な質問を中断することはありません。 妥当な仮定を行い、「信頼度評価」セクションに明示的に文書化します。
`/research`のプロンプトの例
Codebase アーキテクチャ
/research What is the architecture of this codebase?
/research What is the architecture of this codebase?
**適切に機能する理由**: リサーチ エージェントは、現在の作業ディレクトリを対象とする `grep`、 `glob`、および `view` ツールにアクセスできます。 完全なプロジェクト ツリーの探索、キー ファイルの読み取り、アーキテクチャの概要の合成を行うことができます。通常のチャット応答では、表面的にしか行わない場合があります。 通常、エージェントはアーキテクチャ図、コンポーネントの内訳、およびデータ フローの説明を生成します。
特定のテクノロジのしくみ
/research How does React implement concurrent rendering?
/research How does React implement concurrent rendering?
**適切に機能する理由**: エージェントは、特殊なツールを使用してインターネットから情報をプルし、GitHub で実際の React ソース コードを確認します。 ドキュメントよりもコードに優先順位を付け、ファイル パスに行番号を付けることを指示します。
内部実装パターンについて
/research How are feature flags implemented at our organization?
/research How are feature flags implemented at our organization?
**適切に機能する理由**: エージェントは明示的に、"常にパブリック/オープンソースの代替よりも内部/プライベート実装に優先順位を付ける" よう指示され、最初に `org:ORGNAME` クエリを使用して組織のリポジトリを検索します。
`-hub`、`-service`、`-client`などの内部名前付けパターンを探す必要があります。
テクノロジまたはアプローチの比較
/research What's the difference between JWT and session-based authentication?
/research What's the difference between JWT and session-based authentication?
**適切に機能する理由**: エージェントは、説明、トレードオフ、設計上の決定を含む"概念/説明の質問" への応答を調整します。 通常、テーブルは 3 つ以上の項目の比較に使用されます。
プロセス/ハウツーの質問
/research How do I add an endpoint to the API?
/research How do I add an endpoint to the API?
**適切に機能する理由**: エージェントは、クエリの種類を検出し、プロセス/ハウツー型の質問に関連するドキュメント、連絡先、システムへのリンクを含むステップ バイ ステップ ガイダンスを提供するようにトレーニングされています。
特定のコードベース コンポーネントの詳細な検討
/research How is the session management system implemented in this repo?
/research How is the session management system implemented in this repo?
適切に機能する理由: ローカル ツール (grep、glob、view) とエージェントの指示を組み合わせて、"インポート、呼び出し、型参照をトレースする" と "依存関係に従う" ということは、単に高レベルの回答を得るだけでなく、実際の実装について説明することを意味します。
使用する必要がない_場合_/research
-
**簡単で簡単な質問**: "この関数は何をしますか? または"このバグを修正", 通常のチャットメッセージは、より速く、より適切です. `/research` は、広範な調査が必要な質問用に設計されています。 -
**コードの変更が必要な場合**: `/research` は、コードの変更ではなく、レポートを生成します。 `create` ツールを使用してレポート ファイルを保存しますが、`edit`、`bash`、その他のコード変更ツールは使用しません。 エージェントで実際にコードを変更する必要がある場合は、通常のプロンプトを使用します (通常はプラン モードから開始します)。 -
**時間に依存する相互作用**: エージェントは多数のツール呼び出し (コードの検索、ファイルのフェッチ、Web の検索) を行うため、通常の応答よりも時間がかかります。 コーディングの流れで迅速な回答が必要な場合は、通常のチャットが適しています。
考慮事項と注意すべき事項
-
**レポートはセッションに関連付けられます**。リサーチ レポートはセッション固有のリサーチ ディレクトリに格納されます。 新しいセッションを開始した場合、 <kbd>Ctrl</kbd>+<kbd>Y</kbd> ショートカットまたは `/share` スラッシュ コマンドを使用すると、CLI 内で以前の調査を使用できなくなります。 ただし、適切な `~/.copilot/session-state/SESSION-ID/research/` ディレクトリから以前のレポートにアクセスできます。Linux または macOS では、ターミナル コマンド プロンプトで次のコマンドを使用して、最新の 10 個の CLI セッション ディレクトリを一覧表示できます。
Bash ls -dtl ~/.copilot/session-state/*/ | head -10
ls -dtl ~/.copilot/session-state/*/ | head -10 -
**リサーチ エージェントは特定のモデルを使用**します。リサーチ エージェントは、特定の AI モデルを使用するようにハードコーディングされています ( [AUTOTITLE](/copilot/reference/cli-command-reference#built-in-agents) を参照)。 モデルの選択は、 `/model` コマンドでは構成できません。 リサーチ エージェントは、メイン セッションに対して選択したモデルに関係なく、定義されたモデルを常に使用します。 -
**レポートの品質はクエリの種類によって異なります**。エージェントはクエリを 3 種類に分類し、それに応じて応答を調整します。- ステップ バイ ステップ ガイダンス→プロセスの質問 (最小限のコード)。
-
**概念的な質問→** コンテキストを含む説明です。 -
**技術的な詳細** →アーキテクチャ図、コンポーネント セクション、およびコード例の完全な説明です。
プロンプトの表現方法は、エージェントによる調査分類の選択に影響する可能性があります。 たとえば、技術的な詳細が必要な場合に、質問を "X とは何か" と表現すると、概念的な回答が得られる場合があります。 このような場合、Copilot に生成してほしいレポートの種類をより明確にするよう、プロンプトを言い換えることができます。 例: "アーキテクチャ図とコード例を使用して、X に関する技術的な詳細を説明します。"
詳細については、次を参照してください。
-
[AUTOTITLE](/copilot/how-tos/copilot-cli) -
[AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli)