カスタマイズ
AIモデルは幅広い一般的な知識を持っていますが、あなたのコードベースやチームの慣習については知りません。AIを「優秀な新しいチームメンバー」だと考えてみてください。優れたコードを書くことはできますが、あなたのプロジェクトの規約、アーキテクチャの決定事項、好みのライブラリについては知りません。カスタマイズとは、そうしたコンテキストを共有することで、AIの回答をあなたのコーディング標準、プロジェクト構造、ワークフローに合わせるための手段です。
この記事では、さまざまなカスタマイズオプションとその使い分けについて説明します。ステップバイステップの設定方法については、各セクションからリンクされている個別のガイドを参照してください。
カスタマイズオプションの概要
| 目的 | 使用するもの | 例 | 起動条件 |
|---|---|---|---|
| コーディング標準をどこにでも適用する | 常時有効な指示 (Always-on instructions) | ESLintルールの強制、JSDocコメントの必須化 | すべてのリクエストに自動的に含める |
| ファイルタイプごとに異なるルールを適用する | ファイルベースの指示 (File-based instructions) | .tsx ファイルに対する React パターン |
ファイルがパターンや説明と一致したとき |
| 繰り返し実行するタスクを再利用可能にする | プロンプト ファイル | React コンポーネントの雛形を作成する | スラッシュコマンドを実行したとき |
| ステップの多いワークフローをスクリプトでパッケージ化する | エージェントスキル | テスト、リント、デプロイのパイプライン | タスクがスキルの説明と一致したとき |
| ツール制限付きの専門的なAIペルソナ | カスタムエージェント | セキュリティレビュー担当者、データベース管理者 | そのエージェントを選択したとき、または他のエージェントから委譲されたとき |
| 外部APIやデータベースに接続する | MCP | PostgreSQL データベースへのクエリ | タスクがツールの説明と一致したとき |
| エージェントのライフサイクルポイントでタスクを自動化する | フック | ファイル編集のたびにフォーマッタを実行する | エージェントが該当するライフサイクルイベントに到達したとき |
| パッケージ化されたカスタマイズをインストールする | エージェントプラグイン | コミュニティのテストプラグインをインストールする | プラグインをインストールしたとき |
まずはプロジェクト全体の標準を定めるカスタム指示から始めましょう。繰り返し行うタスクがあればプロンプトファイルを追加し、外部データが必要な場合はMCPを使用します。専門的な役割にはカスタムエージェントを作成しましょう。ニーズの拡大に合わせて、複数のカスタマイズタイプを組み合わせることが可能です。
カスタム指示
カスタム指示は、コーディング標準やプロジェクトのコンテキストを定義するMarkdownファイルです。AIはこれらをチャットリクエストに自動的に含めるため、プロンプトごとにルールを繰り返す必要はありません。指示は最も簡単に設定できるカスタマイズであり、最初の一歩として最適です。
2つのタイプがあります
- 常時有効な指示 (Always-on instructions):
.github/copilot-instructions.mdで定義され、すべてのリクエストに適用されるプロジェクト全体のルールです。コードスタイル、命名規則、推奨ライブラリなど、チーム全体で従うべき規約に使用します。 - ファイルベースの指示 (File-based instructions): ファイルパスのパターンやタスクの説明に基づいて適用される
.instructions.mdファイルのガイドラインです。.tsxファイルの React パターンや、バックエンドの API 規約など、コードベースの場所によってルールを変えたい場合に使用します。
カスタム指示の作成について詳しく学ぶ。
プロンプト ファイル
プロンプトファイルは、特定のタスクをコード化し、チャット内でスラッシュコマンドとして表示される再利用可能なMarkdownファイルです。同じようなプロンプトを何度も入力していることに気づいたら、プロンプトファイルを使ってワンステップのコマンドに変換しましょう。各プロンプトファイルは、特定のファイル、ツール、コンテキストを参照して、そのタスクに必要なすべてをAIに提供できます。
プロンプトファイルは、新しいコンポーネントの雛形作成、モジュールのテストケース生成、プルリクエストの説明作成といったタスクに役立ちます。
プロンプトファイルの作成について詳しく学ぶ。
エージェントスキル
エージェントスキルは、指示、スクリプト、リソースを含むフォルダーとして、複数のステップからなる機能をパッケージ化します。単一のプロンプトを提供するプロンプトファイルとは異なり、スキルはAPIドキュメントの生成、セキュリティ監査の実行、データベース移行の実施など、ドメイン固有のタスクのための完全なツールキットをAIに提供します。
スキルは、タスクがその説明と一致したときにオンデマンドで読み込まれます。これらはオープン標準に基づいて構築されているため、同じスキルを異なる種類のエージェント間で利用できます。
エージェントスキルの作成について詳しく学ぶ。
カスタムエージェント
カスタムエージェントは、AIに特定の役割を与え、その役割に応じた制限されたツールセットを提供します。例えば、セキュリティレビュー担当エージェントはコード分析ツールにのみアクセスでき、セキュリティに特化した指示に従います。一方、データベース管理エージェントはMCPを通じてデータベースに接続し、スキーマ規約に従います。
各エージェントは、動作、利用可能なツール、言語モデルの優先順位を指定する .agent.md ファイルで定義されます。エージェントは他のエージェントにタスクを委譲することもでき、これにより異なる専門家がタスクの異なる部分を処理するマルチステップのワークフローが可能になります。
カスタムエージェントの作成について詳しく学ぶ。
MCP
Model Context Protocol (MCP) は、AIを外部ツールやデータソースに接続するためのオープン標準です。MCPがない場合、AIはコードとターミナルのみを操作できます。MCPサーバーは、データベースへのクエリ、API呼び出し、クラウドサービスとの対話、その他あらゆる外部システムへのアクセスを行うツールを提供することで、AIの可能性を広げます。
MCPサーバーはローカルまたはリモートで実行され、リソース、プロンプト、インタラクティブなアプリを提供することもできます。
MCPサーバーの追加と管理について詳しく学ぶ。
フック
フック (Hooks) は、エージェントセッション中の特定のポイントでカスタムシェルコマンドを実行します。指示やプロンプトがAIの「何をすべきか」を導くのに対し、フックは定義されたライフサイクルポイントでコードが確実に実行されるようにします。ファイル編集のたびにフォーマッタを実行する、リントチェックに失敗したコミットをブロックする、監査証跡のためにすべてのツール呼び出しをログに記録するなど、決定論的な結果が必要な場合にフックが適しています。
フックの設定について詳しく学ぶ。
エージェントプラグイン
エージェントプラグインは、発見してプラグインマーケットプレイスからインストールできる、カスタマイズを事前にパッケージ化したバンドルです。すべてを自分で構築する代わりに、スラッシュコマンド、スキル、カスタムエージェント、フック、MCPサーバーの組み合わせがあらかじめ用意されたプラグインをインストールできます。プラグインは、コミュニティのベストプラクティスの導入や、チーム間での社内ツールの共有に役立ちます。
エージェントプラグインは現在プレビュー段階です。
エージェントプラグインについて詳しく学ぶ。