GitHub Copilotをカスタマイズ!サブエージェント(Custom Agents)とスキル(Agent Skills)の作り方と違いを徹底解説

GitHub Copilot

GitHub Copilotを「自分専用」に拡張する2つの方法

GitHub Copilotの進化により、単なるコード補完を超えて、特定のプロジェクトルールや高度なワークフローを学習させた「サブエージェント(Custom Agents)」や「スキル(Agent Skills)」を作成できるようになりました。

これらを利用することで、チーム独自のコーディング規約の遵守や、複雑なデプロイ手順の自動化など、AIの回答精度を劇的に向上させることが可能です。まずは、混同されやすいこれら2つの概念の違いを整理しましょう。

[Image: サブエージェントとスキルの階層構造と役割分担の図解]

サブエージェントとスキルの決定的な違い

簡単に言うと、サブエージェントは「役割(人)」であり、スキルは「能力(道具)」です。

項目 サブエージェント (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)にしてください。
- 非同期関数には必ず戻り値の型を明示してください。
...
[Image: SKILL.mdの構造とメタデータ設定の例]

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自動化が可能になります。