サブエージェント
PRX は実行中のエージェントセッション内からサブエージェント(子エージェント)のスポーンをサポートします。これにより並列タスク分解が可能となり、親エージェントが並行実行される専門の子エージェントに作業を委譲できます。
概要
サブエージェントは軽量なエージェントインスタンスで、以下の特徴があります:
- 親のプロバイダー設定と認証情報を共有
- 独自の会話履歴とメモリスコープを持つ
- 親のサンドボックスポリシー内で実行
- 完了時に結果を親に報告
スポーンモデル
親エージェントは組み込みの spawn_agent ツールを通じてサブエージェントをスポーンできます。各子エージェントは以下を受け取ります:
- タスク説明(システムプロンプトのオーバーライド)
- オプションの許可ツールセット(親のツールのサブセット)
- 最大ターン予算
Parent Agent
├── Sub-agent 1 (research task)
├── Sub-agent 2 (code generation)
└── Sub-agent 3 (validation)並行性制限
リソース枯渇を防止するため、PRX は並行性制限を強制します:
toml
[agent.subagents]
max_concurrent = 4
max_depth = 3
max_total_spawns = 20
child_timeout_secs = 300- max_concurrent -- 同時実行される子エージェントの最大数
- max_depth -- 最大ネスト深度(サブエージェントがサブエージェントをスポーン)
- max_total_spawns -- ルートセッションあたりの総スポーン予算
- child_timeout_secs -- 個々の子エージェント実行のタイムアウト
深度制御
各サブエージェントはその深度レベルを追跡します。最大深度に達すると、spawn_agent ツールが子エージェントの利用可能なツールから削除され、それ以上のネストが防止されます。
結果集約
すべての子エージェントが完了すると、結果が収集されツールコール結果として親エージェントに提示されます。親エージェントはそれらの出力を統合して最終レスポンスを生成できます。
関連ページ
- エージェントランタイム -- アーキテクチャ概要
- エージェントループ -- コア実行サイクル
- セッションワーカー -- プロセス分離