目次
Claude Codeを使っていて「Skillsとサブエージェントって何が違うの?」と思うことがありました。2026年1月にSlash CommandsがSkillsに統合されたこともあり、ますますわかりにくくなっています。調べてみたので備忘録です。
3つの機能の位置づけ
Claude Codeには拡張機能として Skills 、 Subagent 、 Slash Commands があります。それぞれの役割を整理します。
Skills は、Markdownベースの指示書です。Claude Codeがタスクに関連していると判断した場合に自動でロードされます。参照知識やユーティリティ処理に向いています。
Subagent は、独立したAIアシスタントです。メインの会話とは別のコンテキストを持ち、複雑なワークフローを自律的に実行します。
Slash Commands は、 /commit のように明示的に呼び出すコマンドです。2026年1月にSkillsに統合されました。
Skillsの仕組み
Skillsは ~/.claude/skills/ または .claude/skills/ に配置します。SKILL.md ファイルが必須です。
---
name: explain-code
description: コードを視覚的図解と類似例で説明する。「これどうやって動く?」と聞かれた時に使用
allowed-tools: Read, Glob
---
コード説明時には常に以下を含むこと:
1. 日常生活での類似例を使った説明
2. ASCII アートで流れ、構造、関係性を図示
3. ステップバイステップの説明
description がコンテキストに常に読み込まれ、Claudeが関連性を判断して自動起動します。軽量で、説明のみが最初にロードされる点が特徴です。
YAMLフロントマターで動作を制御できます。
name:スキル名description:説明(自動起動の判断に使われる)disable-model-invocation:trueにすると自動起動しないallowed-tools:使用可能なツールを制限
Subagentの仕組み
Subagentは .claude/agents/ に配置します。
---
name: code-reviewer
description: コード品質とセキュリティをレビューする専門家
tools: Read, Grep, Glob, Bash
model: sonnet
---
あなたはシニアコードレビュアーです。品質、セキュリティ、ベストプラクティスに焦点を当ててください。
Subagentの特徴はこんな感じです。
- 独立したコンテキスト :メイン会話とは別の会話履歴を持つ
- カスタムシステムプロンプト :タスク固有の指示を定義できる
- ツール制限 :特定のツールのみにアクセスを許可
- モデル選択 :Haikuで高速化するなど用途に応じて変更可能
Claude Codeには組み込みのSubagentもあります。
- Explore :コードベース検索・分析用(Haikuで高速)
- Plan :計画モードでの調査用
- General-purpose :複雑なタスク用(全ツールアクセス可能)
Slash CommandsのSkillsへの統合
2026年1月24日、AnthropicはSlash CommandsをSkillsシステムに統合しました[1]。
統合前は .claude/commands/ と .claude/skills/ が別々のシステムでした。現在は両方の場所が機能しますが、Skillsが推奨されています。
何が変わったかというと、こんな感じです。
.claude/commands/review.mdと.claude/skills/review/SKILL.mdは同じ/reviewコマンドを作成する- 既存の
.claude/commands/ファイルは引き続き動作する(後方互換性) - Skillsでは追加機能(コンテキストフォーク、動的コンテンツロード)が使える
Skillsにできて、Subagentにできないこと
会話全体を通して知識として機能する
Skillsはメイン会話のコンテキストに埋め込まれます。一度参照されると、その知識は会話が続く限り有効です。
たとえば「このプロジェクトではPrettierを使う」というSkillを作ると、以降のコード生成でずっとPrettierを意識してくれます。Subagentだと1回のタスクで終わり、次のやり取りでは忘れています。
複数を組み合わせて使う
「TypeScript規約」と「テスト規約」のSkillsを両方参照しながらコードを書く、といった使い方ができます。Subagentはネストできない(Subagentの中からSubagentを呼べない)ので、こういう組み合わせはできません。
Subagentにできて、Skillsにできないこと
並列実行
3つのファイルを同時に調査する、といった並列処理ができます。Subagentは複数同時に走らせられますが、Skillsは順番に処理されます。
コンテキストの分離
Subagentはメイン会話とは別のコンテキストで動きます。1000行のログを解析しても、メイン会話には結果だけが返ります。Skillsだとメイン会話のコンテキストを消費するので、長い処理には向きません。
モデルの変更
SubagentはHaikuに切り替えて高速化する、といった使い方ができます。Skillsはメインと同じモデルで動きます。
使い分けの考え方
もう少し抽象的に言うと、こういう違いです。
- Skills :Claudeに知識を与える、Claudeの振る舞いを変える
- Subagent :別のClaudeにタスクを投げる、結果だけもらう
コードで例えると、Skillsは「クラスにメソッドを追加する」感覚、Subagentは「別プロセスにタスクを投げてjoinする」感覚に近いです。
比較表
両者の違いを表にまとめます。
| 項目 | Skills | Subagent |
|---|---|---|
| コンテキスト | メイン会話に埋め込み | 独立したコンテキスト |
| 起動方法 | 自動 + 手動(/name) |
Taskツール経由 |
| 重さ | 軽量(説明のみ最初にロード) | 重量(独立インスタンス起動) |
| チェーン | 複数Skillsの呼び出し可能 | ネスト不可 |
| 用途 | 参照知識、ユーティリティ | 複雑なワークフロー、並列実行 |
移行のすすめ
新しく拡張機能を作るなら .claude/skills/ にSkillとして実装するのがおすすめです。既存の .claude/commands/ ファイルはそのまま動くので、無理して移行する必要はありません。
複雑なワークフローや独立した調査が必要ならSubagentを検討してみてください。
