GitHub Copilotを「自分専用」に拡張する2つの方法
GitHub Copilotの進化により、単なるコード補完を超えて、特定のプロジェクトルールや高度なワークフローを学習させた「サブエージェント(Custom Agents)」や「スキル(Agent Skills)」を作成できるようになりました。
これらを利用することで、チーム独自のコーディング規約の遵守や、複雑なデプロイ手順の自動化など、AIの回答精度を劇的に向上させることが可能です。まずは、混同されやすいこれら2つの概念の違いを整理しましょう。
サブエージェントとスキルの決定的な違い
簡単に言うと、サブエージェントは「役割(人)」であり、スキルは「能力(道具)」です。
| 項目 | サブエージェント (Custom Agents) | スキル (Agent Skills) |
|---|---|---|
| 役割 | 特定の専門家として振る舞う(例:セキュリティ監査担当) | 特定のタスクを実行する手順書(例:Jira連携、特定ライブラリの移行) |
| 動作の核 | 思考、計画、実行を自律的に行う | 定義された指示セットに従い、一貫した出力を出す |
| 呼び出し方 | チャットで @agent-name を指定 |
自動的に読み込まれる、または /skill-name で実行 |
1. スキル(Agent Skills)を作成する手順
スキルは、特定の作業手順やリソースをパッケージ化したものです。VS CodeなどのエディタやCLIから利用できます。
ステップ1:ディレクトリの作成
プロジェクトのルート、またはユーザーのホームディレクトリに専用のフォルダを作成します。一般的にはリポジトリ内の .github/skills/ を使用します。
mkdir -p .github/skills/my-custom-skill
ステップ2:SKILL.md の作成
作成したフォルダ内に SKILL.md という名前でマークダウンファイルを作成します。これがスキルの定義書になります。ファイルの冒頭に YAML 形式でメタデータを記述するのがポイントです。
---
name: my-refactor-skill
description: 弊社の命名規則に従ってリファクタリングを行います
---
# 指示
- 変数名は必ずキャメルケース(camelCase)にしてください。
- 非同期関数には必ず戻り値の型を明示してください。
...
2. サブエージェント(Custom Agents)を作成する手順
サブエージェントは、GitHub Copilot Extensionsの仕組みを利用したり、リポジトリ固有の指示セット(Custom Instructions)を拡張したものです。
カスタムエージェントの設定(リポジトリ単位)
最も簡単な方法は、リポジトリの .github/copilot-instructions.md を作成することですが、より高度な「エージェント」として独立させる場合は、GitHub Appとして登録する手法が取られます。
- GitHub Appの作成: GitHubのDeveloper settingsから「GitHub App」を作成し、「Copilot Agent」機能を有効にします。
- エンドポイントの実装: ユーザーのメッセージを受け取り、LLM(OpenAI等)を介して回答を返すサーバー(Web API)を構築します。
- スキルの統合: エージェント側で「どのスキルを読み込むか」を制御することで、特定のスキルを装備した専門エージェントが完成します。
スキルとサブエージェントの強力な関係性
これらは独立して動くこともありますが、組み合わせることで真価を発揮します。「エージェント」に「スキル」を持たせるという考え方です。
例えば、「QAエージェント」というサブエージェントを作成し、そこに以下のスキルを持たせることができます:
- 単体テスト生成スキル: 特定のテストフレームワークに合わせたコードを書く能力
- カバレッジ分析スキル: 未テストのパスを特定する能力
このように、エージェントが状況に応じて適切なスキルを選択して実行する(または人間が指示する)ことで、より複雑なAI自動化が可能になります。

