Saga 協同運作模式 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Saga 協同運作模式

隨著 LLMs工作流程變得越來越複雜,跨越提示鏈、資料處理步驟、工具調用和客服人員協作,智慧型協同運作的需求變得至關重要。這些工作流程可以實作為事件驅動的協同運作模式,讓 LLM 型系統在自主代理程式之間動態協調、監控和調整多步驟任務,而不是依賴緊密耦合的指令碼或靜態預定執行流程。

下圖是協調器的範例:

Orhestrator。

事件協同運作

在傳統分散式系統中,事件協同運作是指中央協調器透過明確引導多個服務或任務的控制流程來管理複雜工作流程的模式。與事件編排 (每個服務都獨立反應) 不同,協同運作提供集中式邏輯、可見性和對整個程序的控制。

這通常使用下列工具實作:

  • AWS Step Functions – 定義和執行具狀態工作流程

  • AWS Lambda – 在協調流程中執行離散任務

  • Amazon SQSAmazon 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 支援的協同程式代理程式來推斷目標、將子任務委派給工作者代理程式,以及合成最終輸出。

在這兩個範例中,協調器會執行下列動作:

  • 維護內容和執行流程

  • 處理分支、排序和錯誤處理

  • 從分散式元件產生統一的結果

不過,代理程式協同運作會新增推理、適應性和語意委派。這使得它非常適合開放式、模棱兩可和不斷發展的任務。