掌握 Agent 工作流程的 10 大 LangGraph 教學
如果您已經試用過 LangChain agents,並且覺得協調變得難以管理,那麼這裡有一個大膽的說法:掌握最好的 LangGraph 教學將改變您構建 AI 系統的方式。LangGraph 為 agent 工作流程添加了基於圖的控制、穩健的狀態和多參與者模式——這正是生產團隊在簡單鏈開始崩潰時所需要的。
在這份實用且以解決方案為導向的指南中,我們將整理最好的 LangGraph 教學,向您展示每個教學的優點,並將它們映射到實際用例——從簡單的工具調用 agent 到容錯、多輪規劃器。在此過程中,您將獲得升級路線圖、要避免的常見陷阱以及您可以立即採用的隨插即用模式。
為什麼 LangGraph 教學對於 Agent 構建者很重要
- 可預測的控制流程: LangGraph 將您的 agent 建模為節點和邊的圖——使分支、重試和回退變得明確。
- 共享、持久的狀態: 將對話記憶、工具結果和中間產物保存在一個地方。
- 多參與者設計: 組合專業化的 agent(規劃器、研究員、程式設計師、評論員),而無需義大利麵條式程式碼。
- 生產強化: 添加超時、防護和可觀察性,同時保持邏輯可讀。
如果您的目標是構建可靠的助手、評估器或自主研究迴圈,那麼最好的 LangGraph 教學會為您提供可重複的模式——而不僅僅是一次性的演示。
此列表的工作方式
為了使這些成為滿足不同需求的最佳 LangGraph 教學,我們已按技能等級和結果對它們進行了組織。每個條目包括:
我們還在每個層級之後提供升級路徑和專業提示。
第 1 層 — 基礎知識:流利地進行圖形思考
1) Hello, LangGraph:30 分鐘內從鏈到圖
- 您將構建的內容:一個簡單的 agent,它調用兩個工具——
搜尋然後總結——如果搜尋沒有傳回結果,則進行分支。
- 為什麼它有價值:您將看到如何將線性鏈轉換為具有清晰節點和邊的圖。
- 最適合:從 LangChain Chains/Agents 轉向基於圖的控制的開發人員。
範例骨架:
from langgraph.graph import StateGraph
# Define state shape (e.g., query, results, summary)
class State(dict):
query: str
results: list
summary: str
builder = StateGraph(State)
@builder.node("search")
def search_node(state: State):
# call your search tool
state["results"] = my_search(state["query"])
return state
@builder.node("summarize")
def summarize_node(state: State):
state["summary"] = summarize(state["results"])
return state
builder.edge("search", "summarize", condition=lambda s: len(s["results"]) > 0)
app = builder.compile
專業提示:保持狀態最小且類型化。將其視為節點之間的契約。
2) 具有防護和超時的工具調用 Agent
- 您將構建的內容:一個使用工具(網路搜尋、計算機)的 agent,具有重試邏輯和超時。
- 為什麼它有價值:生產 agent 必須具有彈性——本教學展示了務實的防護措施。
- 關鍵概念:超時、錯誤節點、重試迴圈、可觀察性掛鉤。
- 最適合:準備部署具有外部依賴項的 agent 的團隊。
專業提示:將錯誤處理建模為一流的節點。它更容易測試和演進。
3) 記憶體和狀態:沒有麻煩的聊天歷史記錄
- 您將構建的內容:一個記住使用者個人資料和先前任務的對話 agent。
- 為什麼它有價值:當記憶體位於圖狀態時,它會變得穩定且可檢查。
- 最適合:客戶支援機器人、AI 團隊成員或具有上下文連續性的助手。
專業提示:使用分階段記憶體——短期緩衝區 + 提煉的長期摘要——以實現可擴展性。
第 2 層 — 中級:協調多步驟推理
4) LangGraph 中的規劃器-執行器模式
- 您將構建的內容:一個雙 agent 系統,其中規劃器分解任務,執行器完成步驟。
- 為什麼它有價值:將推理(做什麼)與行動(做它)分開,以提高清晰度和可測試性。
專業提示:保持規劃器「token 節儉」。約束輸出格式以減少漂移。
5) 具有回饋迴圈的檢索增強產生 (RAG)
- 您將構建的內容:一個 RAG 管道,它根據答案可信度調整檢索。
- 為什麼它有價值:透過迴圈避免幻覺:檢索 → 草擬 → 評估 → 完善 → 最終確定。
- 關鍵概念:可信度評分、評估器節點、條件完善、向量儲存管理。
專業提示:當可信度超過您的閾值時,包含一個「提早停止」邊,以節省 token。
6) 具有自我批評的多工具 Agent
- 您將構建的內容:一個可以調用多個工具(網路、程式碼、表格)並批評其自身輸出的 agent。
- 為什麼它有價值:自我評估會在結果到達使用者之前發現基本的邏輯或格式錯誤。
專業提示:將評論員視為具有嚴格評分提示的輕量級 LLM,以避免無休止的吹毛求疵。
第 3 層 — 高級:生產級 Agent 系統
7) 多參與者 LangGraph:研究員、程式設計師和審閱者
- 您將構建的內容:一個三 agent 系統,其中每個參與者都專門化、移交工作並簽核。
- 為什麼它有價值:編碼勞動分工、減少提示的認知過載並提高品質。
- 最適合:具有測試的程式碼產生、市場調查、政策分析。
專業提示:定義每個參與者的輸入/輸出架構——JSON 架構可防止「角色洩漏」。
8) 容錯:檢查點、重試和冪等性
- 您將構建的內容:一個可以在失敗後透過檢查點和冪等節點恢復的 agent。
- 為什麼它有價值:實際工作負載會失敗。本教學使恢復成為設計的一部分。
- 關鍵概念:持久狀態儲存、確定性節點雜湊、重試預算、saga 類補償。
- 最適合:長時間運行的作業、批次處理、昂貴的 API 鏈。
專業提示:儲存節點輸入和輸出;重試應該是狀態的函數,而不是運氣。
9) 大規模的監控、追蹤和評估
- 您將構建的內容:一個測量層——追蹤、指標和迴歸測試——包裝在您的圖周圍。
- 為什麼它有價值:您無法改進您看不到的東西。可觀察性可以實現快速迭代。
- 關鍵概念:跨度追蹤、結構化日誌記錄、黃金資料集、離線/線上評估。
專業提示:新增與生產並行運行而不影響輸出的「陰影」評估節點。
10) 人工參與 (HITL) 審查流程
- 您將構建的內容:一個迴圈,其中不確定的輸出會在完成之前觸發人工審查。
- 為什麼它有價值:將模型速度與人工判斷相結合,以做出敏感決策。
- 關鍵概念:可信度閾值、批准節點、回饋合併、審計追蹤。
專業提示:將人工決策和理由記錄回狀態,以微調未來的路由。
按用例劃分的最佳 LangGraph 教學
為了幫助您快速選擇,這裡有一個快速映射:
- 對合規性敏感的 RAG:優先考慮 3、5、8、10。
如果您關心端到端可靠性,而不僅僅是原型,這些是最好的 LangGraph 教學。
動手實作:您可以重複使用的最小 LangGraph 模式
以下是一個可重複使用的模式,它反映了許多最佳 LangGraph 教學——規劃器 → 行動 → 檢查 → 完善 → 完成。
from langgraph.graph import StateGraph
from typing import List, Optional
class State(dict):
query: str
plan: List[str]
step: int
artifacts: List[str]
draft: str
confidence: float
builder = StateGraph(State)
@builder.node("plan")
def plan_node(state: State):
state["plan"] = make_plan(state["query"]) # LLM-structured list
state["step"] = 0
state["artifacts"] = []
return state
@builder.node("act")
def act_node(state: State):
task = state["plan"][state["step"]]
output = execute_task(task) # tool(s)
state["artifacts"].append(output)
return state
@builder.node("synthesize")
def synth_node(state: State):
state["draft"] = synthesize(state["artifacts"]) # LLM combine
return state
@builder.node("evaluate")
def eval_node(state: State):
score, feedback = evaluate(state["draft"]) # rubric-based
state["confidence"] = score
state["feedback"] = feedback
return state
# Edges
builder.edge("plan", "act")
def more_steps(s: State) -> bool:
return s["step"] < len(s["plan"]) - 1
builder.edge("act", "act", condition=lambda s: (s.update({"step": s["step"] + 1}) or True) and more_steps(s))
builder.edge("act", "synthesize", condition=lambda s: not more_steps(s))
builder.edge("synthesize", "evaluate")
builder.edge("evaluate", "plan", condition=lambda s: s["confidence"] < 0.7) # refine plan
app = builder.compile
為什麼它有效:
常見陷阱(以及最佳教學如何避免它們)
- 過度填充的狀態:儲存原始文檔或巨大的訊息歷史記錄會膨脹記憶體。積極總結。
- 隱式錯誤處理:不要隱藏任何東西。將例外情況轉換為節點並建立恢復路徑模型。
- 工具蔓延:從 2-3 個工具開始;一旦路由穩定,再添加更多工具。
- 沒有離線評估:保留黃金任務以在模型、提示或工具變更時發現迴歸。
學習路徑:從第一個圖到生產 Agent
透過遵循此方法,您將以尊重生產現實的方式吸收最佳 LangGraph 教學。
與 LangGraph 完美搭配的工具堆疊
- 向量儲存:用於 RAG 的 FAISS、Chroma、PGVector。
- 追蹤:用於節點跨度的 OpenTelemetry 或模型感知追蹤器。
- 佇列:用於背景節點的 Redis、Celery 或 Cloud Tasks。
- 儲存:用於持久狀態和檢查點的 Postgres 或 DynamoDB。
值得注意的是:如果您的工作流程涉及程式碼編寫、瀏覽或總結網路內容,同時您在圖上進行迭代,則 Sider.ai 側邊欄可以加快您在瀏覽器中的研究和草擬速度。它對於測試提示、產生結構化評分以及將程式碼片段捕獲到您的知識庫中而無需上下文切換特別方便。 如何為您選擇最佳 LangGraph 教學
問自己:
- 您是否即將推出產品?從彈性 (2) 開始,然後是 RAG + 評估 (5) 和監控 (9)。
- 您是否正在建立研究 agent 的原型?專注於規劃器-執行器 (4)、自我批評 (6) 和多參與者 (7)。
- 您是否有嚴格的合規性需求?記憶體規範 (3)、容錯 (8)、HITL (10)。
最好的 LangGraph 教學與您的約束條件相符:延遲、正確性、成本和可維護性。
快速參考:推動良好圖的問題
在構建時將這些保存在白板上。
結論:構建您可以信任的 Agent
LangGraph 為 agent 混亂帶來秩序。透過遵循最好的 LangGraph 教學——從簡單開始、新增彈性並分層評估——您將設計出能夠解釋自己、從錯誤中恢復並提供可預測結果的 agent。
後續步驟:
主要收穫:
- 在高度風險的場景中,評估器和 HITL 不是可選項。
- 最好的 LangGraph 教學是可以重新運行、測量和演進的教學。
常見問題
Q1:對於初學者來說,最好的 LangGraph 教學是什麼?
從一個簡單的雙工具圖(搜尋 → 總結)開始,然後新增超時/重試和基本記憶體。這些最好的 LangGraph 教學教授節點、邊和狀態,以便您以後可以擴展。
Q2:如何在 LangGraph 中建構規劃器-執行器 agent?
使用單獨的節點或子圖進行規劃和執行,透過共享狀態傳遞結構化計劃。最好的 LangGraph 教學展示了終止標準和重新規劃迴圈,以降低成本。
Q3:LangGraph 可以幫助減少 RAG 中的幻覺嗎?
是的。新增評估器節點,對答案進行評分,並在可信度較低時觸發完善。最好的 LangGraph 教學結合了檢索、綜合和評估,以確保品質。
Q4:LangChain agent 和 LangGraph 之間有什麼區別?
LangChain agent 側重於工具使用,而 LangGraph 強調明確的控制流程和共享狀態。最好的 LangGraph 教學重點介紹了圖如何提高可觀察性和可靠性。
Q5:如何將人工參與審查新增到 LangGraph 工作流程中?
當可信度低於閾值或任務敏感時,將條件邊插入到批准節點。許多最好的 LangGraph 教學都使用 HITL 閘門來滿足合規性要求。