AIエージェントの開発において、「複数の視点から同時に情報を集め、それをスマートにまとめたい」と考えたことはありませんか?
Google ADK(Agent Development Kit)を使えば、複雑な並列処理も驚くほどシンプルに、かつ強力に実装できます。
今回は、私が実際に手がけたインシデント分析AIシステムの事例をもとに、ParallelAgent、SequentialAgent、そしてAgentToolを組み合わせた「並列検索パターン」の実装方法を徹底解説します。
開発システムの概要:多角的なインシデント分析
今回構築したのは、企業向けのインシデント分析AIシステムです。ユーザーから報告されたトラブルに対し、複数のエージェントが連携して根本原因を分析し、再発防止策を提案します。
特に重要だったのが原因分析フェーズです。社内に蓄積された膨大なナレッジをRAG(Retrieval-Augmented Generation)で検索するにあたり、より多角的な知識を引き出すため、設計上の判断として観点ごとにエージェントを分ける構成を採用しました。
設計上の判断:観点ごとにエージェントを分ける
LLMは、1つのエージェントに「このナレッジを調べて」と指示しても、最初に目についた情報に引きずられやすく、異なる切り口の知識を均等に引き出すのが苦手です。そこで、観点ごとにエージェントを独立させる設計を採用しました。
| エージェント | 担当する観点 | 検索キーワード例 |
| search_agent1 | 観点A | 認知エラー、スリップ、バイアスなど |
| search_agent2 | 観点B | 作業環境設計、配置基準など |
| search_agent3 | 観点C | 組織風土、コミュニケーション不全など |
これら3つのエージェントは独立して動作できるため、ParallelAgentによる並列実行が最適です。
これにより、精度向上だけでなく、処理時間の短縮も実現しました。
全体構成図
システムの全体像は以下の通りです。並列検索の完了を待ってから要約を行うため、エージェントを入れ子構造にするのがポイントです。
- ParallelAgent: 3つの検索エージェントを同時に走らせる。
- summary_agent: 検索結果を統合し、
session.stateに保存。 - SequentialAgent: 上記1と2を「順番に実行」するよう制御。
- AgentTool: 全体をラップし、メインエージェントからは「1つのツール」として見せる。
実装ステップ
それでは、具体的なコード構成を見ていきましょう。
1. 観点ごとの検索エージェントを定義
同じ検索ツール(search_knowledge_datastore)を使いつつ、instructionで個性を出します。
Python
2. ParallelAgent による並列化
Python
3. 要約エージェントと順序制御
並列検索が終わった後に実行されるエージェントを作成します。
Python
4. AgentTool でのカプセル化
ここが最大のテクニックです。複雑な工程を1つの「ツール」にしてしまいます。
Python
まとめ:このパターンのメリット
- 多角的な情報収集: 観点ごとにエージェントを分けることで、情報の抜け漏れを防ぎ、精度の高いRAGを実現できます。
- 高速なレスポンス:
ParallelAgentを活用すれば、エージェントが何人増えても待ち時間は「最も遅い1人の処理時間」で済みます。 - 完璧な実行順序:
SequentialAgentを組み合わせることで、「全員の検索が終わってからまとめる」というロジックを確実に実行できます。 - シンプルなメインロジック:
AgentToolでラップすることで、呼び出し元は内部の複雑さを気にせず、スマートにツールを呼び出すだけでOKです。
Google ADKを活用すれば、こうした高度なエージェント・オーケストレーションが標準機能だけで実装可能です。ぜひ皆さんのシステムにも取り入れてみてください!
最後まで読んでいただきありがとうございました。この記事が、あなたのAIエージェント開発のヒントになれば幸いです。もし役に立ったと思ったら、ぜひシェアをお願いします!