エージェント型開発を探求する -

VS Code で Agent Skills を使用する

Agent Skills は、GitHub Copilot が関連する専門的なタスクを実行する際に読み込むことができる、指示、スクリプト、リソースのフォルダです。Agent Skills は、VS Code の GitHub Copilot、GitHub Copilot CLI、GitHub Copilot コーディングエージェントなど、複数の AI エージェント間で動作するオープン標準です。

主にコーディングガイドラインを定義するカスタム指示とは異なり、スキルを使用すると、スクリプト、例、その他のリソースを含む専門的な機能やワークフローを有効にできます。作成したスキルはポータブルであり、スキル互換性のあるあらゆるエージェントで動作します。

Agent Skills の主な利点

  • Copilot の専門化: コンテキストを繰り返すことなく、ドメイン固有のタスクに合わせて機能を調整します
  • 反復作業の削減: 一度作成すれば、すべての会話で自動的に使用されます
  • 機能の構成: 複数のスキルを組み合わせて、複雑なワークフローを構築します
  • 効率的な読み込み: 必要なときに、関連するコンテンツのみがコンテキストに読み込まれます
ヒント

[チャットカスタマイズエディター](Preview) を使用して、すべてのチャットカスタマイズを 1 か所で発見、作成、管理できます。コマンドパレットから **チャット: チャットカスタマイズを開く** を実行します。

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.skillsLocations VS Code で開く VS Code Insiders で開く 設定で構成できます。これは、スキルを別のフォルダ構造で整理したい場合や、複数のスキルディレクトリがある場合に便利です。

ヒント

モノレポでは、 chat.useCustomizationsInParentRepositories VS Code で開く VS Code Insiders で開く を有効にして、親リポジトリのルートからスキルを検出します。親リポジトリの検出の詳細をご覧ください。

スキルを作成するには

  1. チャットビューで、チャットの構成 (Configure Chat)(歯車アイコン)を選択してチャットカスタマイズエディタを開き、スキル (Skills) タブを選択します。

  2. スキルの保存場所に応じて、ドロップダウンから 新しいスキル (ワークスペース) (New Skill (Workspace)) または 新しいスキル (ユーザー) (New Skill (User)) を選択します。

    Screenshot of the Chat Customizations editor, showing the Skills tab and the dropdown to create a new skill.

  3. 場所を選択し、スキルの名前を入力します。

  4. 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...
    
  5. オプションで、スクリプト、例、その他のリソースをスキルのディレクトリに追加します。

    たとえば、Web アプリケーションをテストするためのスキルには、以下が含まれる場合があります。

    • SKILL.md - テストを実行するための指示
    • test-template.js - テンプレートテストファイル
    • examples/ - テストシナリオの例
    注意

    エージェントが追加のファイルを読み取れるように、SKILL.md 内でそれらのファイルを参照してください。[テストテンプレート](./test-template.js) のように、相対パスを使用した Markdown リンク構文を使用します。

AI でスキルを生成する

AI を使用して、機能の説明に基づいたスキルを生成できます。チャットに /create-skill と入力し、目的のスキルを説明します(例:「統合テストを実行およびデバッグするためのスキル」)。エージェントが明確な質問を行い、ディレクトリ構造、指示、フロントマターを含む SKILL.md ファイルを生成します。

進行中の会話から再利用可能なスキルを抽出することもできます。たとえば、複雑な問題をデバッグした複数ターンのセッションの後、「今デバッグした方法からスキルを作成して」と依頼すると、複数ステップの手順を再利用可能なスキルとしてキャプチャできます。

チャットカスタマイズエディタのドロップダウンから スキルを生成 (Generate Skill) を選択して、スキルを生成することもできます。

SKILL.md ファイルの形式

SKILL.md ファイルは、スキルのメタデータと動作を定義する YAML フロントマターを備えた Markdown ファイルです。

ヘッダー(必須)

ヘッダーは YAML フロントマターとしてフォーマットされ、次のフィールドがあります

フィールド 必須 説明
名前 はい スキルのユニークな識別子。小文字で、スペースにはハイフンを使用する必要があります(例:webapp-testing)。親ディレクトリ名と一致する必要があります。最大 64 文字。
説明 はい スキルが何をするか、いつ使用するかの説明。Copilot がスキルを読み込むタイミングを判断できるように、機能と使用ケースの両方を具体的に記述してください。最大 1024 文字。
argument-hint なし スキルがスラッシュコマンドとして呼び出されたときに、チャット入力フィールドに表示されるヒントテキスト。ユーザーがどのような追加情報を提供すべきかを理解するのに役立ちます(例:[テストファイル] [オプション])。
user-invocable なし スキルがチャットメニューのスラッシュコマンドとして表示されるかどうかを制御します。デフォルトは true です。エージェントが自動的にスキルを読み込めるようにしつつ、/ メニューからスキルを非表示にするには false に設定します。
disable-model-invocation なし 関連性に基づいてエージェントがスキルを自動的に読み込めるかどうかを制御します。デフォルトは false です。/ スラッシュコマンドによる手動呼び出しのみを要求するには true に設定します。

本文

スキル本文には、このスキルを使用する際に Copilot が従うべき指示、ガイドライン、例が含まれます。以下を説明する明確で具体的な指示を記述してください。

  • スキルが何を達成するのに役立つか
  • スキルをいつ使用すべきか
  • 従うべき段階的な手順
  • 期待される入力と出力の例
  • 含まれているスクリプトやリソースへの参照

スキルディレクトリ内のファイルは、相対パスを使用して参照できます。たとえば、スキルディレクトリ内のスクリプトを参照するには、[テストスクリプト](./test-template.js) を使用します。

スキルの例

以下の例は、作成できるスキルのさまざまなタイプを示しています。

例: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 ログインページ用/github-actions-debugging PR #42

デフォルトでは、すべてのスキルが / メニューに表示されます。user-invocable および disable-model-invocation フロントマタープロパティを使用して、各スキルへのアクセス方法を制御します。

構成 スラッシュコマンド Copilot による自動読み込み 使用ケース
デフォルト(両方のプロパティを省略) はい はい 汎用スキル
user-invocable: false なし はい モデルが関連する際に読み込む背景知識スキル
disable-model-invocation: true はい なし オンデマンドでのみ実行したいスキル
両方設定 なし なし 無効なスキル

Copilot がスキルを使用する方法

スキルは、コンテキストを効率的に保つために、コンテンツを段階的に読み込みます。Copilot が webapp-testing スキルを使用する方法の例を以下に示します。

  1. 検出:Copilot は YAML フロントマターからスキルの namedescription を読み取ります。「ログインページをテストするのを手伝って」と尋ねると、Copilot は説明に基づいてこれを webapp-testing スキルと照合します。

  2. 指示の読み込み:Copilot は SKILL.md の本文をコンテキストに読み込み、詳細なテスト手順とガイドラインにアクセスできるようにします。チャットで /webapp-testing と入力することで、このステップを直接トリガーすることもできます。

  3. リソースへのアクセス:Copilot は指示に従って作業を進める際、test-template.js やシナリオ例など、スキルのディレクトリにある追加ファイルを参照する場合にのみアクセスします。指示の中で参照されていないファイルは読み込まれません。

この 3 レベルの読み込みシステムにより、コンテキストを消費することなく多くのスキルをインストールできます。Copilot は、各タスクに関連する内容のみを読み込みます。

共有スキルを使用する

他者が作成したスキルを使用して、Copilot の機能を強化できます。github/awesome-copilot リポジトリには、スキル、カスタムエージェント、指示、プロンプトのコミュニティコレクションが増え続けています。anthropics/skills リポジトリには、追加の参考スキルが含まれています。

エージェントプラグインにバンドルされているスキルを見つけてインストールすることもできます。インストールされたプラグインのスキルは、ローカルで定義されたスキルとともに スキルの構成 (Configure Skills) メニューに表示されます。

共有スキルを使用するには

  1. リポジトリで利用可能なスキルを閲覧する
  2. スキルディレクトリを .github/skills/ フォルダにコピーする
  3. 必要に応じて SKILL.md ファイルを確認およびカスタマイズする
  4. オプションで、必要に応じてリソースを変更または追加する
ヒント

共有スキルを使用する前に、要件とセキュリティ基準を満たしていることを常に確認してください。VS Code のターミナルツールには、構成可能な許可リストと、実行されるコードに対する厳密な制御を備えた自動承認オプションなど、スクリプト実行のための制御機能が用意されています。自動承認機能のセキュリティに関する考慮事項の詳細をご覧ください。

拡張機能からスキルを提供する

拡張機能は、package.jsonchatSkills コントリビューションポイントを使用してスキルを提供できます。パスは、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.jsonchatSkills コントリビューションポイントを追加します。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 をご覧ください。

© . This site is unofficial and not affiliated with Microsoft.