# Copilotカスタマイズ機能の比較

Copilotガイダンス、専門的な専門知識、ツールへのアクセスを提供する適切な方法を選択してください。

## Introduction

Copilotをカスタマイズして、規則に従ったり、反復可能なワークフローを実行したり、コードベースを超えてシステムに接続したりできます。

この記事では、次の違いについて説明します。

* **カスタム手順**

  これらはCopilot一般的に**振る舞い方を**示します。 たとえば、生成するコードがあなたのコーディング標準に従うようにするには。
  [詳細については、以下をご覧ください](#custom-instructions)。

* **エージェントのスキル**

  これらは Copilot**特定の種類のタスクを処理する方法を**示します。 たとえば、リリース ノートを下書きするときにチームのプロセスに従うため。
  [詳細については、以下をご覧ください](#agent-skills)。

* **ツール**

  これらは **能力を提供します**。 たとえば、ファイルを検索して変更したり、 GitHubの一部と対話したりします。
  [詳細については、以下をご覧ください](#tools)。

* **MCP サーバー**

  これにより、\*\*\*\* が外部サービスと対話できるCopilotされます。
  [詳細については、以下をご覧ください](#mcp-servers)。

* **フック**

  これにより、 **エージェントのワークフロー内の特定のポイントで独自のロジックを実行できます**。 たとえば、エージェントがツールを使用する前にスクリプトを実行できます。
  [詳細については、以下をご覧ください](#hooks)。

* **サブエージェント**

  これらは、メイン エージェントとは別に **委任された作業を実行** します。 彼らは独自の会話コンテキストを持っているので、中間作業はメインエージェントのコンテキストウィンドウを埋めません。
  [詳細については、以下をご覧ください](#subagents)。

* **カスタム エージェント**

  これらは、特定のタスク向けの指示とツールを備えた**専門的な役割を定義**します。 たとえば、カスタム エージェントは、React レビュー担当者、ドキュメント ライター、またはテスト ジェネレーターとして機能する場合があります。
  [詳細については、以下をご覧ください](#custom-agents)。

* **拡張機能**

  これらの**コードで実装された機能を追加**。 たとえば、Copilot CLI 拡張機能は、セッション アクティビティを追跡するツールを追加します。
  [詳細については、以下をご覧ください](#extensions)。

* **プラグイン**

  これらは、スキル、フック、カスタム エージェント、MCP サーバーなどの事前構成済みのカスタマイズを提供できる **パッケージ** です。
  [詳細については、以下をご覧ください](#plugins)。

サポートと構成はサーフェスによって異なります。 サポートの比較については、 [Copilot カスタマイズのチートシート](/ja/copilot/reference/customization-cheat-sheet#ide-and-surface-support) を参照してください。

## カスタム指示

カスタム指示は、Copilot Chat 上の GitHub Copilot app、Copilot CLI、Copilot cloud agent、Copilot code review、GitHub.com、およびサポートされている IDE で利用できます。 使用できる命令の種類は、使用する場所によって異なります。

### カスタム命令とは

カスタム命令は、Copilot が定義されたスコープ内で使用する永続的なガイダンスです。 たとえば、リポジトリの指示ではプロジェクトのコーディング規則とテスト コマンドを記述できますが、個人の指示ではコミュニケーションの好みを説明できます。

手順はモデルをガイドしますが、すべてのルールに従うことを保証するものではありません。

### カスタム命令はどのような問題を解決しますか?

カスタム手順は、次の場合に役立ちます。

* Copilotコーディング規則とユーザー設定に合わせて調整します。
* チームまたは組織の標準を一貫して適用します。
* すべてのプロンプトに繰り返しリマインダーを含めないようにします。

### カスタム命令を使用する必要がある場合

カスタム手順を使用するには：

* スタイルと品質の規則。 たとえば、「小さなプルリクエストを優先し、テストを記述し、ディスカッションなしでパブリック API を変更しないようにする」などです。
* リポジトリの規則。 例: " `pnpm`を使用し、変更ログ エントリを `CHANGELOG.md`に保持し、コミットする前に `pnpm test` を実行します。"
* 通信設定 例: 「トレードオフを簡単に説明してから、推奨する選択肢を示してください。」

### カスタム命令を使用すべきではないのはいつですか?

次の場合は、最小限に抑えます。

* 1種類のタスクに対してのみその動作を望んでいます。 代わりにスキルを使用してください。
* 指示は非常に詳しく説明されているため、すぐに行う作業から気が散ります。 特殊なガイダンスには、スキルまたはカスタム エージェントを使用します。

### カスタム手順の詳細を確認する

* [GitHub Copilotのカスタム手順](/ja/copilot/concepts/prompting-and-context/custom-instructions)
* [さまざまな種類のカスタム命令のサポート](/ja/copilot/reference/custom-instructions-support)

## エージェントのスキル

エージェント スキルは、Visual Studio Code、Visual Studio、JetBrains IDE製品群、および GitHub Copilot app でサポートされており、Copilot CLI、Copilot cloud agent、および Copilot code review のエージェント モードでもサポートされます。

### スキルとは

スキルは、特定の種類のタスクの指示を含む`SKILL.md`ファイルを含むフォルダーです。 その名前と説明は、Copilot がこれらの命令をいつ読み込むかを決定するのに役立ちます。

スキルには、エージェントが実行できるテンプレートやスクリプトなどのサポート リソースを含めることもできます。

### スキルはどのような問題を解決しますか?

スキルは次の場合に役立ちます。

* コード レビューなど、 Copilot が特定のコンテキストでタスクを実行する方法を標準化します。
* 関連する場合は、すべてのやり取りに追加せずに手順を指定します。
* コンテキスト ウィンドウには、現在のタスクとは関係のない命令を入力しないでください。

### スキルを使用する必要がある場合

必要な場合は、スキルを使用します。

* 反復可能なワークフロー。 たとえば、フロントエンド コードが変更されたときに、ユーザー向けのドキュメントが更新されていることを確認します。
* 一貫性のある出力形式。 たとえば、チームのテンプレートを使用してリリース ノートの下書きを作成します。
* 必要なワークフローですが、必ずしも必要なわけではありません。 たとえば、移行時には詳細なリファクタリング手順に従ってください。

### スキルを使用すべきではないのはいつですか?

次の場合は別のカスタマイズを選択してください。

* ガイダンスは、あなたの業務全般に広く適用される必要があります。 代わりにカスタム命令を使用してください。
* 外部システムにアクセスする必要があります。 MCP サーバーを使用してツールを提供し、スキルでそのツールの使用方法を記述できます。
* 特定のツールセットを使用する、繰り返し活用できる専門人材が必要です。 カスタム エージェントを検討します。

### エージェントのスキルの詳細を確認する

「[エージェントのスキル](/ja/copilot/concepts/customizations/agent-skills)」を参照してください。

## Tools

GitHub Copilot app、Copilot CLI、Copilot cloud agent、およびサポートされている IDE でエージェントが使用できるツールがあります。 使用可能なツールとアクセス許可コントロールは、サーフェスによって異なります。

### ツールとは

ツールは、Copilot がファイルの検索、ファイルの内容の表示、編集、コマンドの実行など、何かを行うために使用する機能です。 一部のツールは組み込まれており、他のツールは MCP サーバーまたは拡張機能を介して追加できます。

### ツールはどのような問題を解決しますか?

ツールを使用すると、エージェントは:

* 読んで検索してコンテキストを把握します。
* ファイルを編集して変更を加えます。
* コマンドを実行し、結果を検証します。

### ツールはいつ使用されますか?

通常、ツールは直接呼び出しません。
Copilot は、利用中の画面の権限と制御に従って、要求を実行するツールを選択します。

次の場合、使用するツールが表示されます。

* エージェントにリポジトリを検索し、ファイルを更新し、テストを実行するよう依頼します。
* MCP サーバー経由で外部サービスへのアクセスを必要とする作業を依頼します。
* エージェントに、サブエージェントへの委任の恩恵を受けるタスクを与えます。

統合を追加する前に、エージェントの既存のツールが既にニーズを満たしているかどうかを確認してください。

## MCP サーバー

MCP サーバーは、 GitHub Copilot app、 Copilot CLI、 Copilot cloud agent、 Copilot code review、 Visual Studio Code、 Visual Studio、 JetBrains IDE製品群、Xcode、Eclipse でサポートされています。 構成と認証のオプションは、対象によって異なります。

### MCP サーバーとは

MCP サーバーは、 Copilotなどの AI アプリケーションが外部データ ソースやツールに接続できるようにするサービスです。

たとえば、オンライン 予定表やサポート チケット システムと対話するためのツールを提供する MCP サーバーを追加できます。

### MCP サーバーはどのような問題を解決しますか?

組み込みのツールで十分でない場合は、MCP サーバーが役立ちます。 次のことができます。

* Copilotを外部システムに接続します。
* API、データベース、またはその他のサービスを操作するための専用ツールを追加します。
* リポジトリの外部にある情報へのアクセスを提供します。

### MCP サーバーを使用する必要がある場合

必要な場合は、MCP サーバーを使用します。

* 外部システムからの情報。 例："Product X で今月起票されたサポートチケットの数はいくつですか?"
* 別のサービスでのアクション。 例: "この修正内容を要約するコメントをサポート チケットに追加する。"

### MCP サーバーを使用すべきではないのはいつですか?

組み込みのツールが既にニーズに対応している場合は、MCP サーバーを追加しないでください。

### MCP サーバーの詳細を確認する

「[モデル コンテキスト プロトコル (MCP)](/ja/copilot/concepts/customizations/mcp)」を参照してください。

## フック

フックは、 GitHub Copilot app、 Copilot CLI、 Copilot cloud agent、および Visual Studio Codeでサポートされます。 サポートされるイベントとコントロールは、サーフェスによって異なります。

### フックとは何ですか？

フックは、エージェントのワークフロー内の特定のポイントで定義したシェル コマンドを実行します。 たとえば、ツールが使用される前やセッションが終了するときにフックを実行できます。

プロンプトを使用してモデルをガイドするスキルやカスタム命令とは異なり、フックは定義されたイベントでコードを実行します。

### フックはどのような問題を解決しますか?

フックは、次のようなエージェント アクションをより詳細に制御する必要がある場合に役立ちます。

* 実行を許可する前にツール要求を確認する。
* ログ ツールの使用またはセッション アクティビティ。
* サポートされているイベントでのカスタム検証の実行。

### どのような場合にフックを使用すべきですか？

必要な場合はフックを使用します。

* ツールチェック。 たとえば、実行前に、提案されたコマンドが許可リストに含まれているか確認します。
* セッションの自動化。 たとえば、エージェント セッションの開始または終了を記録します。
* カスタム検証。 たとえば、ツール要求によって保護されたパスが変更されるかどうかを確認します。

フックがどこでも変更されずに動作すると仮定するのではなく、対象環境のイベントと構成の参照を使用します。

### フックを使用すべきではないのはいつですか?

別のカスタマイズを選択するのは次の場合です：

* ワークフローの手順だけが必要です。 スキルを使用
* 永続的な基本設定と標準を求めています。 カスタム指示を使用してください。
* 外部ツールにアクセスする必要があります。 MCP サーバーを使用します。

### フックについて詳しく知る

* [GitHub Copilot 用のフック](/ja/copilot/concepts/customizations/hooks)
* [GitHub Copilotフックリファレンス](/ja/copilot/reference/hooks-reference)

## サブエージェント

サブエージェントは、 GitHub Copilot app、 Copilot CLI、 Visual Studio Code、 JetBrains IDE製品群、Xcode、Eclipse でサポートされています。

### サブエージェントとは

サブエージェントは、メインエージェントが特定の作業を委任する相手のエージェントです。 独自の会話コンテキストで動作し、その結果をメイン エージェントに報告します。

サブエージェントは、組み込みのエージェントまたはカスタム エージェント プロファイルを使用できます。 委任されたタスクごとにカスタム エージェントを定義する必要はありません。

### サブエージェントはどのような問題を解決しますか?

サブエージェントはエージェントを支援します。

* サブタスクを個別のコンテキストで処理することで、メインの会話の焦点を維持します。
* サポートされている場合は、独立したタスクを並列で実行します。
* カスタム エージェント プロファイルを使用して専門的な作業を委任します。

### サブエージェントはいつ使用されますか?

サブエージェントは、次の場合に役立ちます。

* コードベースの探索。 たとえば、API 内のすべてのエンドポイントを見つけます。
* コマンドの実行。 たとえば、テスト スイートを実行し、失敗を要約します。
* 変更の確認。 たとえば、メイン エージェントがタスクの別の部分で動作している間に、ステージされた変更を確認します。
* スペシャリストの仕事。 たとえば、カスタム ドキュメント エージェントにレビューを委任します。

メイン セッションのカスタム エージェントの選択は、サブエージェントとして作業を委任するのとは異なります。

### サブエージェントの詳細を確認する

* [エージェントを使った作業の委任と並列化](/ja/copilot/concepts/agent-capabilities/choosing-and-delegating-agent-work/delegating-and-parallelizing-work-with-agents)
* [IDE での subagents の使用](/ja/copilot/how-tos/copilot-in-your-ide/use-copilot-agents/use-subagents)

## カスタム エージェント

カスタム エージェントは、 GitHub Copilot app、 Copilot CLI、 Copilot cloud agent、 Visual Studio Code、 Visual Studio、 JetBrains IDE製品群、Eclipse、Xcode でサポートされています。 サポートされるプロファイル プロパティは、サーフェスによって異なります。

### カスタム エージェントとは

カスタム エージェントは、特定の種類の作業に対して、指示と使用可能なツールを備えた専門家の役割を定義します。 これは、React レビュー担当者やドキュメント ライターなど、採用できる Copilot ペルソナと考えることができます。

YAML frontmatter を使用して Markdown ファイルでカスタム エージェントを定義します。 そのプロファイルは、その目的を説明し、指示を与え、使用可能なツールを制限できます。 サポートされている環境では、MCP サーバーを構成することもできます。

### カスタム エージェントはどのような問題を解決しますか?

カスタム エージェントは、必要な場合に役立ちます。

* 特定のタスクに一貫して適用される専門的なガイダンス。
* 作業の種類ごとに異なるツールセットを用意しています。
* セッションに対して選択したり、委任された作業に使用したりできる再利用可能なロール。

個別のコンテキストは、カスタム エージェントを使用するための要件ではなく、サブエージェントとしてエージェントを実行する利点です。

### カスタム エージェントを使用する必要がある場合

必要な場合は、カスタム エージェントを使用します。

* 専門の校閲者またはヘルパー。 たとえば、チームのコンポーネント パターンをチェックする React レビューツールなどです。
* 制約付きツールセット。 たとえば、ファイルの読み取りと検索はできるが、編集はできないツールを持つ校閲者。
* 一貫性のあるアプローチ。 たとえば、文書作成とレビューの標準に従うドキュメント エージェントなどです。

### カスタム エージェントを使用すべきではないのはいつですか?

次の場合に、より簡単なオプションを選択します。

* タスク固有の命令とリソースのみが必要です。 スキルで十分な場合があります。
* 特殊化は必要なく、既定のエージェントがタスクを適切に実行します。

### カスタム エージェントの詳細を確認する

* [カスタム エージェント](/ja/copilot/concepts/customizations/custom-agents)
* [カスタム エージェントの構成](/ja/copilot/reference/custom-agents-configuration)

## Extensions

拡張機能は、 GitHub Copilot app と Copilot CLIでサポートされています。 次の例では、 Copilot CLIの拡張機能について説明します。

### 拡張機能とは何ですか?

拡張機能は、コードによって実装された機能を提供します。
Copilot CLIでは、拡張機能は対話型セッションと共に実行される JavaScript モジュールであり、ツール、スラッシュ コマンド、およびセッション対応の動作を追加できます。

これらは、IDE 拡張機能や廃止された GitHub Appベースの Copilot Extensions 統合とは異なります。

### 拡張機能はどのような問題を解決しますか?

拡張機能を使用すると、命令や構成以上のものを必要とする機能を構築できます。 たとえば、Copilot CLI 拡張機能は、ツール呼び出し間で状態を維持し、カスタム ツールを介して利用できるようにします。

### どのような場合に拡張機能を使用しますか？

次のような場合は拡張機能を使用します：

* あなた専用のセッション対応ツール。 たとえば、Copilot CLI セッション全体でツール呼び出しのタイミングを追跡し、合計をエージェントが利用できるようにします。
* コードで実装されたスラッシュコマンド。 たとえば、 Copilot CLI セッション中に収集された情報を要約するコマンドを追加します。

### 拡張機能を使用すべきではないのはいつですか?

次の場合は別のカスタマイズを選択してください：

* 手順とリソースは十分です。 スキルを使う
* 既存の MCP サーバーには、必要な外部ツールが用意されています。
* 必要なのは、定義されたイベントでコマンドを実行することだけです。 フックを使用します。

### 拡張機能の詳細を確認する

「[GitHub Copilotの拡張機能](/ja/copilot/concepts/customizations/extensions)」を参照してください。

## Plugins

プラグインは、 GitHub Copilot app、 Copilot CLI、 Copilot cloud agent、および Visual Studio Codeでサポートされています。 プラグインでサポートされているコンポーネントは、サーフェスによって異なります。

### プラグインとは何ですか?

プラグインは、機能のバンドルを提供するインストール可能なパッケージです。 たとえば、スキル、カスタム エージェント、フック、および MCP サーバー構成を含めることができます。

プラグインはカスタマイズをパッケージ化しますが、個々の目的を置き換えるものではありません。

### プラグインはどのような問題を解決しますか?

プラグインを使用すると、次のことができます。

* 各要素を個別に構成せずに、関連する機能を追加します。
* 一連のカスタマイズをチームまたは一般ユーザーに配布します。
* ファイルを手動でコピーせずに、カスタマイズをインストールして更新します。

### プラグインを使用する必要がある場合

次の場合にプラグインを使用します。

* チーム全体向けのバンドルをご希望ですね。 たとえば、内部サービス向けのインシデント対応スキル、レビューエージェント関連のリソース、MCP サーバー構成を共有します。
* 関連する機能をまとめてインストールおよび保守したい場合。

### プラグインを使用すべきではないのはいつですか?

次の場合に、個々のカスタマイズから始めます。

* ローカルで実験を行っており、配布は必要ありません。
* 小さなワークフローのみが必要です。 1 つのスキルの方が簡単な場合があります。

### プラグインの詳細を確認する

「[GitHub Copilot 用のプラグイン](/ja/copilot/concepts/customizations/plugins)」を参照してください。

## まとめ: 適切なオプションの選択

問題を解決する最小のカスタマイズから始めます。 これらの機能は連携して機能します。スキルは MCP ツールを使用するワークフローを記述でき、プラグインは両方を配布できます。

| 要件                                              | 次から開始       |
| ----------------------------------------------- | ----------- |
| Copilot にリポジトリの規則に従ってほしいです。                     | カスタム指示      |
| 特定の種類のタスクに対して反復可能なワークフローが必要です。                  | エージェントのスキル  |
| エージェントに私のリポジトリを検索したり、ファイルを変更したり、テストを実行したりしてほしい。 | その既存のツール    |
| 外部サービスによって提供されるツールが必要です。                        | 1つのMCP サーバー |
| ツールの使用とセッション イベントに関するチェックまたは自動化が必要です。           | フック         |
| メインの会話とは別に、フォーカスされたサブタスクを処理してほしいです。             | サブエージェント    |
| 私は、特定のアプローチとツールセットを持つ繰り返し活用できる専門家が必要です。         | カスタム エージェント |
| Copilot CLIで独自のセッション対応ツールを構築する必要があります。          | 拡張機能        |
| 関連するカスタマイズをまとめてインストールまたは共有したい。                  | プラグイン       |

## 次のステップ

構成の場所とサーフェス サポートについては、[Copilot カスタマイズのチートシート](/ja/copilot/reference/customization-cheat-sheet) を参照してください。