iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
Software Development

MCP的30天養成計畫系列 第 15

【Day 15】使用Tool前,來了解LangGraph吧(二)

  • 分享至 

  • xImage
  •  

昨天我們提到 LangGraph 是「流程圖」,今天就來更仔細看它的核心:StateGraph

StateGraph 是什麼?

StateGraph 的確可以被理解成一種 狀態機 (State Machine),但更精確地說,它是一個 定義節點 (nodes) 與邊 (edges) 的框架,用來描述「狀態如何隨著輸入更新」以及「該往哪個節點移動」。

在LangGraph裡:

  • State是一個共享資料結構(例如對話歷史、上下文變數)。

  • Node是一個函式,會接收並更新state。

  • Edge是節點之間的轉換邏輯,可以是固定路徑,也可以是條件式(conditional edges)。

舉個例子:

START → ToolNode → 得到回應 → FinalResponse → END

如果ToolNode失敗,就透過conditional edge走到ErrorHandler節點。

所以StateGraph並不是單純的流程圖,它更像是「帶有共享狀態的有向圖(DAG)」。

StateGraph 的好處

  • 明確:節點就是函式,邊就是邏輯,透明且易於追蹤

  • 可控:比傳統 gent更能強制走特定邏輯,不會隨機亂跑

  • 可擴充:想加分支?加一個node和edge就能插入到流程中

和 LangChain 的差別

LangChain偏重在「呼叫模型 + 工具」的模組化抽象。

LangGraph(StateGraph)則偏重在「控制流程與狀態流轉」。

你可以把LangChain想像成「積木」,而LangGraph的StateGraph是「積木之間的軌道」。兩者結合,就能組裝出完整可控的工作流。

小結

StateGraph 的重點在「共享狀態的更新」而不只是事件驅動。
它不是單純的 有限狀態機 FSM,更準確是「帶有狀態的 DAG」。
下一步 (Day16),我們就要回到 Tool 本身:既然工具這麼多,到底該怎麼挑、怎麼用?


上一篇
【Day 14】使用Tool前,來了解LangGraph吧(一)
下一篇
【Day 16】有那麼多Tool,該怎麼用(一)
系列文
MCP的30天養成計畫19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言