AI

LangGraph:使用 LangChain 構建有狀態的多代理工作流程

LangGraph 是一個將有狀態的多代理工作流程建模為圖形的框架,擴展 LangChain 以實現複雜的代理編排。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
LangGraph:使用 LangChain 構建有狀態的多代理工作流程

第一代 LLM 代理遵循一個簡單、可預測的迴圈——思想、行動、觀察的 ReAct 模式。但現實世界的應用程式需要更複雜的編排:多個代理協同工作、條件分支、人類監督、跨複雜工作流程的持久狀態,以及迴圈回溯以進行改進的能力。LangGraph 提供了使這些模式成為可能的基於圖形的架構。

LangGraph 將 LangChain 的代理能力從線性鏈擴展到有向圖,其中每個節點是一個計算步驟,邊定義控制流程。這個看似簡單的推廣——從鏈到圖——啟用了一個巨大的、以前不可行的代理架構範圍。

該框架誕生於一個認識:複雜的代理工作流程不能以簡單的序列來表達。一個反思自身發現的研究助手、一個運行測試並在失敗時迭代的編碼代理、一個代理挑戰彼此結論的多代理辯論系統——這些都需要具有迴圈、分支和持久狀態的基於圖形的執行模型。


LangGraph 的圖形架構如何運作?

LangGraph 將代理工作流程建模為有狀態圖,其中節點是計算,邊定義流程。

graph TD
    A[START] --> B[代理節點\nLLM 推理]
    B --> C{決策邊}
    C -->|需要工具| D[工具執行節點]
    C -->|完成| E[生成回應]
    D --> B
    E --> F[END]
    B --> G[人在迴圈\n中斷點]
    G -->|批准| D
    G -->|修改| B

圖結構支援迴圈(代理返回以收集更多資訊)、分支(條件執行路徑)和並行執行(多個節點同時運行)。


LangGraph 支援哪些工作流程模式?

LangGraph 的靈活性啟用了超出基本 ReAct 迴圈的廣泛代理編排模式。

模式說明使用案例
簡單 ReAct標準代理迴圈(思考-行動-觀察)基本問答、簡單任務
監督者一個代理委派給專家代理研究助手、客戶支援
代理即工具代理可以調用其他代理作為工具巢狀問題分解
層級團隊經理代理協調子代理軟體開發團隊模擬
Map-reduce多個代理並行,結果合併資料分析、文件審查
反思代理生成輸出,然後自我批評內容生成、程式碼審查
人在迴圈工作流程暫停等待人類批准敏感操作、內容審核

每種模式都可以透過定義適當的圖結構、節點和邊路由邏輯來實作。


LangGraph 中的狀態管理如何運作?

LangGraph 的狀態管理是一個一流功能,在整個工作流程中持久存在。

狀態功能說明API
型別狀態使用 Pydantic 或 TypedDict 定義狀態模式State = TypedDict(...)
歸約器狀態更新的自訂邏輯(追加、覆寫)Annotated[list, add_messages]
檢查點自動狀態持久化以實現容錯Checkpointer
執行緒層級隔離每個對話執行緒的獨立狀態thread_id 參數
狀態視覺化偵錯每一步的狀態轉換內建視覺化

檢查點系統對於生產部署尤其重要,使工作流程能夠在重新啟動後存活,並提供代理決策的完整可稽核性。


如何使用 LangGraph 構建多代理系統?

構建多代理系統涉及將代理定義為圖節點並編排它們的互動。

組件LangGraph 元素範例
代理定義節點函數研究代理、寫作代理、審查代理
代理間通訊共享狀態研究成果、草稿、回饋
路由邏輯條件邊“如果研究完成,路由到寫作”
資源共享全域狀態共享上下文、知識庫存取
終止END 節點所有任務完成、達到最大循環次數

結果是一個代理自主協作的系統,透過共享圖狀態在彼此之間傳遞工作。


常見問題

什麼是 LangGraph? 將有狀態多代理工作流程建模為有向圖的框架,擴展 LangChain。

與標準 LangChain 代理有何不同? 從線性 ReAct 推廣到任意圖結構,支援迴圈、分支和並行執行。

狀態管理模型是什麼? 跨所有節點的集中式持久狀態物件,自動追蹤上下文。

可以構建哪些工作流程? ReAct、監督者、代理即工具、層級團隊、map-reduce、反思、人在迴圈。

支援人在迴圈嗎? 是的,原生支援,節點可以暫停等待人類輸入。


延伸閱讀

TAG