LangChain 中文课
返回体系图 文章库
第 05 课,共 7 课:LangGraph

第 05 课,共 7 课

用 LangGraph 控制流程

把任务拆成节点和边,明确状态如何流动,为分支、循环、恢复和人工审批打基础。

进阶 25 分钟 Python
完成本课后

你应该能做到

  • 理解 State、Node 和 Edge
  • 编译并调用第一个状态图
  • 知道什么时候应该从 LangChain 进入 LangGraph
01

什么时候需要图

普通 Agent 适合让模型自由决定下一步。需要固定顺序、条件分支、循环、人工审批或中断恢复时,应该进入 LangGraph。

LangGraph 是低层编排和运行时,不是另一个模型,也不是 LangChain 的替代品。

02

运行官方 Hello World

下面是官方 LangGraph 总览中的最小 Python 示例。它只有一个节点,收到任意消息后返回 hello world。

hello_graph.py
from langgraph.graph import StateGraph, MessagesState, START, END


def mock_llm(state: MessagesState):
    return {"messages": [{"role": "ai", "content": "hello world"}]}


graph = StateGraph(MessagesState)
graph.add_node(mock_llm)
graph.add_edge(START, "mock_llm")
graph.add_edge("mock_llm", END)
graph = graph.compile()

result = graph.invoke(
    {"messages": [{"role": "user", "content": "你好"}]}
)
print(result["messages"][-1].content)
03

读懂这四行关系

真正的 Agent 图会加入模型节点、工具节点和条件边。如果只需要简单工具 Agent,继续使用 create_agent 即可,不要为了使用 LangGraph 而增加复杂度。

  • MessagesState 定义图中共享的数据
  • mock_llm 是执行工作的节点
  • START 和 END 是图的入口与出口
  • compile 把节点和边变成可运行对象
不要凭感觉结束

本课完成标准

  • 输出 hello world
  • 能指出 State、Node、Edge 在代码中的位置
  • 知道简单 Agent 不需要手写 LangGraph
遇到问题先看这里

常见错误

把 LangGraph 当成模型框架

LangGraph 负责状态和执行流程,模型仍由 LangChain provider 接入。

一开始就画复杂多 Agent 图

先用一个节点验证状态,再逐步加入工具节点和条件边。

内容来源

依据官方文档中文整理

代码和概念来自 LangChain 官方固定提交。中文解释用于降低学习门槛,英文原文只作为核对入口。

固定提交 08ae2610bd712a4a340d59f27122bea97a0a598d