リサーチタスク向けのオーケストレーター・ワーカーエージェントを構築する
使うタイミング: 1回のLLMパスでは処理しきれないが、並列サブタスクに分解可能なタスク(例: 競合10社のリサーチ)。
前提条件
- Python 3.10+ — standard
- エージェントに使用させたいMCPサーバー — mcp-agentのコンフィグに記載する
フロー
-
ワーカーエージェントを定義する2つのAgentを作成 — firecrawlサーバーを使う
scraperと、filesystemを使うwriter。それぞれに特化したインストラクションセットを設定します。✓ コピーしました→ 2つのAgentインスタンス -
オーケストレーターを接続する
create_orchestrator(planner_llm=..., workers=[scraper, writer])でラップします。最大イテレーション数 = 10。✓ コピーしました→ Orchestratorがプランと実行ハンドルを返す -
実際のタスクを実行する実行: 'GitHub上で評価の高いPostgres MCPトップ5をリサーチし、それぞれについて1ページのサマリーを./reports/<slug>.mdに書き出してください。'✓ コピーしました→ 一貫性のある内容で5ファイルが生成される
結果: 手動のマルチステップ作業で30分かかるものを3〜5分で完了できる並列化エージェント。
注意点
- Orchestratorがサブタスクを多すぎるまたは少なすぎる数に分割する — プランナーLLMに明示的なガイダンスを与える: '3〜7個のサブタスクに分割し、各タスクは5分以内の作業量にすること'
- ワーカーが同じデータを重複取得する — アプリステートを通じてキャッシュを共有するか、プランを通じて結果を明示的に受け渡す