サブエージェントとは
サブエージェントとは、普段使っているメインコンテキストウィンドウとは別に、独自のコンテキストウィンドウを持つエージェントのことです。サブエージェントを起動すると、メインのコンテキストは使わずに、空っぽの状態から新しいコンテキストでスタートします。
.claude/agents フォルダ配下にエージェントをいろいろ作ることができますが、それらはすべてサブエージェントです。
サブエージェントの仕組み
サブエージェントが起動すると、システムプロンプトのみが入った空の状態から新しくコンテキストを使っていきます。メインコンテキストとは完全に分離された独自の記憶空間を持っています。
サブエージェントのコンテキストが埋まると、会話の要約(サマリー)をメインのコンテキストに返す仕組みがあります。これにより、メインコンテキストはサブエージェントが何をやったのかを知ることができます。
コンテキストエンジニアリングの原理原則
コンテキストエンジニアリングの原理原則として、メインのコンテキストを汚染せずに、サブエージェントを活用して役割分担をきれいに行うことが重要です。掘りごと(タスクごと)にきちんとコンテキストを埋めることができれば、しっかりとした出力をClaude Codeから得られます。
複数のサブエージェントによる役割分担
Claude Codeをうまく使いたい、自律的に品質の良いものを作らせたいという場合は、サブエージェントを複数用意して、それぞれに役割を持たせます。人間の世界と同様に、以下のような役割分担が考えられます。
- UI/UXデザイナー
- フロントエンドエンジニア
- バックエンドエンジニア
- レビュアー
これらのサブエージェントをうまくオーケストレーション(連携)し、橋渡しを行う仕組みづくりをすることが「ハーネスエンジニアリング」です。
Agent Teamsの登場
最近では「Agent Teams」という機能も登場し、複数のサブエージェントを用意して自律的に稼働させることが可能になってきました。
サブエージェントを1つだけでなく、必要に応じてカスタムのエージェントを作り、並列で実行させることが、中級者・上級者のClaude Codeの使い方になります。