VSCodeでAgent Skillsが使えるらしいので試してみる

はじめに

VSCodeでAgent Skillsという機能がプレビューで使えるようになったとのことで、試してみた。

Agent Skillsは、GitHub Copilotに専門的なタスクを実行させるための命令やスクリプト、リソースをまとめたフォルダである。
カスタムインストラクションとは異なり、スクリプトやサンプルコードなどのリソースを含めることができ、特定のワークフローを定義することが可能。

また、Agent Skillsはオープン標準であり、VS Code だけでなく、GitHub Copilot CLI やGitHub Copilot coding agentなど、複数のAIエージェントで動作する。

環境

Windows 11 Professional
WSL2 (Ubuntu 24.04 LTS)
Visual Studio Code
GitHub Copilot

Agent Skillsとは

Agent Skillsの利点

  • 繰り返しコンテキストを提供することなく、ドメイン固有のタスクに特化した機能を持たせられる
  • 一度作成すれば、すべての会話で自動的に使用される
  • 複数のスキルを組み合わせて複雑なワークフローを構築できる
  • 必要なときにのみ関連するコンテンツがコンテキストに読み込まれるため、多くのスキルをインストールしてもコンテキストを消費しない

Agent Skills vs カスタムインストラクション

項目Agent Skillsカスタムインストラクション
目的専門的な機能とワークフローを教えるコーディング標準とガイドラインを定義
移植性VS Code、Copilot CLI、Copilot coding agentで動作VS CodeとGitHub.comのみ
コンテンツ命令、スクリプト、サンプル、リソース命令のみ
スコープタスク固有、オンデマンドで読み込み常に適用(またはglobパターン経由)
標準オープン標準(agentskills.io)VS Code固有

設定を有効にする

まずは、VSCodeの設定でAgent Skillsを有効にする。

settings.jsonに以下を追加する。

{
  "chat.useAgentSkills": true
}

または、VSCodeの設定画面からchat.useAgentSkillsを検索して有効にする。

スキルの作成

スキルはSKILL.mdファイルを含むディレクトリとして保存される。

保存場所

  • プロジェクトスキル(リポジトリ内)

    • .github/skills/(推奨)
    • .claude/skills/(レガシー)
  • 個人スキル(ユーザープロファイル)

    • ~/.copilot/skills/(推奨)
    • ~/.claude/skills/(レガシー)

SKILL.mdのフォーマット


---
name: skill-name
description: スキルの説明と使用タイミング
---

# スキルの説明

詳細な説明、ガイドライン、サンプルをここに記述...

ヘッダー(必須)

フィールド必須説明
nameYesスキルの一意識別子。小文字、ハイフン区切り。最大64文字
descriptionYesスキルの機能と使用タイミングの説明。最大1024文字

ボディ

スキルのボディには、Copilotが従うべき命令、ガイドライン、サンプルを記述する。

  • スキルが達成を助ける内容
  • スキルを使用するタイミング
  • 従うべき手順
  • 期待される入力と出力のサンプル
  • 含まれるスクリプトやリソースへの参照

スキルディレクトリ内のファイルは相対パスで参照できる。
例: [test script](./test-template.js)

使ってみる

ブログ記事作成スキルを作成

今回は、このブログに記事を作成するためのスキルを作ってみる。

.github/skills/blog-post-creation/SKILL.mdを作成する。

---
name: blog-post-creation
description: Hugoブログの新規記事を作成するスキル。記事のテンプレート生成、フロントマターの設定、画像ディレクトリの作成をサポートする。
---

# ブログ記事作成スキル

このスキルは、Hugoで構築されたブログに新しい記事を作成する際に使用する。

## 使用タイミング

- 新しいブログ記事を作成したいとき
- 記事のテンプレートを生成したいとき

## 手順

1. `make new file=tech/category/slug-name` コマンドで新規記事を作成
2. フロントマターを適切に設定
3. `<!--more-->` で概要とメインコンテンツを分割
4. 画像は `{{< lightbox >}}` ショートコードを使用

## フロントマターテンプレート

---
title: "記事のタイトル"
slug: slug-name
date: 2025-01-30T00:00:00Z
draft: false
keywords: ["keyword1", "keyword2"]
description: ""
categories: ["技術"]
tags: ["Tag1", "Tag2"]
image:
math: false
license:
hidden: false
comments: true
author: "kbushi"
---

## 参考

- [AGENTS.md](../../../AGENTS.md) - リポジトリのガイドライン

Copilotでスキルを確認

スキルを作成したら、Copilotのチャットで自動的に認識される。

チャットで「このブログに新しい記事を作成したい」と依頼すると、作成したスキルが自動的に読み込まれ、適切な手順でサポートしてくれる。

一応、今回はAgent Skillの一覧を表示してとチャットして確認をしている。
以下はその応答、正しくスキルが認識されていることがわかる。

> Agent Skillの一覧を表示して

現在登録されているAgent Skillは以下の1件です。

Agent Skills 一覧
スキル名	説明
blog-post-creation	Hugoブログの新規記事を作成するスキル。記事のテンプレート生成、フロントマターの設定、画像ディレクトリの作成をサポートする。
blog-post-creation
場所: SKILL.md

使用タイミング:

新しいブログ記事を作成したいとき
記事のテンプレートを生成したいとき
手順:

make new file=tech/category/slug-name コマンドで新規記事を作成
フロントマターを適切に設定
<!--more--> で概要とメインコンテンツを分割
画像は {{ < lightbox > }} ショートコードを使用

Copilotがスキルを使用する仕組み

スキルは3段階の読み込みシステムを使用して効率的にコンテンツを読み込む。

flowchart TB subgraph Level1["📋 レベル1: スキル発見"] A["SKILL.md"] --> B["name + description
(YAMLフロントマター)"] B --> C["Copilotが常に把握"] end subgraph Level2["📖 レベル2: 命令の読み込み"] D["ユーザーのリクエスト"] --> E{"スキルの説明と
一致する?"} E -->|Yes| F["SKILL.md のボディを
コンテキストに読み込み"] E -->|No| G["読み込まない"] end subgraph Level3["📁 レベル3: リソースアクセス"] H["Copilotが参照"] --> I["スクリプト
(.js, .sh など)"] H --> J["サンプルコード"] H --> K["ドキュメント"] end Level1 --> Level2 Level2 --> Level3 style Level1 fill:#e1f5fe,stroke:#0288d1 style Level2 fill:#fff3e0,stroke:#f57c00 style Level3 fill:#e8f5e9,stroke:#388e3c

レベル1: スキル発見

CopilotはYAMLフロントマターからnamedescriptionを読み取り、どのスキルが利用可能かを常に把握している。

レベル2: 命令の読み込み

リクエストがスキルの説明と一致すると、SKILL.mdのボディがコンテキストに読み込まれる。

レベル3: リソースアクセス

Copilotは必要に応じてスキルディレクトリ内の追加ファイル(スクリプト、サンプル、ドキュメント)にアクセスする。

この仕組みにより、多くのスキルをインストールしても、各タスクに関連するもののみが読み込まれる。

共有スキルの利用

他の人が作成したスキルを利用することもできる。

共有スキルを使用するには、スキルディレクトリを.github/skills/フォルダにコピーし、必要に応じてSKILL.mdをカスタマイズする。

参考

おわりに

Agent Skillsを使ってみた。
カスタムインストラクションと似ているが、スクリプトやサンプルコードなどを含められる点で、より実践的なワークフローを定義できそう。

オープン標準として他のAIエージェントでも使えるという点も良い。
今後、コミュニティでスキルが共有されていくと、便利なスキルが増えていきそうで楽しみである。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。