概觀
Microsoft 代理程式架構工作流程可讓您建置智慧型自動化系統,將 AI 代理程式與商務程式無縫融合。 憑藉其類型安全的架構和直覺的設計,您可以編排複雜的工作流程,而不會陷入基礎設施的複雜性,從而專注於核心業務邏輯。
工作流程和代理有什麼不同?
雖然代理與工作流程可能包含多個步驟以達成目標,但它們服務於不同的目的,且運作於不同的抽象層次:
代理:代理通常由大型語言模型(LLM)驅動,並能使用多種工具協助完成任務。 代理採取的步驟是動態的,由 LLM 根據對話的上下文和可用工具決定。
工作流程:另一方面,工作流程是預先定義的操作序列,可以包含 AI 代理作為元件。 工作流程旨在處理複雜的業務流程,這些流程可能涉及多個代理、人機互動以及與外部系統的整合。 工作流程的流程已明確定義,以便更好地控制執行路徑。
主要功能
- 類型安全:強類型可確保訊息在元件之間正確流動,並透過全面的驗證來防止運行時錯誤。
-
靈活的控制流程:基於圖形的架構允許使用 和
executors對edges複雜工作流程進行直觀建模。 條件路由、平行處理、動態執行路徑都支援。 - 外部集成: 內置請求/響應模式,用於與外部 API 無縫集成,以及人機交互場景。
- 檢查點:透過檢查點儲存工作流程狀態,從而在伺服器端恢復和恢復長時間運行的進程。
- 多代理編排: 用於協調多個 AI 代理的內置模式,包括順序、並發、交接和 magentic。
工作流程 API
Microsoft Agent Framework 提供兩種互補的 API 用於建立工作流程:
-
Functional Workflow API(Python,實驗性):使用
async和@workflow裝飾器,將工作流程寫成純@step函式。 使用原生Python控制流程(if/else、迴圈、asyncio.gather)代替圖形概念。 在採用圖形 API 之前,這是個不錯的起點。 -
工作流程建構與執行:利用
WorkflowBuilder、executors、edges和 建立有向圖的工作流程。 最適合固定拓撲、型別驗證訊息路由及基於超步的平行執行。
這兩個 API 都完全支援,並產生相同的可觀察結果(事件、串流、HITL、檢查點)。 根據最適合你工作流程的方式來選擇:
功能性(@workflow) |
圖(WorkflowBuilder) |
|
|---|---|---|
| 控制流程 | 原生Python(if,循環,asyncio.gather) |
邊緣與條件 |
| 適用對象 | 序列管線、自訂迴圈、臨時平行處理 | 固定圖形、扇出/扇入、類型驗證訊息路由 |
| 平行性 | asyncio.gather |
平行邊群,超步驟執行 |
| 可檢視性 | 每個步驟的事件 @step |
執行者事件 |
| HITL | ctx.request_info() |
RequestInfoExecutor |
| 檢查點設置 | 每@step結果快取 |
超步邊界檢查點 |
| 代理封裝 |
.as_agent() 在 FunctionalWorkflow |
.as_agent() 在 Workflow |
當你想用Python表達邏輯時,可以從 @workflow 開始。 當你需要嚴格型別驗證的訊息路由或圖執行模型時,請移至 WorkflowBuilder。
核心概念
- 執行者:代表工作流程中的個別處理單元。 它們可以是 AI 代理或自訂邏輯元件。 它們接收輸入訊息、執行特定任務並產生輸出訊息。
- 邊緣:定義執行者之間的連結,決定訊息的流向。 它們可以包含根據訊息內容控制路由的條件。
- 事件:提供工作流程執行的可觀察性,包括生命週期事件、執行者事件及自訂事件。
- 工作流程建構器與執行:將執行者與邊綁定成有向圖,透過超步驟管理執行,並支援串流與非串流模式。
使用者入門
從探索入門範例開始你使用 Microsoft Agent Framework Workflows 的旅程: