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つの機能があります。ただし、実行方法はプラットフォームによって異なります。
| プラットフォーム | Commands | Skills |
|---|---|---|
| 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つです。
- ポータビリティ:オープンスタンダードなので、Cursor、Claude Code、その他の対応ツール間で同じスキルを共有できる
- エコシステム:他の開発者が公開したスキルをインポートしたり、自分のスキルを公開して共有できる
- 標準化された構造: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つのスキルを作成し、エージェントが自動的に参照してくれるか試してみてください。
関連記事

コメント