前幾天完成了一套具備三欄式 UI 的 Streamlit 介面,也接上了 Firebase Firestore 資料庫。
雖然沒有到很有必要但我想學會建立一個真正具備自主推理與流程控制能力的 AI Agent 架構
為什麼需要 LangGraph?
最簡單的理由就是想學,但學習之餘還是得知道為何要用:
傳統的 API 直連或 LangChain ReAct Agent 像是一個自由發揮的黑盒子,但教學需要高度可控的流程。
LangGraph 的核心思想是將 Agent 的思考過程建模為「有向圖(Directed Graph)」,這帶來三大優勢:
-
精準控制流程(State Machine):明確定義 AI 的思考節點,確保 AI 依照設計好的步驟運行,不會隨意脫軌。
-
狀態持久化(State Management):能夠完整保存學生的解題歷史、嘗試次數與提示層級。
-
動態條件分支(Conditional Routing):根據不同的情境(例如程式碼是否有語法錯誤),自動導向不同的處理節點。

LangGraph 的三大核心組件
LangGraph 架構主要由以下三個核心概念組成:
-
1. State(狀態)
- 貫穿整個圖譜的共享數據結構。
- 記錄對話歷史(Messages)、當前程式碼內容、評測結果或錯誤訊息等。每個節點都能讀取或更新這個狀態。
-
2. Nodes(節點)
- 圖譜中的具體執行單元(通常是一個 Python 函式或 LLM 呼叫)。
- 每個節點只專注做好一件事,例如「程式碼靜態檢查」、「產生蘇格拉底引導」或「處理語法錯誤」。
-
3. Edges(邊與條件路由)
-
普通邊(Edges):定義節點之間的固定執行順序。
-
條件邊(Conditional Edges):Agent 的靈魂所在!根據目前 State 中的資料(如是否有 SyntaxError),動態決定下一個要進入的節點。
透過 State + Nodes + Edges 的組合,我們不僅降低了 AI 亂給答案(Hallucination)或直接爆雷的風險,也為未來的擴充(例如加入更多自動化工具、多 Agent 協作)打下了堅實的基礎。
明天我們將正式進入代碼實作,把這個架構實際在 Python 中編譯並運行起來!