VS Code で Agent Skills を使用する
Agent Skills は、特定のタスクを実行するために関連性がある場合に GitHub Copilot がロードできる、指示、スクリプト、リソースのフォルダです。Agent Skills は、VS Code の GitHub Copilot、GitHub Copilot CLI、GitHub Copilot クラウドエージェントなど、複数の AI エージェントで動作するオープン標準です。
主にコーディングガイドラインを定義するカスタム指示とは異なり、スキルを使用すると、スクリプト、例、その他のリソースを含む特別な機能やワークフローを実現できます。作成したスキルはポータブルであり、スキルと互換性のあるすべてのエージェントで動作します。
Agent Skills の主なメリット
- Copilot の専門化: コンテキストを繰り返すことなく、ドメイン固有のタスクに合わせて機能を調整します
- 繰り返しの削減: 一度作成すれば、すべての会話で自動的に使用されます
- 機能の構成: 複数のスキルを組み合わせて、複雑なワークフローを構築します
- 効率的なロード: 必要なときにだけ、関連するコンテンツがコンテキストにロードされます
エージェントカスタマイズエディター (プレビュー) を使用すると、すべてのエージェントカスタマイズを1か所で検出、作成、管理できます。コマンドパレットから Chat: Open Customizations を実行してください。
Agent Skills とカスタム指示の比較
Agent Skills とカスタム指示は、どちらも Copilot の動作をカスタマイズするのに役立ちますが、それぞれ異なる目的を持っています。
| 機能 | エージェントのスキル | カスタム指示 |
|---|---|---|
| 目的 | 専門的な機能やワークフローを教える | コーディング標準とガイドラインを定義する |
| ポータビリティ | VS Code、Copilot CLI、Copilot クラウドエージェントで動作する | VS Code および GitHub.com のみ |
| コンテンツ | 指示、スクリプト、例、リソース | 指示のみ |
| スコープ | タスク固有、オンデマンドでロード | 常に適用(または glob パターン経由) |
| 標準 | オープン標準 (agentskills.io) | VS Code 固有 |
以下の場合は Agent Skills を使用します。
- 異なる AI ツール間で動作する、再利用可能な機能を作成したい場合
- 指示と一緒にスクリプト、例、またはその他のリソースを含めたい場合
- より広い AI コミュニティと機能を共有したい場合
- テスト、デバッグ、デプロイプロセスなどの特殊なワークフローを定義したい場合
以下の場合はカスタム指示を使用します。
- プロジェクト固有のコーディング標準を定義したい場合
- 言語やフレームワークの規則を設定したい場合
- コードレビューやコミットメッセージのガイドラインを指定したい場合
- glob パターンを使用してファイルタイプに基づいてルールを適用したい場合
スキルの作成
チャット入力欄に /skills と入力すると、Configure Skills(スキルの構成)メニューを素早く開くことができます。
スキルは、スキルの動作を定義する SKILL.md ファイルを含むディレクトリに保存されます。VS Code は 2 つのタイプのスキルをサポートしています。
| スキルの種類 | 場所 |
|---|---|
| リポジトリに保存されるプロジェクトスキル | .github/skills/, .claude/skills/, .agents/skills/ |
| ユーザープロファイルに保存される個人スキル | ~/.copilot/skills/, ~/.claude/skills/, ~/.agents/skills/ |
chat.agentSkillsLocations 設定を使用して、プロジェクトスキルの追加のファイル保存場所を設定できます。これは、スキルを異なるフォルダ構造で整理したい場合や、複数のスキルディレクトリを持ちたい場合に便利です。
モノリポでは、 chat.useCustomizationsInParentRepositories を有効にして、親リポジトリのルートからスキルを検出できるようにします。詳細については、親リポジトリの検出を参照してください。
スキルを作成するには
-
チャットビューで Configure Chat(チャットの構成、歯車アイコン)を選択して Agent Customizations エディタを開き、Skills タブを選択します。
-
スキルを保存する場所に応じて、ドロップダウンから New Skill (Workspace) または New Skill (User) を選択します。

-
場所を選択し、スキルの名前を入力します。
-
YAML フロントマターを記入し、ファイルの本文に指示を追加して
SKILL.mdファイルを完成させます。--- name: skill-name description: Description of what the skill does and when to use it --- # Skill Instructions Your detailed instructions, guidelines, and examples go here... -
必要に応じて、スクリプト、例、またはその他のリソースをスキルのディレクトリに追加します。
たとえば、Web アプリケーションをテストするためのスキルには以下が含まれます。
SKILL.md- テストを実行するための指示test-template.js- テンプレートテストファイルexamples/- テストシナリオの例
注意追加したファイルをエージェントが認識できるように、
SKILL.md内でそれらのファイルを参照してください。Markdown のリンク構文と相対パス(例:[test template](./test-template.js))を使用します。
AI でスキルを生成する
機能の説明に基づいて、AI を使用してスキルを生成できます。チャットで /create-skill と入力し、必要なスキルを説明します(例: 「統合テストの実行とデバッグを行うためのスキル」)。エージェントは確認の質問をし、ディレクトリ構造、指示、フロントマターを含む SKILL.md ファイルを生成します。
進行中の会話から再利用可能なスキルを抽出することもできます。たとえば、複雑な問題をデバッグした複数ターンのセッションの後に、「今デバッグした方法からスキルを作成して」と依頼することで、複数ステップの手順を再利用可能なスキルとしてキャプチャできます。
Agent Customizations エディタのドロップダウンから Generate Skill を選択して、スキルを生成することもできます。
SKILL.md ファイルのフォーマット
SKILL.md ファイルは、スキルのメタデータと動作を定義する YAML フロントマターを持つ Markdown ファイルです。
ヘッダー (必須)
ヘッダーは YAML フロントマターとしてフォーマットされ、次のフィールドがあります
| フィールド | 必須 | 説明 |
|---|---|---|
名前 |
はい | スキルの一意の識別子。小文字の英数字とハイフンのみを使用できます(例: webapp-testing)。スラッシュ、コロン、ドット、またはネームスペースのプレフィックスは使用しないでください。親ディレクトリ名と一致する必要があります。最大 64 文字。無効な文字を含む名前の場合、スキルは通知なしにロードに失敗します。 |
説明 |
はい | スキルが何を行うか、およびいつ使用すべきかの説明。Copilot がいつスキルをロードすべきかを判断できるように、機能とユースケースの両方を具体的に記述してください。最大 1024 文字。 |
argument-hint |
なし | スキルがスラッシュコマンドとして呼び出されたときにチャット入力欄に表示されるヒントテキスト。ユーザーがどのような追加情報を提供すべきかを理解するのに役立ちます(例: [test file] [options])。 |
user-invocable |
なし | スキルがチャットメニューにスラッシュコマンドとして表示されるかどうかを制御します。デフォルトは true です。false に設定すると、エージェントが自動的にロードできるようにしたまま、/ メニューからスキルを非表示にします。 |
disable-model-invocation |
なし | 関連性に基づいてエージェントが自動的にスキルをロードできるかどうかを制御します。デフォルトは false です。true に設定すると、/ スラッシュコマンドによる手動の呼び出しのみを要求します。 |
context |
なし | (実験的機能) スキルのロード方法を制御します。デフォルトは inline(スキルの指示が親エージェントのコンテキストに追加されます)です。fork に設定すると、専用のサブエージェントコンテキストでスキルを実行します。詳細については、フォークされたコンテキストでのスキルの実行を参照してください。 |
スキルがプラグインを通じて配布される場合、プラグイン名が自動的にコマンドのプレフィックスとして使用されます(例: /my-plugin:test-runner)。スキルの name フィールドに手動でネームスペースのプレフィックスを追加しないでください。myorg/skillname や myorg:skillname のようなプレフィックスを使用すると、スキルは通知なしにロードに失敗します。
本文
スキルの本文には、Copilot がこのスキルを使用する際に従うべき指示、ガイドライン、および例が含まれます。以下を説明する明確で具体的な指示を記述してください。
- スキルが何を達成するのに役立つか
- いつスキルを使用すべきか
- 従うべき段階的な手順
- 想定される入力と出力の例
- 含まれているスクリプトやリソースへの参照
相対パスを使用して、スキルディレクトリ内のファイルを参照できます。たとえば、スキルディレクトリ内のスクリプトを参照するには、[test script](./test-template.js) を使用します。
フォークされたコンテキストでスキルを実行する (実験的機能)
デフォルトでは、VS Code がスキルをロードすると、スキルの指示が親エージェントのコンテキストウィンドウに追加されます。大規模なスキルや、中間の推論プロセスが会話の残りの部分に関連しないスキルの場合は、代わりにフォークされたコンテキストでスキルを実行できます。フォークされたコンテキストでは、スキルは専用のサブエージェントで実行され、その最終結果のみが親エージェントに返されます。これにより、メインの会話のコンテキストをクリーンに保つことができます。
フォークされたコンテキストでスキルを実行するには、SKILL.md のフロントマターの context フィールドを fork に設定します。
---
name: review-pr
description: Review a pull request for code quality, style, and correctness. Use when asked to review a PR.
context: fork
---
# PR review
Follow these steps to review the pull request...
以下のスキルには context: fork を使用してください。
- 多くのファイルを読み込んだり、メインの会話に残す必要のない詳細な調査を長時間実行したりするスキル
- 親エージェントが直接処理できる、明確な結果(要約、レポート、または少量の編集など)を生成するスキル
- 最終的な出力以外で、親エージェントの動作に影響を与えるべきではないスキル
フォークされたコンテキストでのスキルの実行は実験的な機能です。この機能を使用するには、VS Code で github.copilot.chat.skillTool.enabled 設定を有効にしてください。
スキルの例
以下の例は、作成できるさまざまなタイプのスキルを示しています。
例: Web アプリケーションテストのスキル
---
name: webapp-testing
description: Guide for testing web applications using Playwright. Use this when asked to create or run browser-based tests.
---
# Web Application Testing with Playwright
This skill helps you create and run browser-based tests for web applications using Playwright.
## When to use this skill
Use this skill when you need to:
- Create new Playwright tests for web applications
- Debug failing browser tests
- Set up test infrastructure for a new project
## Creating tests
1. Review the [test template](./test-template.js) for the standard test structure
2. Identify the user flow to test
3. Create a new test file in the `tests/` directory
4. Use Playwright's locators to find elements (prefer role-based selectors)
5. Add assertions to verify expected behavior
## Running tests
To run tests locally:
```bash
npx playwright test
```
To debug tests:
```bash
npx playwright test --debug
```
## Best practices
- Use data-testid attributes for dynamic content
- Keep tests independent and atomic
- Use Page Object Model for complex pages
- Take screenshots on failure
例: GitHub Actions デバッグのスキル
---
name: github-actions-debugging
description: Guide for debugging failing GitHub Actions workflows. Use this when asked to debug failing GitHub Actions workflows.
---
# GitHub Actions Debugging
This skill helps you debug failing GitHub Actions workflows in pull requests.
## Process
1. Use the `list_workflow_runs` tool to look up recent workflow runs for the pull request and their status
2. Use the `summarize_job_log_failures` tool to get an AI summary of the logs for failed jobs
3. If you need more information, use the `get_job_logs` or `get_workflow_run_logs` tool to get the full failure logs
4. Try to reproduce the failure locally in your environment
5. Fix the failing build and verify the fix before committing changes
## Common issues
- **Missing environment variables**: Check that all required secrets are configured
- **Version mismatches**: Verify action versions and dependencies are compatible
- **Permission issues**: Ensure the workflow has the necessary permissions
- **Timeout issues**: Consider splitting long-running jobs or increasing timeout values
スラッシュコマンドとしてスキルを使用する
スキルは、プロンプトファイルと並んで、チャットのスラッシュコマンドとして利用できます。チャット入力欄に / を入力すると、利用可能なスキルとプロンプトのリストが表示され、スキルを選択して呼び出すことができます。
スラッシュコマンドの後に追加のコンテキストを追加できます。たとえば、/webapp-testing for the login page や /github-actions-debugging PR #42 などです。
デフォルトでは、すべてのスキルが / メニューに表示されます。各スキルへのアクセス方法を制御するには、フロントマターのプロパティである user-invocable と disable-model-invocation を使用します。
| 構成 | スラッシュコマンド | Copilot による自動ロード | ユースケース |
|---|---|---|---|
| デフォルト (両方のプロパティを省略) | はい | はい | 汎用的なスキル |
user-invocable: false |
なし | はい | モデルが関連性がある場合にロードする背景知識のスキル |
disable-model-invocation: true |
はい | なし | オンデマンドでのみ実行したいスキル |
| 両方を設定 | なし | なし | 無効化されたスキル |
Copilot がスキルを使用する方法
スキルはコンテキストを効率的に保つために、コンテンツを段階的にロードします。以下は、Copilot が webapp-testing スキルを使用する方法の例です。
-
検出 (Discovery): Copilot は、YAML フロントマターからスキルの
nameとdescriptionを読み取ります。「ログインページのテストを手伝って」と尋ねると、Copilot はその説明に基づいて、これをwebapp-testingスキルに一致させます。 -
指示のロード (Instructions loading): Copilot は
SKILL.mdの本文をコンテキストにロードし、詳細なテスト手順とガイドラインにアクセスできるようにします。チャットに/webapp-testingと入力することで、このステップを直接トリガーすることもできます。 -
リソースへのアクセス (Resource access): Copilot が指示に沿って作業を進める際、スキルディレクトリ内の
test-template.jsやサンプルのシナリオなどの追加ファイルには、指示の中で参照されている場合にのみアクセスします。指示の中で参照されていないファイルはロードされません。
この 3 段階のロードシステムにより、コンテキストを浪費することなく、多数 of スキルをインストールできます。Copilot は各タスクに関連するものだけをロードします。
フォークされたコンテキストを選択したスキルも、同じ検出ステップに従いますが、その指示と読み取られるファイルは別のサブエージェントにロードされます。スキルの最終結果のみが親エージェントに返されます。
共有スキルを使用する
他の人が作成したスキルを使用して、Copilot の機能を強化できます。github/awesome-copilot リポジトリには、拡大し続けるコミュニティによるスキル、カスタムエージェント、指示、プロンプトのコレクションが含まれています。anthropics/skills リポジトリには、追加のリファレンススキルが含まれています。
エージェントプラグインにバンドルされているスキルを検出してインストールすることもできます。インストールされたプラグインからのスキルは、Configure Skills(スキルの構成)メニューのローカルに定義されたスキルと並んで表示されます。
共有スキルを使用するには
- リポジトリで利用可能なスキルを閲覧します
- スキルディレクトリを
.github/skills/フォルダにコピーします - 必要に応じて
SKILL.mdファイルを確認し、カスタマイズします - 必要に応じて、リソースを修正または追加します
共有スキルを使用する前に、必ずレビューを行い、要件やセキュリティ基準を満たしていることを確認してください。VS Code のターミナルツールは、設定可能な許可リストを含む自動承認オプションや、実行されるコードの厳密な制御など、スクリプト実行のコントロールを提供します。自動承認機能のセキュリティに関する考慮事項についての詳細を確認してください。
拡張機能からスキルを提供する
拡張機能は、package.json の chatSkills 貢献ポイントを使用してスキルを提供できます。パスは、Agent Skills 仕様に従って、SKILL.md ファイルを含むディレクトリを指す必要があります。
必要なフォルダ構造
スキルディレクトリは以下の構造に従う必要があります。
extension-root/
└── skills/
└── my-skill/ # Directory name must match the `name` field in SKILL.md
└── SKILL.md # Required
package.json にスキルを登録する
拡張機能の package.json に chatSkills 貢献ポイントを追加します。path プロパティは、対応する SKILL.md ファイルを指す必要があります。
{
"contributes": {
"chatSkills": [
{
"path": "./skills/my-skill/SKILL.md"
}
]
}
}
SKILL.md フロントマターの name フィールドは、親ディレクトリ名と一致する必要があります。たとえば、ディレクトリが skills/my-skill/ の場合、name フィールドは my-skill でなければなりません。名前が一致しない場合、スキルはロードされません。
SKILL.md ファイルは、プロジェクトスキルや個人スキルと同じフォーマットに従います。たとえば:
---
name: my-skill
description: Description of what the skill does and when to use it.
---
# My Skill
Detailed instructions for the skill...
Agent Skills 標準
Agent Skills は、さまざまな AI エージェント間でのポータビリティを可能にするオープン標準です。VS Code で作成したスキルは、以下を含む複数のエージェントで動作します。
- VS Code の GitHub Copilot: チャットおよびエージェントモードで利用可能
- GitHub Copilot CLI: ターミナルでの作業時にアクセス可能
- GitHub Copilot クラウドエージェント: 自動化されたコーディングタスク中に使用可能
Agent Skills 標準の詳細については、agentskills.io を参照してください。