TL;DR:LangChain 跟 LangGraph 不是二選一,是上下層。LangGraph 是底層 runtime(管 state、流程、重試),LangChain 是建在它上面的高階 API(create_agent 一行起手)。2025-10-22 兩者都上 1.0 正式版,承諾 2.0 前不破壞 API。標準 agent loop 用 LangChain,要精細控制流程分流 / 重試 / human-in-the-loop 用 LangGraph。 這篇是「用真實專案學 LangGraph」系列的第一篇,先把選型講清楚,後面 EP2 開始手把手寫第一個會跑的 graph。
這是一個系列。我把一套真的在跑的醫療 AI 決策 pipeline 的設計,拆成 6 篇從 0 教你 LangGraph。第一篇不寫 code,先解決一個最多人卡住的問題:LangChain 跟 LangGraph 到底差在哪,2026 年該學哪個?
📌 目錄
- LangChain 跟 LangGraph 是什麼
- 為什麼這兩個東西最多人搞混
- LangChain vs LangGraph 差別比較表
- 2026 該學哪個:三個情境判斷
- 我踩過的坑:版本與心智模型
- 常見問題 FAQ
- 延伸資源
LangChain 跟 LangGraph 是什麼
先給最短的答案:
- LangGraph 是一個 agent 的執行 runtime。你把 AI 應用畫成一張圖(graph):每個節點(node)做一件事,節點之間用邊(edge)連起來,整張圖共用一份狀態(state)。它管的是「流程怎麼走、狀態怎麼傳、卡住了怎麼重試」。
- LangChain 是建在 LangGraph 之上的高階 API。它把「呼叫模型 → 模型決定要不要用工具 → 執行工具 → 再問模型」這個最常見的 agent 迴圈包成一個
create_agent函式,讓你一行起手。
換句話說,你用 LangChain 寫 agent 的時候,底下跑的就是 LangGraph。它們不是競爭關係,是同一套東西的兩個抽象層。
🧠 為什麼這兩個東西最多人搞混
我帶學員、也在企業內訓講過 AI 應用開發,這題的混亂幾乎每次都出現。原因有三個:
第一,名字太像。 一個叫 LangChain、一個叫 LangGraph,同一個團隊出的,文件還混在一起。新手第一反應是「這兩個是不是同一個東西的新舊版本」——不是。
第二,能力重疊。 你用 LangChain 能做的事,硬用 LangGraph 也做得出來,反過來也行。所以「我到底該學哪個」這個問題,光看功能列表是看不出答案的。差別在控制粒度,不在能不能做。
第三,版本一直變。 LangGraph 從 0.1、0.2 一路演進,2025 年 10 月才上 1.0。網路上一堆教學是 0.x 時代寫的,import 路徑、API 名稱都可能對不上。你照著舊文打 code,跑不起來,又搞不清楚是自己錯還是文章過時。
這也是我寫這個系列的原因:用一個真的在 production 跑的專案當骨架,而不是 toy example。我手上有一套醫療場景的 AI 決策 pipeline——一筆病人資料進來,補齊衍生指標、跑公式、載入規則、組 few-shot、丟給 LLM 出結構化建議、再用業務規則驗一遍、不過就重試或退件。整套就是 LangGraph 搭的,後面幾篇會把它去識別化之後一塊一塊拆給你看。
⚖️ LangChain vs LangGraph 差別比較表
| 維度 | LangChain 1.0 | LangGraph 1.0 |
|---|---|---|
| 定位 | 高階 API | 底層 runtime |
| 核心抽象 | create_agent(標準 agent loop) | StateGraph(你自己畫流程圖) |
| 控制粒度 | 用 middleware 在固定 loop 上掛 hook | 每個 node、每條 edge 自己定 |
| 流程分流 | △ middleware 能做但受限 | ✓ conditional edge 任意分流 |
| 自訂重試 | △ 靠 middleware | ✓ 自己畫一條 retry 邊回去 |
| Human-in-the-loop | ✓ 內建 middleware | ✓ 第一級 API 支援 |
| 狀態持久化 | ✓(底層就是 LangGraph) | ✓ durable state,server 重啟也接得回 |
| 上手速度 | 快,一行起手 | 慢,要先想清楚流程 |
| 適合 | 標準「問答 + 用工具」agent | 混合確定性步驟 + AI 步驟的複雜流程 |
重點不是哪個比較強,是你的應用長什麼樣。下一節給三個情境直接判斷。
🎯 2026 該學哪個:三個情境判斷
情境一:你只是想做「會用工具的聊天機器人」
模型回答問題,需要時呼叫搜尋、查資料庫、算東西,然後給最終答案。這就是標準 agent loop。
用 LangChain。 create_agent 三行搞定,middleware 補上 human-in-the-loop、PII 遮蔽、長對話自動摘要。官方的話:create_agent 是「最快的方式,用任何 model provider 建出 agent」。
情境二:你的流程混了「確定性步驟」跟「AI 步驟」
像我那套醫療 pipeline:有些步驟是純算的(補 BMI、跑公式、查規則,這些不該丟給 LLM 亂猜),有些步驟才需要 LLM 判斷。而且 LLM 出來的結果還要過一道業務規則驗證,不過就得退回去重做或直接退件。
用 LangGraph。 這種「deterministic + agentic 混合 + 要分流 + 要重試」的流程,正是 LangGraph 1.0 官方點名的主場:workflows mixing deterministic and agentic components。你需要的是一張能畫出 if-else 分支、能畫出 retry 迴圈的圖,不是一個固定的 agent loop。
情境三:長流程、要人工審核、要 latency/cost 最佳化
跑很久的業務流程、敏感操作要人點頭才能繼續、每一步的成本都要算。
用 LangGraph。 durable state 是關鍵——server 中途重啟、長流程被打斷,它接得回來,不會掉 context。
一句話總結選型:標準 loop 撐得住就用 LangChain,撐不住就下沉到 LangGraph。 而因為 LangChain 底層就是 LangGraph,你之後要從前者「掀開蓋子」往下走,不用打掉重練。
🔥 我踩過的坑:版本與心智模型
坑一:照舊教學打 code,import 路徑對不上
2026 年要學,請認明 1.0。0.x 時代的教學很多,import 路徑跟 API 名稱會不一樣。LangGraph 1.0 唯一比較明顯的變動是 langgraph.prebuilt 被 deprecate,功能搬到 langchain.agents。如果你照舊文 from langgraph.prebuilt import ... 打不出來,先檢查版本。
驗證裝的是哪個版本,一行:
python -c "import importlib.metadata as m; print('langgraph', m.version('langgraph')); print('langchain', m.version('langchain'))"
坑二:Python 版本被砍
LangChain 1.0 把 Python 3.9 支援拿掉了,最低 3.10。如果你還在 3.9 的環境,pip 裝得起來但行為怪,先升 Python。
python --version # 要 3.10 以上
坑三:把「學會 API」當成「學會 LangGraph」
這是最大的坑,跟版本無關。LangGraph 的 API 其實很少——StateGraph、add_node、add_edge、add_conditional_edges、compile、invoke,大概就這些。難的不是記 API,是建立心智模型:
- 你的應用要拆成哪幾個 node?
- node 之間的狀態(state)要傳什麼?
- 哪裡需要分流(conditional edge)?哪裡需要回頭重試?
❓ 常見問題 FAQ
Q:LangChain 跟 LangGraph 可以混用嗎?
A:可以,而且官方鼓勵。你可以用 LangChain 的 create_agent 快速做出 agent,然後把它當成 LangGraph 圖裡的一個 node。因為 LangChain 底層就是 LangGraph,兩者天生相容。
Q:我完全不會,該先學哪個?
A:先學 LangGraph 的核心三件事——state、node、edge。把這三個搞懂,LangChain 的 create_agent 你一看就懂(因為它只是把一個常見的 graph 包起來)。反過來先學 LangChain,你會卡在「為什麼 middleware 是這樣設計」,因為你不知道底下的 runtime 長怎樣。這系列就是從 LangGraph 核心開始教。
Q:LangGraph 1.0 穩定嗎?可以上 production 嗎?
A:可以。官方說它是「durable agent 框架領域的第一個穩定大版本」,已經在 Uber、LinkedIn、Klarna 這些公司跑了一年多才正式 1.0,並承諾 2.0 前不做破壞性更新。
Q:只做簡單的 RAG 問答,需要 LangGraph 嗎?
A:不一定需要。純 RAG(檢索 + 丟給模型回答)用 LangChain 的標準組件就夠。等你的流程開始長出「分流、重試、人工審核、多步驟混合」這些需求,再下沉到 LangGraph。不要為了用而用。
Q:學這個跟直接用 OpenAI / Anthropic SDK 寫有什麼差?
A:簡單應用直接用 SDK 更輕。LangGraph 的價值在「流程複雜到你開始自己手刻 state machine」的時候——它把 state 傳遞、流程分流、重試、持久化這些你遲早要自己寫的東西標準化了。流程越複雜,省得越多。
🔗 延伸資源
- LangGraph 官方 repo(langchain-ai/langgraph) — 底層 runtime 的 source of truth
- LangChain 官方 repo(langchain-ai/langchain) — 高階 API
- LangGraph 1.0 GA 公告 — 1.0 的選型官方說法
- LangGraph v1 有什麼變動(官方 docs) — 升級前先看這個
- 下一篇:EP2 — LangGraph 核心 State / Node / Edge,手把手寫你第一個會跑的 graph