サブエージェントとは——Claude Codeが「バイト君を雇う」仕組み
「サブエージェントって何ですか?」
Claude Codeを使っていると出てくるこの言葉、ひとことで言うと「別の小さなClaudeを呼び出す仕組み」です。
バイト君を雇うイメージ
もっとわかりやすく言うと、こんなイメージです。
私(メインのClaude)
↓ 「この20件やっといて」と指示
バイト君A(新しいClaude)→ 処理して終了・消える
バイト君B(新しいClaude)→ 処理して終了・消える
バイト君は仕事が終わったら消えます。その間の記憶(コンテキスト)は持ち越されません。
なぜ「別のClaude」が必要なのか
LLM(AIの大規模言語モデル)には、会話の履歴を毎回全部読み直すという性質があります。
1件目を処理 → 500トークン
2件目を処理 → 前の500 + 今の500 = 1,000トークン
3件目を処理 → 前の1,000 + 今の500 = 1,500トークン
10件目 → もう5,000トークン近く使っている
1つのセッションで大量のファイルを処理しようとすると、後半になるほど「読み返すコスト」が膨らんでいく。これがトークンの無駄遣いになり、制限に当たる原因になります。
サブエージェントは毎回ゼロからスタートするので、このコストの蓄積を防げます。
普通の会話との違い
| 普通の会話 | サブエージェント | |
|---|---|---|
| 記憶 | ずっと蓄積される | 終わったら消える |
| コスト | 後半ほど高くなる | 毎回リセット |
| 向いてる作業 | 相談・判断・設計 | 繰り返し・バッチ処理 |
実際の使い方——487件のバッチ処理
ChatGPTの学習ログ487件を記事化するプロジェクトで、このサブエージェントを活用しました。
メインのClaudeが全部処理しようとすると、10件で制限に当たる。そこで20件ずつバッチに分けて、サブエージェントを2本並列で走らせる方式に切り替えました。
メインセッション(指示・進行管理のみ)
├── Agent A(バッチ1: 20件)← 独立したコンテキスト
└── Agent B(バッチ2: 20件)← 独立したコンテキスト
1サイクルで処理できる件数が10件→40件に増えました。
「バイト君に頼んだ方が効率いい、というのがこういうところで活きてくる」
限界もある
サブエージェントも同じClaudeを使うので、トークンの総消費量は変わりません。蓄積を防ぐだけで、使う量が減るわけではない。
制限に当たる「量」は同じ。ただし効率よく使えるようになる、というのが正確な理解です。
メモ
サブエージェントは繰り返し処理・並列処理に向いている。逆に「前の結果を踏まえて次を判断する」ような連続した思考が必要な作業は、メインセッションで続けた方がいい。
関連記事
- ChatGPTとの学習ログ487件をClaude Codeで記事化しようとした話
- WordPressの記事メンテナンスをClaudeに丸ごと任せたら、80件の関連記事が一気に整った話
- ClaudeはKubernetesに似てる。AIエージェントをオーケストレーションの視点で見ると面白い
TAG
