【完全ガイド】Agent Skills入門:AIエージェントに専門知識を教える新しい仕組み

AIエージェントを使っていて「毎回同じ説明をするのが面倒」と感じたことはありませんか?

Agent Skillsを使えば、専門知識やワークフローをパッケージ化し、AIエージェントに一度教えるだけで済みます。2025年12月、AnthropicはAgent Skillsをオープンスタンダードとして公開しました。

この記事は以下のような方に向けて書いています:

  • CursorやClaude Codeを使っている開発者
  • AIエージェントに専門知識を効率的に伝えたい方
  • Tool UseやCommandsとの違いを理解したい方

この記事を読むことで、Agent Skillsの正しい理解と、自分のワークフローをスキル化する方法がわかります。

この記事のポイント

  • Agent Skillsは「知識パッケージ」であり、Tool Useとは別の概念
  • SKILL.mdファイルでスキルを定義する
  • Skillsはオープンスタンダードで、ツール間で共有可能
目次

Agent Skillsとは何か

Agent Skillsは、AIエージェントに専門知識やワークフローを教えるための「知識パッケージ」です。

重要なのは、Agent Skillsは「道具」ではなく「知識」だという点です。API呼び出しやファイル操作といった「実行機能」ではなく、「どう考え、どうアプローチすべきか」という専門知識をパッケージ化します。

Tools(道具)とSkills(知識)の違い

この違いを理解することが、Agent Skillsを正しく使う第一歩です。

概念役割
Tools実行機能(手)API呼び出し、ファイル操作、データベースクエリ
Skills専門知識(訓練)コーディング規約、ワークフロー手順、ドメイン知識

Toolsは「何かを実行する」機能です。Claudeがtool_useを出力し、実行層が処理し、tool_resultを返す。これがTool Useの仕組みです。

Skillsは「どう考えるか」を教える知識です。エージェントが問題に直面したとき、関連するスキルを参照して、適切なアプローチを選択します。

両者は補完関係にあります。Skillsが「何をすべきか」を判断し、Toolsが「実際に実行する」という形です。

CommandsとSkillsの違い

CursorやClaude Codeには「Commands」と「Skills」という2つの機能があります。ただし、実行方法はプラットフォームによって異なります。

プラットフォームCommandsSkills
Claude Code/コマンド名で手動実行のみエージェントが自動判断
Cursor手動・自動の両方が可能手動・自動の両方が可能

Claude Codeでは、Commandsは明示的に/コマンド名で呼び出し、Skillsはエージェントが自動的に判断して使います。

Cursorでは、CommandsもSkillsも手動(/で呼び出し)と自動(エージェントが判断)の両方で実行できます。Cursorの公式ブログでも「The agent can use these commands autonomously」と説明されています。

では、CursorにおけるCommandsとSkillsの違いは何でしょうか?

Skillsの特徴は「オープンスタンダード」であることです。Agent Skillsはagentskills.ioで公開された仕様に準拠しており、Cursor、Claude Code、その他の対応ツール間で共有できる「ポータブルな知識パッケージ」です。

一方、Commandsは各ツール独自の形式で、ツール間の互換性はありません。

例えば、「このコードをリファクタリングして」と依頼すると、エージェントは自動的に関連するスキルを参照し、そのプロジェクトのコーディング規約に従った提案をします。

スキルの定義方法

Agent Skillsは、SKILL.mdファイルを含むディレクトリとして定義します。

基本構造

my-skill/
├── SKILL.md        # 必須:スキルの定義
├── examples/       # オプション:サンプルコード
└── resources/      # オプション:追加リソース

SKILL.mdの書き方

SKILL.mdは、YAML frontmatterとMarkdownコンテンツで構成されます。

---
name: coding-standards
description: |
  このプロジェクトのコーディング規約に従ってコードを書く際に使用します。
  変数命名、関数設計、エラーハンドリングのルールを含みます。
---

# コーディング規約スキル

## 変数命名規則

- ローカル変数: camelCase
- 定数: UPPER_SNAKE_CASE
- プライベートメンバー: _prefixCamelCase

## 関数設計

- 1関数1責務
- 引数は3つ以下
- 戻り値の型を明示

## エラーハンドリング

- try-catchは最小限のスコープで
- エラーメッセージは具体的に
- ログには必ずコンテキストを含める

必須要素と任意要素

フィールド必須説明
nameはいスキルの識別子
descriptionはいいつ使うべきかの説明
licenseいいえライセンス情報
compatibilityいいえ対応プラットフォーム
allowed-toolsいいえ使用を許可するツール

descriptionが重要です。エージェントはこの説明を読んで「このスキルを使うべきか」を判断します。

descriptionの書き方

曖昧な説明では、エージェントが適切に判断できません。

# 悪い例
description: コーディング規約

# 良い例
description: |
  このプロジェクトのコーディング規約に従ってコードを書く際に使用します。
  TypeScriptファイルの命名規則、関数設計、エラーハンドリングの
  ベストプラクティスを定義しています。
  コードレビューやリファクタリング時にも参照してください。

「いつ使うか」「何が含まれているか」「どんな場面で役立つか」を明記します。

実践例:私のワークフローをスキル化するなら

私は普段、Obsidianと連携したCommandsを使っています。これをSkillsに移行するとどうなるか、具体例で説明します。

/dailyコマンド → デイリーノートスキル

現在のCommands:

/daily → デイリーノートを作成

Skills形式で書いた場合:

---
name: daily-note-workflow
description: |
  デイリーノートの作成や更新に関する作業で使用します。
  「今日のタスクを整理して」「デイリーノートを作って」といった
  依頼があった場合、このスキルを参照してください。
---

# デイリーノート作成スキル

## テンプレート構造

- 日付ヘッダー
- 今日のタスクセクション
- メモセクション
- 振り返りセクション

## タスク抽出ルール

1. Inboxフォルダから未処理タスクを検索
2. 優先度でソート
3. 今日のタスクセクションに配置

## 既存ノートがある場合

追記モードで開き、新しいタスクのみ追加する。

Skillsのメリット: オープンスタンダード形式なので、CursorからClaude Codeに乗り換えても同じスキルファイルをそのまま使えます。また、他の開発者が作成したスキルをインポートすることも可能です。

/researchコマンド → 調査スキル

Skills化した場合:

---
name: research-workflow
description: |
  新しいトピックについて体系的に調査する際に使用します。
  「〇〇について調べて」「〇〇の情報を集めて」といった依頼で
  このスキルを参照してください。
---

# 調査ワークフロースキル

## 調査の原則

- 1ファイル1概念
- 10〜20ファイルで網羅的にカバー
- MOC(Map of Contents)で全体像を把握

## 各ファイルの構造

1. 概要(1段落)
2. 詳細説明
3. コード例(該当する場合)
4. 関連ノートへのリンク

## 出力形式

- research/[トピック名]/ ディレクトリに保存
- MOC.md を最初に作成
- 各概念ごとに個別ファイル

スキル化のメリット

CommandsをSkills形式に移行するメリットは3つです。

  1. ポータビリティ:オープンスタンダードなので、Cursor、Claude Code、その他の対応ツール間で同じスキルを共有できる
  2. エコシステム:他の開発者が公開したスキルをインポートしたり、自分のスキルを公開して共有できる
  3. 標準化された構造:SKILL.md + YAML frontmatterという統一形式で、管理しやすい

一方で、特定ツール固有の機能を使いたい場合や、シンプルなワークフローの場合は、Commandsの方が手軽に作成できます。

Tool Useとの使い分け

最後に、Tool Use(ツール呼び出し)との関係を整理します。

Tool Use(実行機能)の例:

{
  "name": "get_weather",
  "description": "指定した都市の天気情報を取得",
  "input_schema": {
    "type": "object",
    "properties": {
      "city": { "type": "string" }
    },
    "required": ["city"]
  }
}

これは「天気APIを呼び出す」という実行機能です。

Agent Skills(知識)の例:

---
name: weather-reporting
description: 天気情報をユーザーに報告する際の形式とルール
---

# 天気レポートスキル

## 報告形式
- 気温は摂氏で表示
- 体感温度も併記
- 服装のアドバイスを添える

これは「天気情報をどう伝えるか」という知識です。

組み合わせ: エージェントは、Tool Useで天気データを取得し、Agent Skillsの知識に従って「体感温度も併記し、服装アドバイスを添えた」報告をします。

まとめ

今回はAgent Skillsについて解説しました。

この記事のポイント

  • Agent Skillsは「知識パッケージ」であり、Tool Use(実行機能)とは別の概念
  • SKILL.mdファイルとYAML frontmatterでスキルを定義する
  • Skillsはオープンスタンダードで、ツール間で共有できるポータブルな形式

Agent Skillsを理解すれば、AIエージェントに専門知識を効率的に教えられます。毎回同じ説明を繰り返す必要がなくなり、エージェントがあなたのワークフローを理解した上で動いてくれるようになります。

まずは1つのスキルを作成し、エージェントが自動的に参照してくれるか試してみてください。


関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次