Saga オーケストレーションパターン - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Saga オーケストレーションパターン

LLMs によって駆動されるワークフローがますます複雑になり、プロンプトチェーン、データ処理ステップ、ツール呼び出し、エージェントのコラボレーションにまたがるようになるにつれて、インテリジェントなオーケストレーションの必要性が不可欠です。これらのワークフローは、緊密に結合されたスクリプトや静的な事前定義された実行フローに依存するのではなく、イベント駆動型のオーケストレーションパターンとして実装できるため、LLM ベースのシステムは自律型エージェント間でマルチステップタスクを動的に調整、モニタリング、適応できます。

次の図は、オーケストレーターの例です。

Orhestrator。

イベントオーケストレーション

従来の分散システムでは、イベントオーケストレーションとは、中央コーディネーターが複数のサービスまたはタスクにまたがって制御フローを明示的に指示することで、複雑なワークフローを管理するパターンを指します。イベントコレオグラフィ (各サービスが独立して反応する) とは異なり、オーケストレーションはプロセス全体の一元化されたロジック、可視性、制御を提供します。

これは通常、次のツールを使用して実装されます。

  • AWS Step Functions – ステートフルワークフローを定義して実行する

  • AWS Lambda – オーケストレーションされたフロー内で個別のタスクを実行する

  • Amazon SQS または Amazon EventBridge – 非同期ステップまたはレスポンスをトリガーします

次の図は、Saga オーケストレーションの例です。

Saga オーケストレーション。

AWS Step Functions ワークフローは、顧客注文プロセスを管理します。

  1. 注文の作成 (AWS Lambda)

  2. インベントリの更新 (AWS Lambda)

  3. 支払いを行う (AWS Lambda)

オーケストレーターは、再試行、並列ブランチ、タイムアウト、失敗を管理することで、各ステップを調整します。

ロールベースのエージェントシステム (オーケストレーター)

エージェントシステムでは、オーケストレーターパターンはイベントオーケストレーションをミラーリングしますが、それぞれが定義されたロールまたは専門分野を持つ複数の推論エージェントにロジックを分散します。中央オーケストレーターエージェントは、タスク全体を解釈し、サブタスクに分解して、ワーカーエージェントに委任します。ワーカーエージェントはそれぞれ、特定のドメイン (研究、コーディング、要約、レビューなど) 用に最適化されています。

スーパーバイザー

  1. ユーザーは「プロジェクト概要を作成し、上位 5 つの競合相手を要約する」というクエリを送信します。

  2. オーケストレーターエージェントは以下を実行します。

    • 競合データを見つけるために調査エージェントを割り当てます

    • 未加工の検出結果を要約エージェントに送信します

    • ショートライターエージェントに結果を渡す

    • ユーザーの最終出力をコンパイルします

各エージェントは独立して動作しますが、オーケストレーターはタスクを調整します。これは、ワークフロータスクを処理する Lambda 関数のようなものです。

次の図は、スーパーバイザーの例です。

スーパーバイザー。
  1. ユーザーは Amazon Bedrock スーパーバイザーエージェントにタスクを送信します。

  2. スーパーバイザーエージェントは、エージェントコラボレーターごとにリクエストをサブタスクに解析します。

  3. 各サブタスクは、ロール固有のプロンプトまたはツールチェーンを持つ共同作業者エージェントに割り当てられます。

  4. ワーカーエージェントAPIs またはツールを呼び出します。

  5. 各ワーカーエージェントは、構造化形式で出力を返します。

  6. すべてのワーカーが結果を返すと、スーパーバイザーは評価、合成、最終レスポンスを返します。

この構造により、複雑なマルチステップエージェントワークフローでのモジュール性、適応性、イントロスペクションが可能になります。

重要事項

イベントオーケストレーションが一元管理 (例: AWS Step Functions) を使用してサービス実行を指示する場合、ロールベースのエージェントシステムは LLM 搭載のオーケストレーターエージェントを使用して、目標の理由を示し、サブタスクをワーカーエージェントに委任し、最終出力を合成します。

どちらのパラダイムでも、オーケストレーターは以下を実行します。

  • コンテキストと実行フローを維持します

  • 分岐、シーケンス、エラー処理を処理します

  • 分散コンポーネントから統一された結果を生成します

ただし、エージェントオーケストレーションは推論、適応性、セマンティック委任を追加します。これにより、オープンエンド、あいまい、進化するタスクに適しています。