【譯】LangChain vs LangGraph:如何選擇正確的 AI 開發框架!
原文作者:Pavan Belagatti | Developer Evangelist | AI/ML| DevOps | Data Science
原文標題:LangChain vs LangGraph: How to Choose the Right Framework!
原文日期:Dec 5, 2025

為什麼這個比較很重要:LangChain 與 LangGraph 的對決
我平常在開發實際的 LLM 應用軟體,觀察下來發現有兩種主要的設計模式:一種是直線型的流水線;另一種是有狀態(stateful)、代理(agentic)工作流程。「LangChain vs LangGraph」這個問題不是純學術討論,它會直接影響你的架構設計、維護成本,以及系統如何隨時間進行推理。
當我提到「LangChain vs LangGraph」時,我實際上是在比較兩種截然不同的設計哲學。LangChain 針對線性序列做了最佳化:接收輸入,依序執行一個或多個 LLM 調用,最後存儲或返回結果;LangGraph 則是針對圖(graph)做最佳化,其中包含節點(nodes)、邊(edges)、循環(loops),以及跨步驟的持久化狀態。
LangChain 的核心概念

當工作流程基本上就是「先 A 再 B 再 C」的時候,我會使用 LangChain。LangChain 提供了一套標準化框架,幫開發者省去硬刻整合邏輯、提示詞模板、或手動工具編排的麻煩。
提示詞模板(Prompt Templates)— 可重複使用的模板,接受變數輸入並產生一致的 LLM 輸入格式。
LLM 模型抽象層 — 讓你能輕鬆切換 OpenAI、Anthropic、Mistral、Hugging Face 等不同模型。
鏈(Chains) — 核心抽象概念:將多個步驟串接起來,讓每一步的輸出作為下一步的輸入。
記憶(Memory) — 短期或長期的對話上下文,對有狀態的聊天很有用,但跟完整的狀態機比起來還是有限。
代理與工具(Agents & Tools) — 讓模型能以結構化方式呼叫 API、計算器或外部服務。
LangChain 能讓開發者快速進入生產力狀態。如果你是在做提示詞原型驗證、建構簡單的 RAG 系統,或是做一個從向量資料庫讀取資料再回傳單一回應的問答流水線,LangChain 是很高效的選擇。

LangGraph 的核心概念

LangGraph 建立在 LangChain 的概念之上,但重新把工作流程設計成圖的形式。當系統必須持久化複雜狀態、需要迴圈、做決策,或是編排多個專門的代理時,我就會想到 LangGraph。
節點(Nodes) — 獨立的任務單元:呼叫 LLM、查詢資料庫、執行網頁搜尋,或啟動摘要器。
邊(Edges) — 定義條件式的轉換、平行分支,或迴圈路徑。
狀態(State) — 跨節點動態演變的上下文:訊息、情節記憶(episodic memory)和檢查點。
決策節點 —— 原生支援條件邏輯,以及將任務路由至專責代理。
LangGraph 把應用程式當成一個狀態機來處理。節點可以進行迴圈、重新造訪先前的步驟,並執行多輪工具呼叫。這使得反思(reflection)、迭代式檢索、或逐步精煉答案等代理行為得以實現。

LangChain vs LangGraph 的實用對照清單

我喜歡將技術選擇化約為一份清單,以下是我在決定該用哪個時會參考的 5 種實際比較。
流程類型
LangChain: 線性且循序。
LangGraph: 循環式且基於圖,支援迴圈。
狀態管理
LangChain: 有限的對話記憶。
LangGraph: 豐富的持久化狀態,跨節點和跨工作階段。
條件判斷與迴圈
LangChain: 簡單的分支與一次性工具呼叫。
LangGraph: 內建條件邊、迴圈與檢查點。
複雜度與代理
LangChain: 適合簡單的聊天機器人、RAG,或 ETL 類 LLM 流程。
LangGraph: 適合多代理系統、自主代理行為,以及長時間執行的工作流程。
人機協作(Human-in-the-Loop)
LangChain: 可以做到,但不是原生支援。
LangGraph: 檢查點與人機協作是第一級設計模式。
在衡量「LangChain vs LangGraph」時,我不只考慮當下的需求,也會評估未來預期的複雜度。如果應用可能發展為多代理協作,或需要持久狀態與重試機制,從 LangGraph 起步可以省下日後的重構。
什麼時候該選 LangChain?
當你需要快速開發,且工作流程很直觀的時候,我會推薦 LangChain。典型的使用場景包括:
文字轉換流水線: 摘要、翻譯或擷取資訊並儲存結果。
快速原型驗證提示詞和測試鏈。
單輪使用者互動, 例如客服回覆。
基本 RAG 系統, 從向量資料庫檢索資料並回傳單一合成答案。
LangChain 在這些任務上表現很好,因為它提供了即插即用的元件 — 提示詞模板、檢索器和鏈組合器 — 讓你不需要自己從頭打造編排機制就能快速上線。

什麼時候該選 LangGraph?
當系統需要自主性、迭代和狀態管理的時候,我就會選 LangGraph。以下這些情境適合用 LangGraph:
多步驟決策, 可以迴圈直到滿足退出條件。
根據上下文把查詢路由到不同的專門代理。
跨多次 LLM 呼叫和使用者互動的持久化狀態。
複雜的工具使用, 包括多輪網頁搜尋、摘要和外部來源的彙整。
舉例來說,我曾建構一個電子郵件撰寫代理,它會擷取使用者偏好、查詢行事曆、草擬郵件、詢問釐清問題,然後反覆精煉草稿。這類工作流程自然地對應到 LangGraph 的架構。

實作演練:一個實用的 LangChain 範例
我常常用 RAG 範例搭配向量資料庫來示範概念。LangChain 的模式大概是這樣:
安裝必要的套件並設定 API 金鑰。
建立接受變數(例如「objective」和「topic」)的提示詞模板。
透過 Hugging Face、OpenAI 或其他供應商初始化 LLM 或本地模型連接器。
將文件存入向量資料庫並建立檢索器。
建構一條 RAG 鏈,先檢索相關上下文再合成答案。
這個模式是線性的:檢索相關文件,然後生成答案。它適用於許多 FAQ 機器人、文件助手和單次處理的流水線。程式碼精簡且容易迭代,這也是在比較「LangChain vs LangGraph」時 LangChain 的核心優勢之一。

實作演練:一個實用的 LangGraph 範例
現在想像同樣的任務,但多了一個需求:當本地語料庫缺乏最新資訊時,需要去抓即時的網頁搜尋結果。LangGraph 的工作流程大概長這樣:
從 URL 或文件載入靜態內容到向量資料庫。
建立圖的節點:檢索、網頁搜尋、決策和生成。
定義狀態:追蹤檢索結果是否回答了使用者、儲存中間摘要,並記錄工具輸出。
用條件邊連接節點:若本地檢索失敗,轉向網路搜尋;若網路搜尋結果雜訊過多,則提出釐清問題;視需要回頭重做。
執行圖並讓它迭代直到滿足停止條件,然後回傳最終的合成結果。
這個模式實現了多輪工具使用和代理式推理。在我的測試中,問 LangGraph 代理「這個月最新的 AI 發展有哪些」的時候,當本地知識過時,它會觸發網路搜尋節點。代理進行抓取、摘要,並在呈現結果前確認摘要是否充分。這種行為正好凸顯了「LangChain vs LangGraph」之間的差異。

常見模式與反模式
隨著經驗累積,我歸納出一些有助於在「LangChain vs LangGraph」之間做決定的模式,供你們作為參考依據。
模式:從簡單開始 — 如果問題是單次處理的,先用 LangChain 快速驗證你的提示詞。
模式:逐步演化到圖 — 若你的單次處理流程逐漸累積條件判斷和有狀態的檢查點,就該逐步重構為 LangGraph 圖。
反模式:過早複雜化 — 當不需要迴圈或持久化狀態的時候,不要硬上完整的圖。過度設計會降低可讀性並增加維護成本。
反模式:一次性工具呼叫 — 如果你需要重複或多階段的工具編排,線性鏈會變得脆弱。LangGraph 原生的邊和狀態更適合這種場景。
範例架構模板

以下是我根據「LangChain vs LangGraph」的決定,經常重複使用的兩個模板。
模板 A:LangChain RAG 流水線
使用者查詢 → 檢索器 → LLM 提示詞 → 結果 → 儲存對話(可選)
適用於文件問答、客服中心,以及每個請求大致獨立的聊天機器人。
模板 B:LangGraph 代理式流水線
使用者查詢 → 檢索 → 決策節點(資訊充分嗎?)→ 若否,網路搜尋節點 → 摘要 → 反思/迴圈 → 最終生成 → 持久化情境記憶
適用於動態資訊需求、研究助理,以及需要迭代推理的多代理工作流程。
遷移與擴展的實用建議
如果你一開始用 LangChain,後來需要遷移到 LangGraph,我建議照以下步驟來:
找出分支點 — 辨識你的 LangChain 中開始出現決策邏輯的地方。
抽離提示詞模板和檢索器 — 把它們變成獨立模組,讓圖的節點可以使用。
引入輕量狀態儲存 — 讓節點的輸出可以跨呼叫持久化。
用單一職責的節點取代整塊的鏈 — 每個節點負責一件事:檢索、網頁搜尋、摘要或驗證。
擴展 LangGraph 系統需要考慮營運面的議題:持久化狀態儲存、節點的冪等性(idempotency)、邊的可觀測性,以及針對高成本操作設置人工檢查點。提早規劃這些事情,可以避免工作流程變成長時間運行後才冒出的意外狀況。
最終決策指南 — 快速檢查清單
當我要在「LangChain vs LangGraph」之間做決定時,會跑一遍這張清單:
工作流程是單次處理的嗎?選 LangChain。
需要迴圈或複雜的決策邏輯嗎?選 LangGraph。
系統需要隨時間呼叫多種工具嗎?傾向 LangGraph。
你在做原型驗證或探索提示詞嗎?先從 LangChain 開始。
預期會有長期的工作階段和持久化上下文嗎?LangGraph 比較適合。
結語
這兩個框架有一個共同的目標:讓用 LLM 開發變得更容易。差別在於架構上的設計意圖。LangChain 在線性編排和快速原型驗證上表現出色。LangGraph 在有狀態、代理式、循環式的工作流程上大放異彩,尤其是需要協調、持久化和多輪工具使用的場景。
當我為一個產品評估「LangChain vs LangGraph」時,我會在上線速度和未來複雜度之間取得平衡。如果你預期系統會演變成自主助手或協調器,那就一開始就用圖的思維,再逐步遷入元件。如果你現在只需要一條快速、好維護的流水線,LangChain 大概就能滿足你的需求。
簡單講 LangChain 走的是 A → B → C,沿著預先定義好的路徑走;LangGraph 則走動態路徑,從 A 開始,它會判斷需要 B 還是 C,也可以根據情況直接跳到 C,迴圈、重複,直到目標達成為止。
如果你想重現我描述的範例,LangChain 的部分可以從提示詞模板和一個小型向量資料庫開始。LangGraph 的部分則是把節點建模成單一職責的元件,並為流經圖的資料定義清楚的狀態 schema。

完整程式碼範例如下:
LangChain RAG 教學:https://github.com/pavanbelagatti/LangChain-SingleStore-Package
代理式工作流程教學:https://github.com/pavanbelagatti/LangGraph-Agentic-Tutorial
以下是我針對 LangChain vs. LangGraph 的完整影片講解。
作者:Chi