サブ Agent は一時的なもので、独自の識別子、記憶、チャネルを持たず、Agent 一覧にも表示されません。
2 つの効果
- コンテキストの分離:途中の作業がメインの会話のコンテキストを消費しないため、トークンを節約でき、モデルの注意も必要な内容に集中します
- 並列実行:複数のサブ Agent を同時に作成して動かせるため、全体の所要時間は最も遅い 1 つ分で済みます
引き継ぐもの・引き継がないもの
サブ Agent はメイン Agent の環境の一部を引き継ぎますが、コピーではありません:
そのため、サブ Agent はメイン Agent から渡された内容しか知りません。会話履歴を見ることも、ユーザーに質問することもできないので、必要なパス、識別子、制約、すでに決まっている前提は、タスクを作成する時点ですべて書き込む必要があります。
実行されるタイミング
メイン Agent が自分で判断します。設定も専用のコマンドも必要ありません。 サブ Agent が作成される場合:- 互いに依存しない複数の作業を同時に進められるとき(例:「A と B の 2 つの製品をそれぞれ調べて」)
- 途中の出力は大量だが、必要なのは結論だけのとき(例:「このエラーに既知の解決策があるかコミュニティで調べて」)
- 途中の結果がないとメイン Agent が先に進めないとき(ファイルを数個読む、数回検索する程度は通常の実行です)
- タスクが会話の前の内容に依存する、または途中でユーザーへの確認が必要なとき
- この会話を超えて長期的に実行するタスク。これには定期タスクを使います
実行中の表示
サブ Agent は Web コンソールとデスクトップクライアントでそれぞれ 1 枚のカードとして表示されます。展開すると、呼び出し中のツールとそこまでの手順を確認でき、完了後はカードの中にレポートが入ります。複数のサブ Agent は個別に開始・終了するため、どれがまだ実行中かがそのまま分かります。
種類と設定
サブ Agent にはgeneral-purpose、explore の 2 つの組み込みタイプがあり、ワークスペースでのカスタムタイプにも対応します。タイプ、利用できるツール、並行数やタイムアウトなどの設定、および無効化されるツールは、subagent ツールを参照してください。