概要
前回までの記事でInstruction files / Prompt filesで実現するGitHub Copilot Chatの階層的コンテキスト管理を解説しました。今回は、最近Visual Studio Codeでも使えるようになったAgent Skillsによるタスクの自動化を紹介します。
Agent Skillsは、専門的なタスクやワークフローを「スキル」として定義し、必要な時だけCopilotがロードする仕組みです。テスト実行、デバッグ、デプロイなど、プロジェクト固有の複雑な作業手順をスキル化することで、コンテキスト消費を抑えながら高度な自動化を実現できます。
Agent Skillsとは
Agent Skillsは、指示・スクリプト・リソースをまとめたフォルダ単位の拡張機能です。GitHub Copilotが関連するタスクを検出すると、該当するスキルを自動的にロードして定義したスキルを実行します。
Agent Skillsの特徴
- タスク特化型:特定の作業(テスト、デバッグ、デプロイ等)に特化したスキル定義
- オンデマンドロード:必要な時だけスキルをロードしてコンテキストを節約
- リソース同梱:指示だけでなく、スクリプト・テンプレート・例を含められる
- ポータビリティ:VS Code、Copilot CLI、Copilot coding agentで共通利用可能
- オープン標準:agentskills.ioで定義された標準仕様に準拠
他のコンテキスト管理機能との違い
Agent Skillsと既存のコンテキスト管理機能は補完的な関係にあり、用途が異なります。
| Agent Skills | Custom Instructions | Instruction files | Prompt files | |
|---|---|---|---|---|
| 目的 | 専門的なワークフローの自動化 | プロジェクト全体の基本方針 | ファイル種別ごとの規約 | 再利用可能なプロンプトテンプレート |
| 適用範囲 | 関連タスク検出時のみロード | 常に適用(全体) | globパターン指定 | 明示的に呼び出し時のみ |
| 配置場所 | .github/skills/ | .github/ | .github/instructions/ | .github/prompts/ |
| コンテンツ | 指示・スクリプト・リソース | 指示のみ | 指示のみ | プロンプトテンプレート |
| 移植性 | VS Code・CLI・coding agent | VS Code・GitHub.com | VS Code・GitHub.com | VS Code |
| 標準 | agentskills.io標準 | VS Code固有 | VS Code固有 | VS Code固有 |
使い分けの指針
| 機能 | 方針 | 具体例 |
|---|---|---|
| Agent Skills | 再利用可能な専門タスク | テスト実行手順、デバッグワークフロー、デプロイプロセス |
| Custom Instructions | 常に適用すべき基本方針 | 開発方針、AI-Human協働ルール、品質基準 |
| Instruction files | ファイル種別ごとの規約 | TypeScript/MDX/CSSのコーディング規約・命名規則 |
| Prompt files | 繰り返し使う定型プロンプト | コードレビュー依頼、リリースノート生成 |
Prompt filesとAgent Skillsを比較すると機能的にはAgent Skillsの方が上位互換のように感じますね。
Agent Skillsの仕組み
Agent Skillsは段階的にコンテンツをロードする「Progressive Disclosure」により、多数のスキルをインストールしてもコンテキストを圧迫しません。
| ステップ | 内容 | ロードされる情報 |
|---|---|---|
| Step 1: スキル発見 | 常に全スキルを認識 | メタデータのみ(nameとdescription) |
| Step 2: 指示ロード | リクエストと一致時 | SKILL.mdの本文(詳細な指示) |
| Step 3: リソースアクセス | 必要と判断時のみ | スキルディレクトリ内の追加ファイル |
この仕組みにより、多数のスキルをインストールしてもコンテキスト消費は最小限に抑えられ、関連するスキルだけが自動的にアクティブになります。
スキルの構造と定義
スキルは.github/skills/(プロジェクト固有)または~/.copilot/skills/(個人用)に配置します。
Agent Skillsの有効化
Agent SkillsはVS Codeでプレビュー機能として提供されています。使用するにはchat.useAgentSkills設定を有効化する必要があります。settings.jsonの場合は以下を追加します。
{ "chat.useAgentSkills": true }
設定UIからは、Cmd/Ctrl + ,で開いて「Chat: Use Agent Skills」を検索してオンにします。
スキルの基本構造
.github/skills/
└── your-skill-name/
├── SKILL.md # スキル定義(必須)
├── script.sh # スクリプト(オプション)
├── template.js # テンプレート(オプション)
└── examples/ # 例ディレクトリ(オプション)
SKILL.mdのフォーマット
スキル定義は、YAML形式のfrontmatter + Markdown本文で構成されます。
---
name: skill-name
description: このスキルが何をするか、いつ使うかの説明
---
# スキルの本文
Copilotが従うべき指示・手順・例を記述します。
Frontmatterの定義
| Property | 必須 | 説明 | 制約 |
|---|---|---|---|
name | 必須 | スキルの一意な識別子 | 64文字以内、小文字・ハイフン区切り |
description | 必須 | スキルの目的と使用タイミング | 1024文字以内 |
descriptionの記述ポイント
descriptionは、Copilotがスキルをロードするかどうかの判断基準になります。具体的で明確な記述が重要です。
本文の記述ポイント
スキル本文は、Copilotが従うべき指示・ガイドライン・例を含めます。
- 目的:スキルが達成すること
- 手順:ステップバイステップの実行手順
- 入出力例:期待される入力と出力の具体例
- 参考リソース:スキルディレクトリ内のファイル参照
サンプル:タスク生成スキル
ここからは実際に動作するAgent Skillを作成します。作業内容からプロジェクト構造を確認し、必要なタスクをリスト化するスキルを例に、スキルの定義方法を見ていきましょう。
SKILL.md
.github/skills/task-generator/SKILL.mdに以下の内容を作成します。
---
name: task-generator
description: プロジェクト構造を分析し、作業に必要なタスクを推測してファイルとして生成するスキル。「〇〇のタスクを作成して」「〇〇するためのタスクリストを生成して」といったリクエストで使用できます。
---
# タスク生成スキル
このスキルは、作業内容とプロジェクト構造から必要なタスクを推測し、管理用ファイルを生成します。
## タスク生成の流れ
1. プロジェクト構造を確認(ディレクトリ構成、既存コード、使用技術)
2. 作業内容から必要なタスクを推測
3. `tasks/`ディレクトリに`task-{内容}.md`形式で生成(kebab-case)
## ファイル形式
```markdown
# [作業内容]のタスク
## 概要
作業の目的と背景
## タスク一覧
- [ ] タスク1: 具体的な作業内容と完了条件
- [ ] タスク2: 具体的な作業内容と完了条件
- [ ] タスク3: 具体的な作業内容と完了条件
```
## 使用例
「ユーザー認証機能のタスクを作成して」→ `tasks/task-user-authentication.md`生成
「パフォーマンス改善のタスクリストを生成して」→ `tasks/task-performance-improvement.md`生成
このスキルにより、「〇〇のタスクを作成して」と指示するだけで、tasks/ディレクトリにプロジェクト構造に合わせたタスク管理ファイルが生成されます。
共有スキルの活用
自作するスキル以外にもコミュニティにより様々な共有スキルが作られています。日本語のものはまだ少ないですが、どのようなスキルが作れるのか参考になるかと思います。
- github/awesome-copilot:コミュニティスキル集
- anthropics/skills:リファレンススキル集
まとめ
Agent Skillsは、GitHub Copilotに定型化されたタスク処理能力を追加する便利な仕組みですね。
日々の作業を行う中で、繰り返している作業があれば積極的にスキル化することで、開発効率を向上させることができると思います。
スキル化すること自体もCopilotに指示すればよいので、ぜひ試してみてください。
