はじめに
GitHub Copilotは、コード補完やチャットによる対話だけでなく、自律的にタスクを実行する「Copilot coding agent」や、IDE内でエージェントとして動作する「Agent Mode」を提供しています。しかし、これらのエージェントが万能であるわけではなく、特定のタスクにおいては専門的な知識や手順が必要になる場面も少なくありません。
GitHub Copilot Agent Skills(エージェントスキル)は、エージェントに専門的な能力を教え込むための仕組みです。AnthropicがClaude向けに開発し、オープンスタンダードとして公開された「Agent Skills」フォーマットをGitHub Copilotがサポートしたことで、一度作成したスキルを複数のAIエージェント製品で再利用できるようになりました。
本記事では、GitHub Copilot Agent Skillsの概要から作成方法、実践的な活用例までを網羅的に解説します。この記事を読むことで、以下のことができるようになります。
- Agent Skillsの仕組みと他の機能との違いを理解する
- SKILL.mdファイルを作成してカスタムスキルを定義する
- プロジェクトスキルとパーソナルスキルを使い分ける
- 実践的なスキルの活用例を実装する
前提条件
GitHub Copilot Agent Skillsを使用するには、以下の環境が必要です。
| 項目 | 要件 |
|---|---|
| GitHub Copilotプラン | Pro、Pro+、Business、Enterprise |
| VS Code | バージョン1.106以降(Insidersでは先行サポート) |
| GitHub Copilot拡張機能 | 最新版 |
| GitHub Copilot CLI | パーソナルスキル利用時に必要(パブリックプレビュー) |
Agent SkillsはCopilot coding agent、GitHub Copilot CLI、およびVS Code Insidersのエージェントモードで利用可能です。VS Code安定版へのサポートも近日中に予定されています。
Agent Skillsとは
Agent Skillsは、AIエージェントが特定のタスクをより正確かつ効率的に実行するための「指示書」「スクリプト」「リソース」をまとめたフォルダです。エージェントがタスクの内容を認識すると、関連するスキルを動的にロードし、その指示に従って作業を進めます。
Agent Skillsがもたらすメリット
Agent Skillsを導入することで、以下のような課題を解決できます。
- 繰り返しの指示を削減: 毎回同じ手順を説明する必要がなくなる
- 組織固有のワークフローを標準化: チームで共有できる再現可能な手順を定義
- 専門領域への対応: 法務レビュー、データ分析パイプライン、セキュリティ監査など
- クロスプラットフォーム対応: 同じスキルをCopilot、Claude、VS Code、Gooseなど複数の製品で再利用
Agent Skillsの対応製品
Agent Skillsはオープンスタンダードとして策定されており、以下の製品がサポートしています。
- GitHub Copilot(coding agent、CLI、VS Code Insiders)
- Claude(Claude.ai、Claude Code、API)
- VS Code
- OpenAI Codex
- Goose
- Letta
- Gemini CLI
Agent Skillsの構造
Agent Skillsは、最低限 SKILL.md ファイルを含むディレクトリとして構成されます。
skill-name/
├── SKILL.md # 必須: スキルの定義ファイル
├── scripts/ # 任意: 実行可能なスクリプト
├── references/ # 任意: 参照ドキュメント
└── assets/ # 任意: テンプレート、画像、データファイル
SKILL.mdの構成
SKILL.md ファイルは、YAMLフロントマターとMarkdownボディで構成されます。
フロントマター(必須)
|
|
各フィールドの詳細は以下の通りです。
| フィールド | 必須 | 説明 |
|---|---|---|
name |
Yes | 1-64文字。小文字英数字とハイフンのみ。ディレクトリ名と一致させる |
description |
Yes | 1-1024文字。スキルの用途と使用タイミングを明記 |
license |
No | ライセンス名またはライセンスファイルへの参照 |
compatibility |
No | 環境要件(特定の製品、パッケージ、ネットワークアクセスなど) |
metadata |
No | 任意のキーバリューペア(author、versionなど) |
allowed-tools |
No | 事前承認するツールのリスト(実験的機能) |
ボディ(指示内容)
フロントマターの後に、エージェントへの具体的な指示をMarkdownで記述します。
|
|
オプションディレクトリ
scripts/
エージェントが実行できるスクリプトを格納します。Python、Bash、JavaScriptなどが一般的です。
|
|
references/
追加のドキュメントを格納します。エージェントは必要に応じてこれらを参照します。
references/
├── REFERENCE.md # 詳細な技術リファレンス
├── TROUBLESHOOTING.md # トラブルシューティングガイド
└── EXAMPLES.md # 具体的な使用例
assets/
テンプレート、画像、データファイルなどの静的リソースを格納します。
assets/
├── templates/
│ └── workflow-template.yml
├── schemas/
│ └── config-schema.json
└── images/
└── architecture-diagram.png
スキルの保存場所
Agent Skillsは、スコープに応じて異なる場所に保存します。
プロジェクトスキル
特定のリポジトリでのみ使用するスキルは、リポジトリ内の以下のいずれかに配置します。
/path/to/repository/.github/skills/skill-name/SKILL.md
/path/to/repository/.claude/skills/skill-name/SKILL.md
プロジェクトスキルは、そのリポジトリで作業する全員が利用できます。チーム共有のコーディング規約やプロジェクト固有のワークフローに適しています。
パーソナルスキル
複数のプロジェクトで共通して使用するスキルは、ホームディレクトリに配置します。
~/.copilot/skills/skill-name/SKILL.md
~/.claude/skills/skill-name/SKILL.md
パーソナルスキルは、Copilot coding agentとGitHub Copilot CLIで利用可能です。個人の作業効率化に役立つタスクを定義するのに適しています。
組織レベルおよびエンタープライズレベルのスキルサポートは近日公開予定です。
Agent Skillsの作成手順
手順1: スキルディレクトリの作成
プロジェクトスキルの場合、リポジトリ内に .github/skills/ ディレクトリを作成し、その中にスキル用のサブディレクトリを作成します。
|
|
手順2: SKILL.mdファイルの作成
スキルディレクトリ内に SKILL.md ファイルを作成します。
|
|
手順3: スキルのテスト
作成したスキルが正しく動作するか、GitHub Copilotで確認します。Copilot Chatで関連するタスクについて質問すると、エージェントが自動的にスキルをロードします。
このPRのコードをレビューしてください。
エージェントは、プロンプトの内容とスキルの description を照合し、関連性が高い場合にスキルをロードします。
Agent Skillsの動作原理
Agent Skillsは「プログレッシブディスクロージャー」という設計思想に基づいています。
sequenceDiagram
participant User as ユーザー
participant Agent as Copilot Agent
participant Skills as Skills Registry
participant Context as コンテキスト
User->>Agent: タスクの依頼
Agent->>Skills: スキルのメタデータを確認(name, description)
Skills-->>Agent: 関連スキル候補を返却
Agent->>Agent: プロンプトとdescriptionを照合
Agent->>Skills: 選択したスキルのSKILL.mdをロード
Skills-->>Agent: 指示内容(~5000トークン)
Agent->>Context: 必要に応じてscripts/references/をロード
Agent->>User: タスク実行結果- メタデータのロード(約100トークン): 起動時に全スキルの
nameとdescriptionをロード - スキルの選択: プロンプト内容と
descriptionを照合し、関連スキルを決定 - 指示のロード(推奨5000トークン以内): 選択されたスキルの
SKILL.md本文をロード - リソースのロード(必要時のみ):
scripts/、references/、assets/は必要に応じてロード
この設計により、コンテキストウィンドウを効率的に活用しながら、必要な情報だけをエージェントに提供できます。
他の機能との違い
GitHub Copilotには、Agent Skills以外にも類似の機能がいくつか存在します。それぞれの用途と使い分けを理解しておくことが重要です。
Agent Skills vs Custom Instructions
| 項目 | Agent Skills | Custom Instructions |
|---|---|---|
| 配置場所 | .github/skills/ |
.github/copilot-instructions.md |
| 適用タイミング | タスクに応じて動的にロード | 常にコンテキストに含まれる |
| 用途 | 特定タスクの詳細な手順 | 全般的なコーディング規約 |
| 規模 | 詳細な指示(数百行可) | 簡潔な指示(短くまとめる) |
使い分けの指針: Custom Instructionsは「常に適用されるべき基本ルール」、Agent Skillsは「特定タスク時にのみ必要な詳細手順」に使用します。
Agent Skills vs Custom Agent
| 項目 | Agent Skills | Custom Agent |
|---|---|---|
| ファイル形式 | SKILL.md |
.agent.md |
| 目的 | 特定タスクの能力拡張 | 専門的なペルソナの定義 |
| ツール制御 | スキル内で参照可能 | エージェント全体で固定 |
| 適用方法 | 自動的にロード | ドロップダウンで明示的に選択 |
使い分けの指針: Custom Agentは「役割全体を切り替える」場合に使用し、Agent Skillsは「特定の能力を追加する」場合に使用します。
Agent Skills vs MCPサーバー
| 項目 | Agent Skills | MCPサーバー |
|---|---|---|
| 提供するもの | 指示・手順・ガイドライン | 外部ツール・データソースへのアクセス |
| 実装方法 | Markdownファイル | サーバープログラム |
| 用途 | タスクの遂行方法を教える | 新しい機能を追加する |
使い分けの指針: MCPサーバーは「新しいツールへのアクセスを提供」し、Agent Skillsは「既存のツールの効果的な使い方を教える」ために使用します。両者を組み合わせることで、より強力なワークフローを構築できます。
実践的な活用例
例1: GitHub Actionsデバッグスキル
GitHub Actionsワークフローの失敗を効率的にデバッグするためのスキルです。
|
|
例2: APIドキュメント生成スキル
REST APIのドキュメントを一貫したフォーマットで生成するスキルです。
|
|
例3: データベースマイグレーションスキル
安全なデータベースマイグレーションを実行するためのスキルです。
|
|
コミュニティスキルの活用
自分でスキルを作成するだけでなく、コミュニティが公開しているスキルを活用することもできます。
anthropics/skills
AnthropicがClaude向けに公開しているスキル集です。PDF処理、プレゼンテーション作成、データ分析など、汎用的なスキルが含まれています。
リポジトリ: https://github.com/anthropics/skills
github/awesome-copilot
GitHubコミュニティが作成したCopilotカスタマイズ集です。スキルだけでなく、Custom Agent、プロンプト、インストラクションも含まれています。
リポジトリ: https://github.com/github/awesome-copilot
MCP Serverを使用して、これらのスキルを直接インストールすることも可能です。
スキル作成のベストプラクティス
descriptionは具体的に書く
エージェントがスキルを選択する際の判断材料になるため、description は具体的に記述します。
|
|
SKILL.mdは500行以内に抑える
メインの指示は簡潔にまとめ、詳細な情報は references/ ディレクトリに分割します。
skill-name/
├── SKILL.md # 簡潔な概要と手順(500行以内)
└── references/
├── REFERENCE.md # 詳細な技術リファレンス
├── EXAMPLES.md # 具体的な使用例
└── TROUBLESHOOTING.md # トラブルシューティング
スクリプトはエラーハンドリングを含める
scripts/ 内のスクリプトは、明確なエラーメッセージとエッジケースの処理を含めます。
|
|
バリデーションツールを活用する
Agent Skills仕様には、スキルの検証ツールが用意されています。
|
|
制限事項と注意点
Copilot coding agentの制限
- 同一リポジトリ内でのみ変更が可能
- 1回のタスクで1つのPRのみ作成
copilot/で始まるブランチにのみプッシュ可能- コンテンツ除外設定(content exclusions)は適用されない
スキル読み込みの制限
- メタデータ(name, description)は起動時に全スキル分がロードされる
- 大きすぎるスキルはコンテキストウィンドウを圧迫する
- スキルの選択はエージェントの判断に依存するため、必ず使用されるとは限らない
セキュリティに関する注意
- スキル内のスクリプトはサンドボックス環境で実行される
- 機密情報をスキルファイルに含めないこと
- 外部からのスキル導入時は内容を必ず確認すること
まとめ
GitHub Copilot Agent Skillsは、エージェントに専門的な能力を教え込むための強力な仕組みです。
本記事で解説した主要なポイントは以下の通りです。
- Agent Skillsの構造:
SKILL.mdファイルを中心に、スクリプトやリファレンスを含むディレクトリ構成 - スキルの保存場所: プロジェクトスキル(
.github/skills/)とパーソナルスキル(~/.copilot/skills/) - 他機能との違い: Custom Instructions、Custom Agent、MCPサーバーとの使い分け
- ベストプラクティス: 具体的なdescription、簡潔なSKILL.md、エラーハンドリングを含むスクリプト
Agent Skillsはオープンスタンダードとして策定されているため、一度作成したスキルはClaude、VS Code、Gooseなど複数のAI製品で再利用できます。チームの開発ワークフローを標準化し、生産性を向上させるために、ぜひAgent Skillsの活用を検討してください。