Claude Code エージェント層の整理
Claude Code(クロード・コード=ターミナルで動くAI開発エージェント)には5種類の「エージェント的」プリミティブ(=基本構成要素)がある。これらを混同するとorchestration(オーケストレーション=複数エージェントの協調制御)の設計が破綻するため、それぞれの役割を明確に区別しておく必要がある。
5つの層
1つ目はSlash command(スラッシュコマンド)で、/fooのように入力して起動する、テキスト展開と権限付与を兼ねた機能である。2つ目はSkill(スキル)で、説明文が条件に一致したときに手順書を自動でコンテキストへ注入する仕組みであり、これ自体はコードを実行しない。3つ目はSub-agent(サブエージェント)で、Taskツール経由で起動する独立したLLM呼び出しであり、親とは別のコンテキストウィンドウで動く。4つ目はHook(フック)で、PreToolUse・PostToolUse・Stopなどのツールイベントに紐づけて実行するシェルスクリプトである。5つ目はMCPサーバーで、外部APIをツールとして公開し、セッション開始時に接続される。
Sub-agentの特徴
Sub-agentは完全に独立したコンテキストウィンドウで動作し、親の会話履歴を参照できない。返り値は単一メッセージのみであり、親が見るのはその結果だけである。1つのメッセージ内で複数のSub-agentを並列起動することもでき、"worktree"(ワークツリー=同じリポジトリを複数の作業ディレクトリに分けて並行編集できる仕組み)を指定すればgit worktreeも自動作成され、ファイル編集を物理的に分離できる。
Skill / Sub-agent / Hook の違い
Skillは手順をコンテキストへ注入するだけで、コードの実行もLLMの追加呼び出しも発生しない。Sub-agentは独自のLLM呼び出しによって実際の作業を行うため、重い処理や並列処理に向く。Hookはシェルスクリプトそのものであり、LLMの判断を介さないため、確実性が求められるルールはここに置くのが適切である。
未解決の課題
Sub-agentを多段にネスト(入れ子に)するとコストが指数的に膨らむため、予算管理が重要になる。Skillが自動で起動する精度は説明文の品質に完全に依存する。HookとSkillの責任境界は現時点であいまいで、自動コミットはHook、自動レビューはSkillという運用が暫定的に取られている。また、バックグラウンドジョブはSub-agentとは異なり、親のコンテキストを共有する点にも注意が必要である。
まとめ
用途に合ったプリミティブを選ぶことが肝要である。並列・分離作業にはSub-agent、手順の再利用にはSkill、定型文にはSlash command、ツール連動の自動処理にはHook、外部APIにはMCPを充てる。
出典・参考
- Claude Code documentation — 公式ドキュメント
- Subagents in the SDK — 公式ドキュメント
- Skills — 公式ドキュメント
- Slash commands — 公式ドキュメント
- Hooks — 公式ドキュメント
- Model Context Protocol — 公式サイト
関連ノート
- Browser Automation MCP 2026 — Comparing Playwright, chrome-devtools and agent-browser
- "how does <filepath> work?" — Claude Code's placeholder prompt
- Claude Code's CLAUDE.md hierarchy — which instructions reach how far
- Does Claude Code's Spawn (parallel subagent launch) really run in parallel?
- Claude Mythos and Oceanus — the cutting edge and its "version for everyone"
- Claude Code orchestration glossary, 2026-05