Claude Codeで「SubAgent」「Skills」「Hooks」「Plugin」「MCP」の違いに頭を悩ませていませんか?新機能が続々と追加される中、「どの機能を、どんな場面で使えば開発効率が本当に上がるのか」迷う声が増えています。実際、主要な開発現場では1プロジェクトあたり平均3種類以上の機能が併用され、適切な使い分けでコードのトークン消費量が最大30%削減できた事例も報告されています。
一方で、「SkillsとSubAgentの違いが分からず、設計や管理が複雑化してしまう」「ファイル構成や呼び出し方法を間違えて、AIが思った通りに動いてくれない」といった悩みもよく聞きます。特に、HooksやPluginの自動化・拡張性を活かしきれず、本来得られるはずの生産性向上メリットを逃しているケースも少なくありません。
Claude Code公式ドキュメントや実務データを徹底的に分析した本記事では、5つの機能の本質的な違いと選び方を、現場の導入事例やファイル構成例とともに、図表やフローチャートでわかりやすく整理しています。
Claude Code 5つの機能を1分で理解する – SubAgent・Skills・Hooks・Plugin・MCPの役割と違い
Claude Codeの機能体系を俯瞰する – 5つの拡張機能の位置づけ
Claude CodeはAIによる開発や自動化を加速するため、SubAgent、Skills、Hooks、Plugin、MCPという5つの拡張機能が用意されています。これらの機能はそれぞれ異なる役割を担い、使い分けることでプロジェクト全体の効率化と柔軟性を実現します。
たとえば、SubAgentは「別室で作業する助手」、Skillsは「マニュアル」、Hooksは「自動実行ルール」、Pluginは「拡張パック」、MCPは「外部ツールとの接続口」のようなイメージで理解できます。
| 機能名 | 概要 | 主な用途 | ファイル配置 |
|---|---|---|---|
| SubAgent | 独立した空間で作業する専門AIエージェント | 並列タスク処理、責任分担 | .claude/agents/ |
| Skills | 再利用可能な知識・手順のモジュール | 作業手順注入、知識の標準化 | .claude/skills/ |
| Hooks | 各種イベントの自動実行トリガー | 自動化、効率化 | settings.json |
| Plugin | 複数機能をまとめた拡張パック | チーム共有、機能配布 | .claude-plugin/ |
| MCP | 外部ツールやAPIとの連携プロトコル | データベース接続、外部サービス活用 | .mcp.json |
なぜ5つの機能に分かれているのか – 背景にある設計思想
Claude Codeが5つの機能に分かれているのは、現場の多様な開発ニーズに対応し、柔軟かつ拡張性の高いAIエージェントの運用を可能にするためです。
たとえば、エンジニアはSubAgentで責任範囲を明確に分担し、Skillsでナレッジを標準化、Hooksで手間を減らし、Pluginで機能を共有、MCPで外部ツールを自在に活用できます。各機能を組み合わせることで、プロジェクトごとに最適なワークフローを構築でき、管理や保守性も高まります。
SubAgent・Skills・Hooks・Plugin・MCPの役割と特徴を表で整理
| 機能名 | 定義 | 主な役割 | 代表的な用途 |
|---|---|---|---|
| SubAgent | 独立した専門AIエージェント | 並列・分業タスクの実行 | レビュー・テスト・データ分析 |
| Skills | 使い方や知識をAIに伝える再利用可能なガイド | メイン会話の知識拡張 | コーディング規約やAPI仕様の注入 |
| Hooks | イベント時に自動実行されるトリガー | ワークフローの自動化 | ファイル変更検知→自動タスク実行 |
| Plugin | 複数機能をまとめた拡張パック | チーム共有・機能配布 | コマンド・スキル・エージェントの配布 |
| MCP | 外部ツール・APIとClaudeを連携するプロトコル | 外部リソースの連携・拡張 | DB接続、外部APIコール、外部データ取得 |
コンテキスト共有 vs 独立実行 – 技術的な違いの本質
Skillsはメイン会話のコンテキストをそのまま利用し、全体フローの一部として自然に知識を追加できます。これにより、複数の作業や知識適用を一つの流れで完結できるのが特徴です。
一方、SubAgentは独立したコンテキストで動作します。メインAIの履歴や他のタスクに影響されず、専用の指示・権限・プロンプトで専門タスクに集中できます。これにより、「タスク間での情報混線」や「不要な知識の混入」を防ぎ、精度の高い分業や並列処理が可能です。
MCPは外部システムとの連携を担うため、コンテキストとは別の次元で動作します。外部APIやデータベースから情報を取得し、Claudeの処理に活用します。
| 観点 | SubAgent | Skills | Hooks | Plugin | MCP |
|---|---|---|---|---|---|
| コンテキスト | 独立 | メイン共有 | なし | なし | なし |
| タスク委譲 | 複雑タスク | 定型作業 | なし | 連携先に委譲可 | 外部ツールに委譲 |
| 自動化 | 一部自動/手動 | モデル自動検出 | 全面自動 | インストールで自動 | API経由で自動 |
| 拡張性 | 高い | 高い | 柔軟 | 無限 | 無限 |
呼び出し方の違い – 自動判断 vs 明示的呼び出し vs 自動実行
呼び出しタイミングや制御方法も機能ごとに明確な違いがあります。
- SubAgentはメイン会話とは別の空間で、明示的に指示することで特定のタスクを担当します。用途や権限、モデル(例:Haiku)を細かく設定でき、サブエージェントごとに専門分野を分離できます。
- SkillsはAIが自動で適切な場面を判断して呼び出します。ユーザーが意識しなくても必要な知識が適用され、会話の流れを妨げません。
- Hooksはファイル操作やイベント発生時に自動でコマンドや処理を実行します。作業の自動化やミス防止を強力にサポートします。
- Pluginは一度インストールすれば自動で機能連携され、`/プラグイン名:コマンド名`の形式で呼び出せます。
- MCPは設定後、Claudeが必要に応じて自動的に外部ツールを呼び出します。`@リソース名`でMCPリソースを参照することも可能です。
Claude Code Skillsとは – 「やり方を教える」知識ベース機能の仕組みと使い方
Claude Code Skillsは、AIエージェントが特定の作業方法や業務知識を自動的に学習・適用するための知識ベース機能です。プロジェクトの中でよく使う業務フローや手順をまとめておけば、AIが必要なタイミングで適切にサポートします。Skillsは再利用性が高く、メインコンテキストを共有する形でプロジェクト全体の品質と効率を向上させます。
Skillsの構造と動作メカニズム – SKILL.md・description・メタデータの役割
Claude Code Skillsは、主にSKILL.mdファイルで定義されます。SKILL.mdにはdescriptionやメタデータが含まれており、スキルの概要や発動条件を詳細に記述できます。
| フィールド | 説明 |
|---|---|
| name | スキルの識別名 |
| description | いつ適用するかの説明(自動検出に使用) |
| allowed-tools | 使用可能なツール |
| context: fork | 独立コンテキストで実行(オプション) |
Skillsが「自動認識」される仕組み – Claudeがどう判断するのか
Skillsが自動認識される仕組みのポイントは、AIが現在のタスクや会話内容を解析し、SKILL.mdのdescriptionやメタデータと照合するプロセスにあります。Claudeは、「このコードをレビューして」などの指示を受けたとき、関連するSkillのdescriptionを自動で参照し、最適なスキルを自動で適用します。
| 場所 | スコープ |
|---|---|
| .claude/skills/ | 現在のプロジェクト |
| ~/.claude/skills/ | 全プロジェクト共通 |
Skillsを使うべき場面 – メインコンテキストを共有したいケース
Skillsは、プロジェクト全体で同じルールや知識を共有したい場面に最適です。たとえば、複数メンバーが同じコーディング規約を守る必要がある場合や、APIドキュメントを常に最新の状態で参照したいときに効果を発揮します。
- コーディング規約の自動チェック
- APIエンドポイントや利用例の常時参照
- 共通デザインシステムの自動適用
- Xcodeビルド手順のガイドスキル
- 提案書テンプレートの自動挿入スキル
Claude Code SubAgentとは – 「仕事を任せる」独立専門家エージェント
Claude CodeのSubAgentは、メインエージェントとは独立したAI専門家として機能します。SubAgentを利用することで、複数の複雑なタスクを同時に処理し、各タスクごとに最適化されたエージェントを割り当てることができます。まるで「別室で作業する助手」のような存在です。
SubAgentの仕組みと動作原理 – 独立コンテキストウィンドウの特性
SubAgentは独立したコンテキストウィンドウを持ち、メインエージェントと情報を共有せずにタスクを処理できます。これにより、1つのプロジェクト内で複数の専門的な作業を同時進行で進めることが可能です。
- 独立した環境で作業することで、メインエージェントのコンテキストが汚染されません。
- タスク完了後、SubAgentが結果のみをメインエージェントに返すため、情報の混在を防ぎます。
- 機密情報や特定タスク専用の知識をSubAgentに限定できるため、セキュリティと効率性が向上します。
- 使えるツールを限定できるので、安全性や高速化にも寄与します。
- 軽量モデル(Haiku)を指定することで、高速・低コスト運用も可能です。
SubAgentを使うべき場面 – コンテキストを独立させたいケース
SubAgentは、タスクの内容が複雑でメインエージェントのコンテキストを分離したい場合に有効です。
- 複数のコードレビューを同時に進行
- データ解析とレポート作成を並列で実施
- それぞれのタスクが独自の知識やツールを必要とする場合
- メインコンテキストを維持したまま特定タスクだけ独立して処理
SubAgentの作り方
SubAgentは.claude/agents/ディレクトリにMarkdownファイルを作成して定義します。
| 項目 | 内容例 | 説明 |
|---|---|---|
| name | reviewer | エージェントの識別名 |
| description | コードレビュー専門AI | いつ使うかの説明 |
| tools | Read, Grep, Glob | 使用可能なツール |
| model | haiku | 使用モデル(高速・低コスト) |
| 場所 | スコープ | 優先度 |
|---|---|---|
| --agents CLIフラグ | 現在のセッション | 最高 |
| .claude/agents/ | 現在のプロジェクト | 2位 |
| ~/.claude/agents/ | 全プロジェクト | 3位 |
AIソリューションの導入をご検討ですか?
株式会社Awakでは、お客様の課題に合わせたAI導入支援・システム開発を行っています。まずはお気軽にご相談ください。
Hooksとは – イベントトリガーによる自動化ワークフロー
Hooksは「ファイル保存」や「プロンプト送信」など特定のイベントをトリガーとして、あらかじめ定義したタスクやコマンドを自動的に実行する仕組みです。これにより、ユーザーが手動で操作することなく、一連の処理を自動化できるようになります。
利用可能なイベント
| イベント | タイミング | 用途例 |
|---|---|---|
| PreToolUse | ツール実行前 | 実行をブロック、検証 |
| PostToolUse | ツール実行後 | 自動フォーマット |
| PermissionRequest | 権限要求時 | 自動許可/拒否 |
| UserPromptSubmit | プロンプト送信時 | コンテキスト追加 |
| Notification | 通知送信時 | カスタム通知 |
| Stop | 応答完了時 | 完了通知 |
| SubagentStop | サブエージェント完了時 | 続行判定 |
| SessionStart | セッション開始時 | 初期化処理 |
| SessionEnd | セッション終了時 | クリーンアップ |
Hooksの設定方法
~/.claude/settings.json または .claude/settings.json に記述します。
| 項目 | Hooks | カスタムコマンド |
|---|---|---|
| 実行タイミング | 自動 | 手動 |
| 主な用途 | 保存・更新トリガー | 任意のタイミングでの実行 |
| メリット | 作業効率化 | 柔軟な制御 |
Pluginとは – 機能のパッケージ化と配布
Pluginは、複数のSkills、SubAgent、コマンド、Hooksをひとまとめにパッケージ化し、チームで共有したり、マーケットプレイスで配布したりできる「拡張パック」です。
| 項目 | Skills | Plugin |
|---|---|---|
| 範囲 | 1つの能力 | 複数機能をまとめる |
| 共有方法 | 手動コピー | /plugin install |
| コマンド | なし | /プラグイン名:コマンド |
| 配布 | 困難 | マーケットプレイス対応 |
プラグインの構造
プラグインは以下のようなディレクトリ構造で構成されます。
.claude-plugin/plugin.json- マニフェスト(必須)commands/- スラッシュコマンドagents/- サブエージェントskills/- スキルhooks/- フック.mcp.json- MCPサーバー設定
| スコープ | 説明 | 保存場所 |
|---|---|---|
| user | 全プロジェクトで利用 | ~/.claude/settings.json |
| project | リポジトリ全体で利用 | .claude/settings.json |
| local | このリポジトリのみ | .claude/settings.local.json |
MCPとは – 外部ツール・APIとの連携プロトコル
MCP(Model Context Protocol)は、Claude Codeを数百の外部ツールとデータソースに接続するためのオープンスタンダード通信プロトコルです。MCPサーバーを設定することで、Claude Codeにデータベース、GitHub、Slack、Sentryなどへのアクセスを与えることができます。
MCPでできること
MCPサーバーを接続すると、Claude Codeに以下のようなタスクを依頼できます:
- 課題追跡システムからの実装:「JIRAのissue ENG-4521で説明されている機能を追加してください」
- 監視データの分析:「Sentryをチェックして最近のエラーを確認してください」
- データベースのクエリ:「PostgreSQLから過去1週間の売上データを取得してください」
- デザイン統合:「Figmaのデザインに基づいてUIを更新してください」
- 外部サービス連携:「Slackに進捗報告を投稿してください」
MCPの設定方法
MCPサーバーはリモートHTTPサーバーまたはローカルstdioサーバーとして追加できます。
| スコープ | 説明 | 保存場所 |
|---|---|---|
| local | 現在のプロジェクトのみ | ~/.claude.json(プロジェクト配下) |
| project | チーム全体で共有 | .mcp.json |
| user | 全プロジェクトで利用 | ~/.claude.json |
| 機能 | Skills | MCP |
|---|---|---|
| 主な用途 | 知識共有・手順ガイド | 外部ツール・DB連携 |
| 実行方法 | 会話コンテキスト内で自動適用 | API経由で外部実行 |
| 適用例 | コーディング規約、業務手順、APIドキュメント | データベース操作、外部APIコール |
Skills vs SubAgent – 「迷ったときの判断基準」を徹底解説
Claude Codeで効率的な業務設計を行うためには、SubAgentとSkillsそれぞれの違いを正確に理解し、状況に応じて使い分けることが重要です。
| 機能 | コンテキスト | 利点 | 主な用途 |
|---|---|---|---|
| Skills | 共有 | 会話の流れを活かせる | コードレビュー、手順説明 |
| SubAgent | 独立 | 他タスクと干渉しない | 競合調査、専門分野分析 |
| 項目 | Skills | SubAgent |
|---|---|---|
| トークン消費 | 抑えやすい | 多くなりやすい |
| コスト | 低コスト | 高コスト(長時間タスク向き) |
| 最適な用途 | ルーチン、短時間タスク | 長時間・大規模処理 |
判断フローチェックリスト
- タスクは他の作業と独立して進める必要があるか? → Yes: SubAgent
- 会話コンテキストの共有が必要か? → Yes: Skills
- 複数タスクの同時進行や並列処理が求められるか? → Yes: SubAgent
- トークン消費やコストは制約条件となるか? → Yes: Skills
- 処理結果の専門性や分離性が重要か? → Yes: SubAgent
5つの機能を組み合わせた実装ガイド – 最適なハイブリッド構成
Claude Codeは複数の機能を組み合わせて柔軟なワークフローを実現します。
| 機能 | 主な役割 | ファイル構成 |
|---|---|---|
| Claude.md | 全体指示・プロジェクト設定 | .claude/claude.md |
| Commands | カスタムコマンド記述 | .claude/commands/ |
| Hooks | イベントトリガー・自動化 | settings.json |
| Subagents | 専門タスクの独立AIユニット | .claude/agents/ |
| Skills | 再利用可能な知識・手順書 | .claude/skills/ |
| MCP | 外部ツール・API連携 | .mcp.json |
実装時の課題解決・応用パターン集
Skillsが自動認識されない場合の原因と対策
| 原因 | 主な症状 | 解決策 |
|---|---|---|
| description不足 | Skillsが発動しない | 明確な条件文を記載 |
| スキル名の曖昧さ | 別のSkillsと混同 | 識別しやすい名前に修正 |
| 配置エラー | Skillsが読み込まれない | 正しいディレクトリに配置 |
SubAgentのコンテキスト分離で情報が失われる場合
| 情報共有方法 | メリット |
|---|---|
| 明示的な引数渡し | 必要データの確実な伝達 |
| 共有ディレクトリ活用 | 複数SubAgent間での情報共有 |
| 中間ファイル出力 | 状態保存や再利用が容易 |
よくある質問と回答
「Skillsって、SubAgentと何が違うんですか?」
| 項目 | Skills | SubAgent |
|---|---|---|
| コンテキスト | メインと共有 | 独立 |
| 呼び出し | 自動 | 明示/自動 |
| 主な用途 | 手順や知識の注入 | 専門タスクの分担 |
「複数のSkillsを同時に使えますか?」
Claude Codeでは複数のSkillsを同時に利用できます。AIが必要に応じて自動的に複数のSkillsを判断し、適用する仕組みです。
「SubAgentの権限制限はできますか?」
SubAgentは権限設定によるセキュリティ強化が可能です。
| 設定項目 | 説明 |
|---|---|
| read-only | 読み取り専用でファイル改変不可 |
| tools | 許可するツール名を限定 |
| model | 使用するモデルを指定(haiku等) |
「Pluginを作成して他のユーザーに共有できますか?」
作成したPluginは他のユーザーと簡単に共有できます。
- Marketplace登録: Claude公式のマーケットプレイスに登録して公開
- Private Plugin: プライベート設定で限定的な共有
- GitHub連携: GitHubリポジトリを利用して配布
「MCPとPluginの違いは何ですか?」
| 項目 | MCP | Plugin |
|---|---|---|
| 目的 | 外部ツール・APIとの連携 | 機能のパッケージ化と配布 |
| 設定 | .mcp.json | .claude-plugin/ |
| 用途 | DB接続、GitHub、Slack連携など | スキル・コマンド・エージェントの共有 |
まとめ – 5つの機能の使い分け
| やりたいこと | 使う機能 |
|---|---|
| 特定タスクを隔離して実行したい | SubAgent |
| Claudeに専門知識を教えたい | Skills |
| 編集後に自動フォーマットしたい | Hooks |
| 機能をチームで共有したい | Plugin |
| 外部ツール・DBと連携したい | MCP |
これら5つの機能を適切に組み合わせることで、Claude Codeの真の力を引き出し、開発効率を最大化できます。
