Visual StudioでGitHub Copilot エージェントを使用する

Visual Studioには、デバッグ、プロファイリング、テストなどの開発タスク用の組み込みのGitHub Copilot エージェントが含まれています。 この記事では、Visual Studioのバージョンで使用可能なエージェントにアクセスして使用する方法について説明します。

[前提条件]

Copilot Chatのエージェントにアクセスする

Copilot Chatを開くには、Visual Studioの右上隅にあるGitHub Copilot バッジを選択し、[チャットを開く] を選択します。

次の 2 つの方法でエージェントにアクセスします。

  • エージェント ピッカー: Copilot Chat ウィンドウで、エージェント ピッカードロップダウンを選択して、使用可能なエージェントを表示します。
  • @ 構文: チャット入力に@を入力した後、エージェント名を続けて入力します(たとえば、@debugger)。

組み込みエージェントを使用する

各組み込みエージェントは、特定の開発者ワークフローに重点を置いています。 これらのエージェントは、汎用アシスタントではできない方法でVisual Studioのネイティブ ツールと統合されます。

Agent 説明
@debugger エラーメッセージの読解を超えています。 呼び出し履歴、変数状態、診断ツールを使用して、ソリューション全体でエラー診断を体系的に確認します。
@git ローカルのコミットされていない変更を確認し、エディターと Git Changes エクスペリエンスでインライン コメントとしてフィードバックを表示します。
@profiler Visual Studioのプロファイリング インフラストラクチャに接続してボトルネックを特定し、一般的なアドバイスではなく、コードベースに根付いたターゲット最適化を提案します。
@test CI が拒否する定型ではなく、プロジェクトのフレームワークとパターンに合わせて調整された単体テストを生成します。
@modernize (.NETと C++ のみ) 実際のプロジェクト グラフを認識してフレームワークと依存関係のアップグレードを処理します。 破壊的変更にフラグを設定し、移行コードを生成し、既存のパターンに従います。
計画エージェント コードの変更が始まる前に、読み取り専用ツールを使用してコードベースを調べる前に実装計画を作成および調整し、 実装プランを使用してプランをエージェント モードに切り替えます。

@debugger エージェントを使用する

@debugger エージェントは、デバッグ コンテキストを分析することで、エラーを体系的に診断するのに役立ちます。 また、バグを再現し、トレースポイントと条件付きブレークポイントを使用してアプリをインストルメント化し、ライブ ランタイム データを使用して修正を検証するエンド ツー エンドのエージェント ワークフローもサポートしています。 詳細については、「 デバッガー エージェントを使用したエージェントのバグ解決」を参照してください。

プロンプトの例:

  • @debugger Why is this exception being thrown?
  • @debugger Analyze the current call stack and explain what went wrong
  • @debugger What's causing the null reference in this method?

@git エージェントを使用する

@git エージェントを使用して、Copilot Chatを離れることなく、ローカルのコミットされていない変更を確認します。

プロンプトの例:

  • @git Review my changes
  • @git Explain this review comment and suggest a fix

Git エージェントと [変更の確認] オプションが強調表示されているVisual Studio Copilot Chatのスクリーンショット。

完全なローカル レビュー ワークフローについては、「Copilot Chatを使用してローカルの変更を確認する」を参照してください。

選択範囲の確認を使用するには、Visual Studio バージョン 18.8 以降が必要です。 選択したコードのみを確認するには、エディターでコードを選択し、選択内容を右クリックし、[Copilot アクション>Review Selection] を選択します。 Copilotはインライン コメントを追加し、提案を適用または生成できます。 このコマンドは、Git Changes ワークフローと同じGitHub Copilotコード レビュー エクスペリエンスを使用します。 詳細については、「 選択したコードを確認する」を参照してください。

@profiler エージェントを使用する

@profiler エージェントは、パフォーマンスの問題を特定して修正するために、Visual Studioのプロファイリング ツールに接続します。

プロンプトの例:

  • @profiler Find the performance bottlenecks in my application
  • @profiler Why is this method taking so long to execute?
  • @profiler Suggest optimizations for the hot path

@test エージェントを使用する

@test エージェントは、プロジェクトのテスト フレームワークと規則に一致する単体テストを生成します。

プロンプトの例:

  • @test Generate unit tests for the selected method
  • @test Create tests that cover edge cases for this class
  • @test Write integration tests for this API endpoint

より包括的な.NET テストのサポートについては、GitHub Copilot .NETを参照してください。

@modernize エージェントを使用する

@modernize エージェントは、.NET および C++ プロジェクトのフレームワークの移行と依存関係のアップグレードに役立ちます。

.NETモダン化ワークフローの場合、エージェントは次の 3 段階のプロセスをサポートします。

  • 評価: パッケージのバージョン、ターゲット フレームワーク オプション、プロジェクト インベントリ、および API 互換性リスクを確認します。
  • 計画: 現在の評価と更新の優先順位に合わせた移行計画を生成します。
  • タスクの実行: 作業の進行に合わせて、編集可能な動的タスク ファイルを使用して最新化タスクを処理します。

プロンプトの例:

  • @modernize Upgrade this project to .NET 8
  • @modernize What breaking changes should I expect when migrating?
  • @modernize Update deprecated API calls in this file
  • @modernize Assess this solution, generate a migration plan, and create execution tasks

gitHub Copilot アプリ .NETの最新化に関するエンド ツー エンドのガイダンスについては、GitHub Copilot アプリ モダン化の概要を参照してください。

クラウド エージェントを使用する

Visual Studio バージョン 18.1 以降では、Copilot Chat のエージェント ピッカーから GitHub Cloud Agent セッションを開始できます。 リポジトリを接続するには、GitHub リポジトリからローカル ソリューションを開き、Visual StudioでGitHubにサインインします。 GitHub Copilot コーディング エージェントは、これらのリモート セッションに電力を供給します。 リポジトリの問題を作成し、そのリポジトリに要求をプルできます。

クラウド エージェントは、GitHub Copilotコーディング エージェントがアクセスできるリポジトリでのみ機能します。 リポジトリがコーディング エージェントでまだ使用できない場合は、GitHubでアクセス権を付与します。 Visual Studio、クラウド セッションを初めて開始したとき、またはセッションにより多くのアクセス許可が必要な場合に、リポジトリにアクセス許可を付与するように求められる場合があります。 要求されたアクセス許可を承認する前に確認します。

カスタム エージェントを作成して使用する

カスタム エージェントには、バージョン 18.4 以降Visual Studio必要です。

組み込みのエージェントは一般的なワークフローをカバーしていますが、チームはそのワークフローを最もよく知っています。 カスタム エージェントは、ワークスペースの認識、コードの理解、好みの AI モデル、独自のツールなど、チームのワークフローに合わせて調整されたエージェントの基盤を提供します。

カスタム エージェントは、 MCP (モデル コンテキスト プロトコル) と組み合わせた場合に特に強力です。 エージェントを内部ドキュメント、設計システム、API、データベースなどの外部ナレッジ ソースに接続して、エージェントがリポジトリ内の情報に限定されないようにします。

任意 のエージェント が自動的に検出して使用できる再利用可能なエージェント スキルを定義します。 エージェントはペルソナとツール セットを定義しますが、スキルはタスク固有の集中した手順を提供します。

エージェント ピッカーで、コールアウト 1 でエージェントを作成するための [ + ] ボタンが強調表示され、吹き出し 2 で my-agent という名前のカスタム エージェントが強調表示されます。

Visual Studio Copilot Chat エージェント ピッカーのスクリーンショット。エージェントの作成ボタンの吹き出し 1 と、my-agent カスタム エージェントの吹き出し 2。

組み込みの.NETおよびAzureスキルには、バージョン 18.8 以降Visual Studio必要があります。 Visual Studioは、対応するワークロードをインストールするときにこれらのスキルを提供します。 組み込みのエージェントや作成するエージェント スキルとは異なり、これらのワークロード固有のスキルは [スキル] タブの組み込みカテゴリに表示され、既定ではオフになっています。 タスクに適用されるスキルのみを確認して有効にします。 詳細については、「組み込みの.NETとAzureのスキルを使用する」を参照してください。

ワークスペース スキルが有効で組み込みのスキルがオフになっている [スキル] タブを示すVisual Studio Copilot Chatのスクリーンショット。

カスタム エージェントを作成する

リポジトリ レベルのカスタム エージェントは、格納先のリポジトリにのみ適用されます。 手動で作成するには:

  1. リポジトリ ルートで、 .github/agents/ フォルダーがまだ存在しない場合は作成します。
  2. そのフォルダーに、code-reviewer.agent.mdなど、.agent.mdで終わる名前のファイルを作成します。
  3. エージェント ファイル形式で説明されている形式を使用して、YAML フロント マターと Markdown 命令を追加します。
  4. ファイルを保存します。

結果のフォルダー構造は次のようになります。

your-repo/
└── .github/
    └── agents/
        └── code-reviewer.agent.md

Visual Studio バージョン 18.5 以降では、エージェント ピッカー+ ボタンを選択し、プロンプトに従ってカスタム エージェントを作成します。

すべてのプロジェクトに適用されるユーザー レベルのエージェントを作成するには、その .agent.md ファイルを既定で %USERPROFILE%\.github\agents に格納します。 [ツール] > [オプション] > GitHub > Copilotでこの場所を変更します。

カスタム エージェントを選択して確認する

カスタム エージェントを作成した後:

  1. Copilot Chat を開きます。
  2. エージェント ピッカーを開き、定義の名前と説明を含むエージェントが表示されることを確認します。
  3. エージェントを選択するか、チャット入力@エージェント名を入力して呼び出します。
  4. エージェントの指示のいずれかをテストするプロンプトを入力します。
  5. 応答がエージェントの役割と指示に従っていることを確認します。 定義でツールが指定されている場合は、[ ツール ] パネルを開き、必要なツールが使用可能であることを確認します。

組織レベルのカスタム エージェントを使用する

組織レベルのカスタム エージェントには、Visual Studioバージョン 18.9 以降と、GitHub組織に属するリポジトリが必要です。

GitHub組織とエンタープライズ所有者は、組織内のリポジトリ間でメンバーが使用するためのカスタム エージェントを発行できます。 組織内のリポジトリを開くと、Visual Studioはこれらのエージェントを自動的に検出し、エージェント ピッカーに追加します。

組織レベルのカスタム エージェントを使用する前に検査するには:

  1. Copilot Chatを開き、エージェント ピッカーを選択します。
  2. エージェントにカーソルを合わせると、その説明とソース組織が表示されます。
  3. 定義ボタンを選択して、エージェント定義ファイルを開きます。

Visual Studio エージェント ピッカーのスクリーンショット。組織のエージェント、そのソース組織、およびエージェント定義を開くボタンが表示されています。

組織と企業の所有者は、GitHubでこれらのエージェントを構成します。 セットアップ ガイダンスについては、「 組織でカスタム エージェントを使用するための準備 」または 「企業でカスタム エージェントを使用するための準備」を参照してください

組織レベルのカスタム手順には、バージョン 18.8 以降Visual Studio必要があります。 これらはカスタム エージェントとは別です。 組織の所有者は、カスタム指示を使用して、組織のリポジトリで作業する際に Visual Studio が自動的に適用する基本設定を定義します。 適用された手順が [参照] に表示されます。 Visual Studio設定で無効にします。 詳細については、「 組織レベルのカスタム手順を使用する」を参照してください。

エージェント ファイル形式

各エージェント ファイルでは、YAML のフロント マターとそれに続く Markdown 命令が使用されます。

---
name: Code Reviewer
description: Reviews PRs against our team's coding standards
tools: ["code_search", "readfile", "find_references"]
---

You are a code reviewer for our team. When reviewing changes, check for:

- Naming conventions: PascalCase for public methods, camelCase for private
- Error handling: all async calls must have try/catch with structured logging
- Test coverage: every public method needs at least one unit test

Flag violations clearly and suggest fixes inline.

使用可能なモデルは、Visual Studioバージョンと、Copilotプランで使用できるモデルによって異なります。 model プロパティは省略可能であるため、モデル ピッカーで選択したモデルを使用するには省略します。 プロパティを含める場合は、Visual Studioのバージョンで使用できるモデルを選択します。

フロント マター プロパティ

プロパティ 必須 説明
name いいえ エージェントピッカーでのエージェントの表示名。 このプロパティを指定しない場合、エージェント名はファイル名から取得されます (たとえば、 code-reviewer.agent.mdcode-reviewerになります)。
description イエス エージェントの上にマウス ポインターを置いたときに表示される簡単な説明
model いいえ 使用する AI モデル。 このプロパティを指定しない場合は、モデル ピッカーで選択されたモデルが使用されます。
tools いいえ エージェントが使用できるツール名の配列。 このプロパティを指定しない場合は、使用可能なすべてのツールが有効になります。

一部のカスタム エージェントでは、 tools プロパティを指定しない場合でも、エージェントを選択した後にツール グループが無効に表示されます。 一部のセッションでは、同じチャット スレッド内の各フォローアップ メッセージの後にツールの選択がリセットされます。 この状態が発生した場合は、[ ツール] パネルで必要なツールを手動で再度有効にします。 手順とレポートのガイダンスについては、「 カスタム エージェント ツール グループの起動の無効化またはターン間のリセット」を参照してください。

ツールの指定

ツールは、カスタム エージェントで実行できる機能を拡張します。 エージェントが tools 配列で使用するツールを指定します。

Important

ツール名は、GitHub Copilotプラットフォームによって異なります。 Visual Studioで使用できるツールを確認し、エージェントが期待どおりに動作することを確認します。 チャット ウィンドウで [ツール ] アイコンを選択すると、使用可能なツール名が表示されます。

C++ 用の言語固有のツール

エージェント モードには、通常、C++ コード編集ツールが含まれます。 C++ ワークロードをインストールする場合、カスタム エージェントは、tools配列で次のVisual Studio固有のツール名を使用できます。

  • get_symbol_call_hierarchy 呼び出し階層ナビゲーション用
  • get_symbol_class_hierarchy クラスと型の階層ナビゲーションの場合

これらのツールは、エージェントに C++ の言語対応ナビゲーションを提供し、C++ コードを分析および編集するときの精度を向上させます。

MCP を使用して外部ソースに接続する

MCP サーバーを使用すると、カスタム エージェントは次のような外部ナレッジ ソースにアクセスできます。

  • 内部ドキュメントと Wiki
  • システムとコンポーネント ライブラリの設計
  • API とデータベース
  • スタイル ガイドと ADR リポジトリ

たとえば、コード レビュー エージェントは、MCP を通じてスタイル ガイドに接続することで、実際の規則に照らして PR を確認できます。

カスタム エージェントの例

コード レビュー エージェント

---
name: Code Reviewer
description: Reviews code against our team's coding standards
tools: ["code_search", "readfile"]
---

You are a code reviewer for our team. Review changes for:

1. **Naming conventions**: PascalCase for public methods, camelCase for private fields
2. **Error handling**: All async calls must have try/catch with structured logging
3. **Test coverage**: Every public method needs at least one unit test
4. **Documentation**: Public APIs must have XML documentation comments

Flag violations clearly and suggest fixes inline.

機能計画エージェントの例

組み込みの計画エージェント以外のチーム固有の計画ワークフローや追加ツールが必要な場合は、カスタム機能計画エージェントを使用します。

---
name: Feature Planner
description: Helps plan features before writing code
tools: ["code_search", "readfile", "find_references"]
---

You are a feature planning assistant. When asked about a feature:
1. Gather requirements by asking clarifying questions
2. Identify affected files and components in the codebase
3. Break down the work into discrete tasks
4. Flag potential risks or dependencies
5. Create a structured plan that can be handed off for implementation

Focus on understanding scope before suggesting solutions.

デザインシステムエージェント

---
name: Design System
description: Enforces UI design patterns and component usage
tools: ["code_search", "readfile"]
---

You are a design system expert. When reviewing UI code:

1. Check that standard components are used instead of custom implementations
2. Verify spacing and layout follow the design token system
3. Ensure accessibility requirements are met (ARIA labels, keyboard navigation)
4. Flag any UI drift from established patterns

Reference the component library documentation when suggesting fixes.

Visual Studio ツールを使用したフル スタック開発エージェント

次の例では、Visual Studio固有のツール名を使用します。

---
name: Full Stack Dev
description: Full-stack development assistant with search, file editing, and terminal access
tools: ["code_search", "readfile", "editfiles", "find_references", "runcommandinterminal", "getwebpages"]
---

You are a full-stack development assistant. Help with:

1. Searching the codebase to understand existing patterns
2. Reading and editing files to implement changes
3. Running build and test commands to verify your work
4. Looking up documentation when needed

Always check existing code conventions before making changes.

ヒント

Copilot Chat ウィンドウで Tools アイコンを選択すると、Visual Studioのバージョンで使用可能なすべてのツール名が表示されます。

.NET開発エージェント

.NET チームは、awesome-copilot リポジトリで C# およびWindows フォーム開発用にキュレーションされたカスタム エージェントを保持しています。 作業を開始するには:

  1. CSharpExpert.agent.mdWinFormsExpert.agent.md をダウンロードします。
  2. リポジトリの .github/agents/ フォルダーにファイルを追加します。
  3. エージェント モードでCopilot Chatを開き、エージェント ピッカーからエージェントを選択します。

ヒント

Tools>Options>GitHub>Copilot, 次に、可能なプロジェクト固有の.NET命令 (該当する場合はWindows フォーム開発など) を有効にして、コード ベースに適切なカスタム エージェントを自動的に追加します.

C# 専門家

C# エキスパート エージェントは、Copilotのコード生成に最新の C# 規則を適用します。

  • 構文とパフォーマンス: リポジトリの既存の規則に一致しながら、現在のベスト プラクティスに従います。
  • 最小限の変更: 適切なキャンセルと例外処理で async/await を使用して、必要なコードのみを生成します。 未使用のインターフェイス、メソッド、またはパラメーターを回避します。
  • テスト: 動作駆動型の単体テスト、統合テスト、および TDD ワークフローをサポートします。

ウィンフォームズのエキスパート

WinForms Expert エージェントは、.NET 8 から .NET 10 でのWindows フォーム開発を対象とします。

  • Designer コード保護: .Designer.csの破損を防ぎ、Copilotによる編集後もWindows フォーム デザイナーが正常に動作し続けます。
  • UI 設計パターン: MVVM および MVP パターン (Community Toolkit データ バインディングを含む)。
  • Modern .NET: InvokeAsync オーバーロード、ダーク モード、高 DPI 認識、および null 許容参照型を修正します。
  • レイアウト: 応答性の高い DPI 対応レイアウトの TableLayoutPanelFlowLayoutPanel
  • CodeDOM シリアル化: 適切なデザイナー プロパティ処理のための属性と[DefaultValue]メソッドを使用します。
  • 例外処理: 非同期イベント ハンドラー パターンとアプリケーション レベルの例外処理。

コミュニティの構成

awesome-copilot リポジトリでは、出発点として利用できるコミュニティ提供のエージェント構成を提供しています。 このリポジトリの構成を使用する場合は、チームにデプロイする前に、ツール名がVisual Studioで機能することを確認します。

制限事項と注意事項

  • モデルを指定しない場合、エージェントはモデル ピッカーで選択されている任意のモデルを使用します。
  • ツール名は、GitHub Copilotプラットフォームによって異なります。 チームにデプロイする前に、ツール名がVisual Studioで機能することを確認します。

フィードバックを共有する

awesome-copilot リポジトリでカスタム エージェント構成を共有するか、Visual Studio Developer Community を通じてフィードバックをファイルします。 ワークフローは、将来の機能を形成するのに役立ちます。

Visual Studio 2022 で組み込みエージェントを使用する

Visual Studio 2022 バージョン 17.14 以降が必要です。

Copilot Chatを開くには、Visual Studioの右上隅にあるGitHub Copilotバッジを選択し、[チャット ウィンドウを開く] を選択します。

次の 2 つの方法で組み込みエージェントにアクセスします。

  • エージェント ピッカー: Copilot Chat ウィンドウで、エージェント ピッカードロップダウンを選択して、使用可能な組み込みエージェントを表示します。
  • @ 構文: チャット入力に @ 続けてエージェント名を入力します (例: @profiler)。

エージェント ピッカーには、次の組み込みエージェントを含めることができます。 可用性は、Visual Studio 2022 バージョンとインストールされているワークロードによって異なる場合があります。

Agent 説明
Context コンテキスト分析エージェント
GitHub GitHubとチャットする
プロファイラー コードを最適化しましょう
VS Visual Studioについて質問する
Workspace ワークスペースについて質問する

コンテキスト、GitHub、プロファイラー、VS、ワークスペースを示す Visual Studio 2022 Copilot Chat エージェント ピッカーのスクリーンショット。

@context エージェントを使用する

@context エージェントは、使用しているコードを理解するのに役立つ要求のコンテキストを分析します。

プロンプトの例:

  • @context Explain the code in the current file
  • @context What code is relevant to this method?
  • @context Summarize the context for the selected code

@profiler エージェントを使用する

@profiler エージェントは、パフォーマンスの問題を特定して修正するために、Visual Studioのプロファイリング ツールに接続します。

プロンプトの例:

  • @profiler Find the performance bottlenecks in my application
  • @profiler Why is this method taking so long to execute?
  • @profiler Suggest optimizations for the hot path