サブエージェントとは——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を使うので、トークンの総消費量は変わりません。蓄積を防ぐだけで、使う量が減るわけではない。

制限に当たる「量」は同じ。ただし効率よく使えるようになる、というのが正確な理解です。

メモ
サブエージェントは繰り返し処理・並列処理に向いている。逆に「前の結果を踏まえて次を判断する」ような連続した思考が必要な作業は、メインセッションで続けた方がいい。

関連記事

ブログ

BLOG

PAGE TOP