コンテンツにスキップ

ワークフローエージェント

ADKでサポートPythonGoJava

このセクションでは、「ワークフローエージェント」を紹介します。これは、サブエージェントの実行フローを制御する、特化したエージェントです。

ワークフローエージェントは、純粋にサブエージェントの実行フローをオーケストレーションするために設計されたADKの特化したコンポーネントです。その主な役割は、他のエージェントがいつどのように実行されるかを管理し、プロセスの制御フローを定義することです。

動的な推論と意思決定のために大規模言語モデルを使用するLLMエージェントとは異なり、ワークフローエージェントは事前に定義されたロジックに基づいて動作します。オーケストレーション自体にLLMを参照することなく、そのタイプ(例:シーケンシャル、パラレル、ループ)に従って実行順序を決定します。これにより、決定論的で予測可能な実行パターンが実現します。

ADKは、それぞれが異なる実行パターンを実装する3つのコアなワークフローエージェントタイプを提供します。

  • シーケンシャルエージェント


    サブエージェントを順番に一つずつ実行します。

    詳細はこちら

  • ループエージェント


    特定の終了条件が満たされるまで、サブエージェントを繰り返し実行します。

    詳細はこちら

  • 並列エージェント


    複数のサブエージェントを並列で実行します。

    詳細はこちら

なぜワークフローエージェントを使用するのか?

ワークフローエージェントは、一連のタスクやエージェントがどのように実行されるかを明示的に制御する必要がある場合に不可欠です。これらは以下を提供します。

  • 予測可能性: エージェントのタイプと設定に基づいて実行フローが保証されます。
  • 信頼性: タスクが必要な順序やパターンで一貫して実行されることを保証します。
  • 構造: 明確な制御構造内でエージェントを構成することにより、複雑なプロセスを構築できます。

ワークフローエージェントが制御フローを決定論的に管理する一方で、それがオーケストレーションするサブエージェントは、インテリジェントなLLMエージェントのインスタンスを含む、あらゆるタイプのエージェントであり得ます。これにより、構造化されたプロセス制御と、柔軟なLLM駆動のタスク実行を組み合わせることが可能になります。