概要
前回までの記事で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と既存のコンテキスト管理機能は補完的な関係にあり、用途が異なります。
使い分けの指針
Prompt filesとAgent Skillsを比較すると機能的にはAgent Skillsの方が上位互換のように感じますね。
Agent Skillsの仕組み
Agent Skillsは段階的にコンテンツをロードする「Progressive Disclosure(段階的開示)」により、多数のスキルをインストールしてもコンテキストを圧迫しません。
この仕組みにより、多数のスキルをインストールしてもコンテキスト消費は最小限に抑えられ、関連するスキルだけが自動的にアクティブになります。
スキルの構造と定義
スキルは.github/skills/(プロジェクト固有)または~/.copilot/skills/(個人用)に配置します。
Agent Skillsの有効化
Agent SkillsはVS Codeでプレビュー機能として提供されています。使用するにはchat.useAgentSkills設定を有効化する必要があります。settings.jsonの場合は以下を追加します。
設定UIからは、Cmd/Ctrl + ,で開いて「Chat: Use Agent Skills」を検索してオンにします。
スキルの基本構造
SKILL.mdのフォーマット
スキル定義は、YAML形式のfrontmatter + Markdown本文で構成されます。
Frontmatterの定義
descriptionの記述ポイント
descriptionは、Copilotがスキルをロードするかどうかの判断基準になります。具体的で明確な記述が重要です。
本文の記述ポイント
スキル本文は、Copilotが従うべき指示・ガイドライン・例を含めます。
- 目的:スキルが達成すること
- 手順:ステップバイステップの実行手順
- 入出力例:期待される入力と出力の具体例
- 参考リソース:スキルディレクトリ内のファイル参照
サンプル:タスク生成スキル
ここからは実際に動作するAgent Skillを作成します。作業内容からプロジェクト構造を確認し、必要なタスクをリスト化するスキルを例に、スキルの定義方法を見ていきましょう。
SKILL.md
.github/skills/task-generator/SKILL.mdに以下の内容を作成します。
このスキルにより、「〇〇のタスクを作成して」と指示するだけで、tasks/ディレクトリにプロジェクト構造に合わせたタスク管理ファイルが生成されます。
共有スキルの活用
自作するスキル以外にもコミュニティにより様々な共有スキルが作られています。日本語のものはまだ少ないですが、どのようなスキルが作れるのか参考になるかと思います。
- github/awesome-copilot:コミュニティスキル集
- anthropics/skills:リファレンススキル集
まとめ
Agent Skillsは、GitHub Copilotに定型化されたタスク処理能力を追加する便利な仕組みですね。
日々の作業を行う中で、繰り返している作業があれば積極的にスキル化することで、開発効率を向上させることができると思います。
スキル化すること自体もCopilotに指示すればよいので、ぜひ試してみてください。
