先に要点
AIコーディングツールやAIエージェントの説明で、サブエージェント という言葉を見ることが増えています。
ただ、似た言葉として マルチエージェント、オーケストレーター、Agent as tool、Handoff もあり、最初はかなり混乱しやすいです。
この記事では、2026年4月22日時点で OpenAI Codex、OpenAI Agents SDK、Claude Code の公式情報を確認しながら、サブエージェントとは何かを整理します。
既存の「マルチエージェント全体の話」ではなく、特にメインのエージェントから作業を分担される補助担当としてのサブエージェントに絞って見ていきます。
サブエージェントとは
サブエージェントとは、メインのAIエージェントから一部の作業を任される、役割を絞った補助エージェントです。
たとえば、メインエージェントがユーザーから「このPRを確認して」と依頼されたとします。
そのとき、メインエージェントが次のように作業を分けることがあります。
それぞれが自分の担当を調べ、最後にメインエージェントへ結果を返します。
メインエージェントは返ってきた結果をまとめて、ユーザーへ最終回答を出します。
ここで大事なのは、サブエージェントが「別人格のAI」というより、特定の小さな仕事を別の文脈で処理する担当だという点です。
なぜサブエージェントを使うのか
1. メインの文脈を汚しにくい
AIエージェントは、会話履歴、読んだファイル、コマンド結果、検索結果などを文脈として持ちます。
大きなログや大量の検索結果をメインの会話に全部入れると、重要な判断材料が埋もれやすくなります。
Claude Code の subagents ドキュメントでも、サブエージェントは自分の context window で作業し、メイン会話には要約だけを返すことで、探索結果やログでメイン会話が膨らむのを避ける使い方が説明されています。
つまり、サブエージェントは 大量に調べる作業 と 最終判断する作業 を分けるために使えます。
2. 役割を狭くできる
1体のAIに「調べて、実装して、レビューして、テストして、まとめて」と全部頼むと、途中で目的がぶれやすくなります。
サブエージェントにすると、担当を狭くできます。
たとえば、
| サブエージェント | 任せること | 任せないこと |
|---|---|---|
| 調査担当 | 関連ファイル、公式情報、既存仕様を探す | 実装変更や最終判断 |
| レビュー担当 | バグ、回帰、セキュリティ、テスト不足を見る | 勝手な修正 |
| テスト担当 | テスト実行、失敗ログの要約、再現条件の整理 | 仕様変更の判断 |
| 文章校正担当 | 表記ゆれ、読みやすさ、見出しの違和感を見る | 記事の結論を変えること |
このように境界を決めると、メインエージェントが「誰に何を頼むべきか」を判断しやすくなります。
3. 並列で進められる
独立した作業なら、サブエージェントを並列に動かすことで待ち時間を減らせます。
OpenAI Codex の subagents ドキュメントでも、複雑で並列化しやすい作業、たとえばコードベース探索や複数ステップの機能計画で役立つと説明されています。
たとえば、PRレビューで次を同時に見る形です。
- セキュリティ上の問題
- バグや回帰
- テスト不足
- 保守性
- 競合やレース条件
それぞれが独立していれば、1つずつ順番に見るより速く終わることがあります。
ただし、依存関係が強い作業を無理に並列化すると、かえって統合が難しくなります。
マルチエージェントとの違い
サブエージェントは、広い意味ではマルチエージェント構成の一部です。
ただし、ニュアンスは少し違います。
| 言葉 | 主に見ているもの | ざっくり言うと |
|---|---|---|
| サブエージェント | メインから呼ばれる補助担当 | 親の仕事を一部引き受ける子の担当 |
| マルチエージェント | 複数エージェントを組み合わせる構成全体 | AIを複数に分けて連携させる設計 |
| オーケストレーター | 誰に何を任せるかを決める中心 | 分業の進行管理役 |
| Agent as tool | 専門エージェントをツールとして呼ぶ設計 | メインが会話を持ったまま専門担当を使う |
| Handoff | 会話や担当を別エージェントへ渡す設計 | 窓口そのものを専門担当へ切り替える |
つまり、サブエージェントは「複数AIを使う」というより、メインの作業から一部を切り出して任せるという見方の言葉です。
CodexとClaude Codeでのサブエージェント
サブエージェントは一般概念としても使われますが、製品ごとに少し振る舞いが違います。
Codexの場合
OpenAI Codex の公式ドキュメントでは、Codex が specialized agents を並列に spawn し、その結果を1つの回答へ集約できると説明されています。
また、Codex はサブエージェントを明示的に頼まれたときにだけ spawn する、と案内されています。
実務的には、次のような使い方です。
- 「このPRを観点ごとに分けてレビューして」
- 「1つの観点につき1エージェントを立てて」
- 「全部の結果を待って、最後に要約して」
Codex 側では built-in agents として、実装向けの worker、読み取り中心の explorer などの役割も示されています。
つまり、作業の種類によって担当を切り替えやすい設計です。
Claude Codeの場合
Claude Code の公式ドキュメントでは、subagents は task-specific workflows と context management のための specialized AI assistants として説明されています。
各サブエージェントは独自の context window、system prompt、tool access、permissions を持てます。
Claude Code では、.claude/agents/ や ~/.claude/agents/ にMarkdown形式でカスタムサブエージェントを定義する流れが案内されています。
また、調査やログ処理のような大量出力をサブエージェントに隔離し、メイン会話には必要な要約だけ返す使い方が強く意識されています。
ここから分かるのは、サブエージェントは単なる「AIを増やす機能」ではなく、文脈、権限、役割を分けるための設計部品だということです。
使うとよい場面
サブエージェントが向いているのは、次のような場面です。
大量の調査が必要
ファイル検索、公式ドキュメント確認、長いログ解析など、メイン会話に全部入れると重くなる作業に向いています。
観点を分けたい
セキュリティ、性能、テスト、保守性のように、PRレビューや設計レビューを観点別に見るときに使いやすいです。
読み取り専用にしたい
調査担当やレビュー担当には編集権限を与えず、読むだけにすると安全に使いやすくなります。
安いモデルへ回したい
単純な検索や分類なら、メインより軽いモデルへ任せることでコストを抑えられる場合があります。
特にAIコーディングでは、読み取り専用の調査担当を置くと便利です。
いきなり編集するのではなく、まず関連ファイルや仕様を調べるだけの担当に切り出せるからです。
使わない方がよい場面
一方で、サブエージェントが不要な場面もあります。
- 5分で終わる小さな修正
- 調査と実装を強く行き来する作業
- 依存関係が強く、分けるほど説明が増える作業
- 最終判断を誰が持つか決めていない作業
- コストや実行時間を厳密に読みたい作業
小さい作業にサブエージェントを使うと、呼び出し、待機、結果統合の方が重くなることがあります。
「分けられるから分ける」ではなく、分けることでメインの判断が楽になるかを見る方が現実的です。
設計で決めること
サブエージェントを使うなら、最低でも次を決めておきたいです。
| 決めること | 見るポイント |
|---|---|
| 役割 | 調査、レビュー、実装、テストなど、何を担当するか |
| 権限 | 読むだけか、編集できるか、コマンド実行できるか |
| 入力 | どの情報を渡すか、どこまで前提を共有するか |
| 出力 | 要約、箇条書き、重大度順、差分案など、どう返すか |
| 停止条件 | いつ終わりにするか、失敗時にどう戻すか |
| 人間の確認 | 本番変更、外部送信、削除、課金などで承認を挟むか |
ここを決めないままサブエージェントを増やすと、同じことを何度も調べたり、誰の結論を採用すべきか分からなくなったりします。
よくある誤解
サブエージェントを増やせば精度が上がる?
自動的には上がりません。
役割がきれいに分かれていて、結果を統合するメインエージェントが判断しやすい場合には効果があります。
逆に、担当が曖昧だと、同じファイルを別々に読み、似た結論を返し、最後に統合だけが難しくなります。
サブエージェントは完全に独立して動く?
製品や設計によります。
Claude Code のように独自の context window を持つ説明があるものもあれば、親のセッションや設定、権限を引き継ぐものもあります。
大事なのは、独立しているように見える ではなく、実際にどの情報、権限、モデル、ログが共有されるかを確認することです。
自動で適切な担当を選んでくれる?
これも過信しない方がよいです。
説明文や指示が曖昧だと、呼ぶべきでないサブエージェントを呼んだり、逆に必要な担当を使わなかったりします。
特に本番運用では、呼び出し条件を明確にし、重要操作には Human-in-the-loop を置く方が安全です。
初心者はどう覚えるとよいか
最初は、次のように覚えると分かりやすいです。
- メインエージェント: 全体の依頼を受けて、最終回答をまとめる担当
- サブエージェント: 一部の作業を別の文脈で処理して、結果を返す担当
- オーケストレーター: 誰に何を任せるかを決める進行管理役
- マルチエージェント: これらを含む複数AI連携の広い呼び方
サブエージェントは、AIを増やすための言葉ではなく、仕事を小さく切って、文脈と権限を分けるための言葉です。
ここを押さえると、Codex や Claude Code の説明もかなり読みやすくなります。
まとめ
サブエージェント は、メインの AIエージェント から一部の作業を任される補助担当です。
調査、レビュー、テスト、ログ解析のように、メインの会話を重くしやすい作業を別文脈へ逃がすときに役立ちます。
ただし、サブエージェントを増やせば自動的に高品質になるわけではありません。
重要なのは、役割、権限、入力、出力、停止条件、人間の確認点を決めることです。
全体像から見たい場合は マルチエージェントとは?複数のAIエージェントを分けて使う意味と注意点を整理、中心役との違いを見たい場合は オーケストレーターとは?AIエージェント設計で役割分担を束ねる基本を整理 もつながります。
参考リンク
- OpenAI Developers: Subagents - Codex
- OpenAI Agents SDK: Agent Orchestration
- OpenAI: Introducing Codex
- Claude Code Docs: Create custom subagents