
こんにちは。
アプリケーションサービス部、DevOps担当の兼安です。
今回は、GitHub Copilot Agent Modeを使って、カスタムエージェントを作成する手順をご紹介します。
- 本記事のターゲット
- カスタムエージェントとは
- GitHub Copilot Agent Modeにおけるカスタムエージェントの作成
- 開発者とプロジェクトマネージャー用のカスタムエージェントを作成してみる
- カスタムエージェントを使ってみる
- おわりに
本記事のターゲット
本記事は、GitHub Copilot Agent ModeのようなAIコーディングアシスタントを使った開発に興味があるエンジニアの方を対象にしています。
IDEにVS Codeを想定した内容となっています。
カスタムエージェントの説明に重きをおいており、AIコーディングアシスタントそのもの、IDE、MCPサーバーの基本的な使い方については触れませんので、あらかじめご了承ください。
カスタムエージェントとは
GitHub Copilot Agent Modeにおけるカスタムエージェントとは、AIコーディングアシスタントを特定のタスクや役割に合わせてチューニングし、その設定を保存したものです。
GitHub Copilot Agent Modeにおけるカスタムエージェントの作成
では早速、GitHub Copilot Agent Modeにおけるカスタムエージェントの作成手順をご紹介します。
こちらの公式ドキュメントの「Visual Studio Code」を参考に進めていきます。
今回は、リポジトリの中にカスタムエージェントを作成します。
GitHub Copilot チャットを開き、チャット ビューの下部にあるエージェントのドロップダウンから、「Configure Custom Agents...」(日本語では「カスタムエージェントの構成...」)をクリックします。

画面上部に入力フィールドが表示されます。
「Create new custom agent」(日本語では「新しいカスタム エージェントの作成」)をクリックします。

カスタムエージェントの設定ファイルの置き場所を選択します。
今回は、リポジトリのルートに作成するので、「.github/agents」を選択します。

カスタムエージェントの名前を入力します。

名前を入力すると、カスタムエージェントの設定ファイルが自動生成されます。
初期状態では、以下のようになっています。
--- description: 'Describe what this custom agent does and when to use it.' tools: [] --- Define what this custom agent accomplishes for the user, when to use it, and the edges it won't cross. Specify its ideal inputs/outputs, the tools it may call, and how it reports progress or asks for help.
設定ファイルで設定できる項目は公式ドキュメントに詳しく記載されています。
toolsの部分の記述は少々分かりにくいです。
これは標準機能またはMCPサーバーの提供する具体的なツールのうち、どれを使用するかの設定です。
VS Codeでカスタムエージェントの設定ファイルを編集する際、toolsの部分にConfigure Tools...というリンクが表示されます。
これをクリックすると、利用可能なツールの一覧が表示され、チェックボックスで選択できるようになります。
こちらで編集した方が分かりやすいかと思います。


開発者とプロジェクトマネージャー用のカスタムエージェントを作成してみる
では、実際にカスタムエージェントを2つ作成してみます。
作成するのは、開発者用とプロジェクトマネージャー用の2つです。
事前準備として、MCPサーバーとしてAWS Knowledge MCPサーバーとBacklog MCPサーバーをリポジトリに設定しておきます。
GitHub Copilot Agent Modeのカスタムエージェントでは、MCPサーバーそのものの指定は、組織レベル・エンタープライズレベルでしか行うことができません。
今回はリポジトリレベルでの設定なので、MCPサーバーのツールを選定する形をとります。
flowchart TB
MCP[".vscode/mcp.json<br/>━━━━━━━━━━━━<br/>MCPサーバーの定義<br/>・起動コマンド<br/>・環境変数<br/>・接続設定"]
DEV[".github/agents/<br/>developer.agent.md<br/>━━━━━━━━━━━━<br/>tools:<br/>- aws-knowledge-mcp-server/*"]
PM[".github/agents/<br/>pm.agent.md<br/>━━━━━━━━━━━━<br/>tools:<br/>- backlog/*"]
MCP -.->|使用可能なツールから選択| DEV
MCP -.->|使用可能なツールから選択| PM
style MCP fill:#e1f5ff
style DEV fill:#fff4e6
style PM fill:#fff4e6
設定を作っていきます。
まず、.vscode/mcp.jsonで、AWS Knowledge MCPサーバーとBacklog MCPサーバーを以下のように定義しておきます。
{ "servers": { "aws-knowledge-mcp-server": { "command": "uvx", "args": ["fastmcp", "run", "https://knowledge-mcp.global.api.aws"] }, "backlog": { "command": "npx", "args": [ "backlog-mcp-server" ], "env": { "ENABLE_TOOLSETS": "issue,wiki", "BACKLOG_DOMAIN": "{your-domain}.backlog.jp", "PREFIX": "backlog_", "BACKLOG_API_KEY": "{your-api-key}" } } } }
参考:BacklogのMCPサーバーでタスクのサマリを見てみる
では、これを踏まえて、カスタムエージェントの設定ファイルを編集します。
私は以下のように編集しました。
こちらは開発者用です。
"aws-knowledge-mcp-server/*"は、.vscode/mcp.jsonで定義したMCPサーバーの中から、aws-knowledge-mcp-serverの提供するツールを利用可能にする設定です。
--- description: 'Developers with expertise in AWS' tools: ['runCommands', 'edit', 'search', 'aws-knowledge-mcp-server/*'] target: github-copilot --- You are a developer proficient in AWS, Python, and TypeScript. In system development centred around AWS, you must provide information and code professionally, based on accurate and up-to-date knowledge. - You must always consult AWS official documentation thoroughly and provide answers based on the latest information. - You will not directly edit AWS resources via the AWS Management Console or AWS CLI. Editing is performed using Infrastructure as Code (IaC). - Programs running on Lambda or in containers are written in Python or TypeScript.
日本語訳はこちらです。
あなたはAWSとPythonとTypeScriptに精通した開発者です。 AWSを中心としたシステム開発において、プロフェッショナルとして正確かつ最新の情報に基づいた情報提供とコーディングを行う必要があります。 - 常にAWSの公式ドキュメントを詳しく参照し、最新の情報に基づいた回答をする必要があります。 - AWSマネジメントコンソールやAWS CLIでAWSリソースを直接編集することは行いません。編集はIaCを用います。 - Lambdaやコンテナで動作するプログラムはPythonまたはTypeScriptで記述します。
そして、こちらはプロジェクトマネージャー用です。
プロジェクトマネージャー用は、マネジメント重視でBacklogのMCPサーバーのツールを利用可能にしています。
"backlog/*"は、.vscode/mcp.jsonで定義したMCPサーバーの中から、backlogの提供するツールを利用可能にする設定です。
--- description: 'Project Managers' tools: ['runCommands', 'edit', 'search', 'backlog/*'] target: github-copilot --- You are the project manager. The project uses Backlog for task management. As project manager, you must focus on overall progress and quality rather than the details of individual tasks. You must monitor deadlines, bottlenecks, and whether schedules are correctly defined, and provide appropriately summarised information.
日本語訳はこちらです。
あなたはプロジェクトマネージャーです。 プロジェクトはタスク管理にBacklogを使用します。 プロジェクトマネージャーとして、個別のタスクの詳細よりも全体の進捗と品質に気を配る必要があります。 期限切れ、ボトルネック、スケジュールが正しく定義されているかなどに気を配り、適切にサマリーした情報提供をする必要があります。
以上のように、リポジトリに2つのカスタムエージェントを作成すると、以下のようになります。
.
├── .github
│ └── agents
│ ├── developer.agent.md
│ └── pm.agent.md
└── .vscode
└── mcp.json
カスタムエージェントを使ってみる
カスタムエージェントを作成した状態で、GitHub Copilot チャットを開くと、「Agent」のドロップダウンに作成したカスタムエージェントが表示されるようになります。

ドロップダウンから、利用したいカスタムエージェントを選択すると、そのカスタムエージェントが有効になります。
カスタムエージェントを選択すると、ツールアイコンから開けるツール一覧のチェックに変化が現れるので、確認してみてください。


これで、カスタムエージェントを切り替えると、そのカスタムエージェントに応じた振る舞いをするようになります。
今回の例で言うと、PM用のカスタムエージェントを選択した状態でBacklogに関する質問をすると、BacklogのMCPサーバーを利用して回答してくれます。
一方、開発者用のカスタムエージェントを選択した状態でBacklogに関する質問をすると、BacklogのMCPサーバーが利用できない旨を回答します。
また、回答全般が設定ファイルに記載した役割に沿った内容になります。(沿わない時もありますが。。。)
注意点として、カスタムエージェントを切り替える場合は、一度チャットセッションを終了してから、再度チャットセッションを開始しておいてください。
単に切り替えるだけだと前のセッションを引き継ぐため、AIの挙動に変化が見られない場合があります。
おわりに
以上が、GitHub Copilot Agent Modeにおけるカスタムエージェントの作成手順のご紹介でした。
カスタムエージェントは必須ではありませんが、役割ごとに特化させることで整理や効率化が図れると思います。
よろしければ、皆さんも試してみてください。
Kiro CLIを使ったカスタムエージェントの作成手順の記事も書いたのでよろしければこちらもご覧ください。
兼安 聡(執筆記事の一覧)
アプリケーションサービス部 DS3課所属
2025 Japan AWS Top Engineers (AI/ML Data Engineer)
2025 Japan AWS All Certifications Engineers
2025 AWS Community Builders
Certified ScrumMaster
PMP
広島在住です。今日も明日も修行中です。
X(旧Twitter)