claude-agents-spec.mdupdated 2026-08-011,367 chars

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を​充てる。

出典・参考

148 notestil