サブエージェントとは?セッションとの違いと、作業を分けて任せる仕組み

サブエージェント、作業を分けて、任せるしくみ。寅次郎先生と記事の内容を表すイラスト。
確認日:2026年10月7日

プログラミング用のAIエージェントを使っていると、「サブエージェント」と「セッション」という言葉をよく目にします。どちらも「AIとのやりとりのまとまり」に見えますが、誰が始めて、何を覚えていて、誰と話すのかは同じではありません。

本記事では、AIエージェントの開発元の公式ドキュメントをもとに、2つの違いと、サブエージェントを使う理由を解説しましょう。

サブエージェントとは

サブエージェントは、AIエージェントが作業の一部を任せるために立てる、別のエージェントです。

利用者と会話するセッションの中で、メインのエージェントがサブエージェントAとBに仕事を渡し、サブエージェントが自分のコンテキストで作業して要約だけを返す様子を示す図

利用者と話しているのは、メインのエージェントです。メインのエージェントは、「このフォルダーから関係するファイルを探す」「テストを実行して失敗の原因を調べる」といった仕事を、サブエージェントに渡します。サブエージェントは自分だけのコンテキストウィンドウで作業し、終わると結果の要約をメインのエージェントに返して役目を終える仕組みです。

指揮役のエージェントが複数の作業役に仕事を振るこの形を、Anthropicはorchestrator-worker(指揮役と作業役)と呼んでいます。作業役どうしは並行して動けるため、互いに関係のない調べ物を同時に進めることも可能です。

なぜコンテキストを分けるのか

サブエージェントを使う一番の理由は、メインのエージェントが読む量を減らすことにあります。

1つのエージェントで進めるとメインのコンテキストが途中の出力で埋まり、サブエージェントに任せると依頼と指示、2つの要約だけが入って空きが残ることを比べた図

1つのエージェントだけで作業すると、途中の出力がすべて会話の中に積み重なっていきます。検索の結果も、読んだファイルの中身も、コマンドの出力も同じです。Codexのドキュメントは、これで起きる問題を2つ挙げていました。途中の出力に大事な情報が埋もれること(context pollution)と、会話が関係の薄い細部で埋まるにつれて性能が落ちること(context rot)です。

サブエージェントに任せれば、途中の出力はサブエージェントの中にとどまります。メインのエージェントに届くのは要約だけです。Anthropicの技術記事によると、サブエージェントは細かく調べても、返すのは多くの場合1,000〜2,000トークンほどの要約にすぎません。メインのエージェントは、利用者の依頼と、まとめられた結果だけを見て、次の判断に集中できます。

セッションとの違い

セッションは利用者とAIエージェントの1本の会話です。利用者が始め、やりとりはすべて記録されます。

利用者が別々に始めたセッション1と2は会話を共有せず、セッション2の中ではメインのエージェントがサブエージェントに仕事を任せて要約を受け取ることを示す図

セッションどうしは独立していて、新しいセッションは前のセッションの会話を持ちません。そのかわり、会話は手元に保存されるので、閉じたセッションを開き直して続きから進められます。

サブエージェントは、そのセッションの中で、メインのエージェントが立てるものです。違いを表にまとめると、次のようになります。

セッション サブエージェント
始める人 利用者 メインのエージェント
話す相手 利用者 メインのエージェントだけ
最初に持っている情報 空の状態から始まり、会話が積み重なる 渡された指示だけ
終わり方 利用者が閉じるまで続き、あとで再開できる 仕事を終えると、要約を返して終わる
分けるもの 別々の作業や、別の日の作業 1つの作業の中の役割

どちらも、コンテキストウィンドウを分ける仕組みという点では同じです。セッションは利用者が作業の単位で分け、サブエージェントはエージェントが1つの作業の中で分けると考えると、区別しやすくなります。

任せるときの注意

サブエージェントは便利ですが、使うたびに費用と手間がかかることも知っておきましょう。

まず、サブエージェントはそれぞれが自分でモデルを呼び出し、ツールを使うため、全体で使う量が増えます。Anthropicの調査用のシステムでは、エージェントは普通のチャットの約4倍、複数のエージェントを組み合わせた構成では約15倍のトークンを使っていました。Codexのドキュメントも、同じ仕事を1つのエージェントで進めるより多くのトークンを使うと明記しています。

次に、サブエージェントはメインの会話を知りません。メインのエージェントが渡した指示だけを頼りに作業するので、指示があいまいだと、同じ調べ物を重ねたり、必要なところを調べ残したりします。Anthropicは、目的、返してほしい結果の形、使う道具や情報源の目安、仕事の範囲を伝えるよう勧めていました。

すべての仕事に向くわけでもありません。全員が同じ文脈を共有しなければならない仕事や、互いの結果に強く依存する仕事は、分けても速くなりにくいからです。Anthropicの記事は、プログラミングの作業は調査に比べて並行にできる部分が少ない、とも書いています。小さな作業なら、メインのエージェントがそのまま進めたほうが速く、安く済むでしょう。

製品での使われ方

ファイルやコマンドを扱うAIエージェントの製品には、サブエージェントを使う機能を持つものがあります。ここでは、Claude CodeとCodexを例に挙げましょう。

Claude Codeには、最初から3つのサブエージェントが用意されています。読み取り専用で調べ物をするExplore、計画を立てる前の調査をするPlan、すべてのツールを使えるgeneral-purposeです。自分用のサブエージェントを作るときは、.claude/agents/ にMarkdownのファイルを置き、名前と説明を書きます。本文が、そのサブエージェントへの指示です。頼まれなくても、Claudeがこの説明を読んで自分の判断で任せる場合もある点に注意してください。

Codexにも、default、worker、explorer の3つが最初から用意されています。自分用のサブエージェントは、.codex/agents/ にTOMLのファイルを置いて作る仕組みです。手元のCodexがサブエージェントを立てるのは、利用者が直接頼んだときか、プロジェクトの指示にあるときに限られます。サブエージェントは、親のサンドボックスの方針と承認の設定を引き継ぐので、任せたからといって権限が広がることはありません。

どちらの製品でも、「この不具合の原因を、サブエージェントで調べて」のように頼めば、メインのエージェントがサブエージェントに仕事を渡してくれます。

参考にした一次情報

当サイトが作成した本文はCC BY 4.0です。引用画像は対象外です。AIエージェントの記事の一覧へもどる