🐕

Agentic AI / Multi Agent Orchestration を整理する

に公開

目的

Agentic AI, Multi-Agent を理解して自分の言葉で説明しなおす。
一般用語とGoogleADKの用語が混ざっているため、随時整理していく予定です。
※参照文献の内容を自分なりに再整理した内容になっています。

用語

  • Agentic AI
    自律的にタスクを分解し、ツールを呼び出し、目標に向かって動くLLMシステム
  • Multi-Agent Orchestration
    それぞれ異なる役割を持ったAgentic AIが協調・協業して目的に向かって動くシステム

Multi-Agent Orchestration

エージェント協業方式

  1. Coordinator/Dispatcher Pattern
    中心となるエージェントがそれぞれの役割を持った複数のサブエージェントを管理する。

  2. Sequential Pipeline Pattern
    SequentialAgent が事前に定義された順番でサブエージェントを実行していく。

  3. Parallel Fan-Out/Gather Pattern
    ParallelAgent が複数のサブエージェントを同時に実行し、多くの場合はその後別のエージェントが結果を集約する。

  4. Hierarchical Task Decomposition
    複雑な目標を上位のエージェントが分解し、下位のエージェントにサブタスクとして渡す、多層的なエージェントのツリー構造。

  5. Review/Critique Pattern (Generator-Critic)
    ジェネレーター(回答を生成)とレビュアー(回答をレビュー)の役割をもった2つのエージェントが協業することでアウトプットの品質を上げる。

  6. Iterative Refinement Pattern
    LoopAgent内に定義された1つ以上のエージェントを繰り返し使用することで、アウトプットの品質を上げる。

  7. Human-in-the-Loop Pattern
    エージェントのワークフローに、人間の介入ポイントを組み込む。人間による監督、承認、修正、あるいはAIでは実行できないタスクを可能にする。

エージェント間コミュニケーション方式

  1. Shared Session State
    同じ InvocationContext を共有しているエージェント間で、session.state を通じてデータを受け渡す。SequentialAgent(逐次実行)や LoopAgent(ループ内でのデータ引き継ぎ)に適している。

  2. LLM-Driven Delegation
    LLM が「どのエージェントに処理を委ねるか」を判断して、transfer_to_agent() という関数呼び出しを生成する。ターゲットエージェントには 明確な description を与えておく必要がある。

  3. Explicit Invocation
    あるエージェントを「ツール」としてラップして、他のエージェントから明示的に呼び出せるようにする。通常のツール呼び出しと同じ感覚で、エージェントを使える。

参考文献

Discussion