第 05 课,共 7 课
用 LangGraph 控制流程
把任务拆成节点和边,明确状态如何流动,为分支、循环、恢复和人工审批打基础。
完成本课后
你应该能做到
- 理解 State、Node 和 Edge
- 编译并调用第一个状态图
- 知道什么时候应该从 LangChain 进入 LangGraph
什么时候需要图
普通 Agent 适合让模型自由决定下一步。需要固定顺序、条件分支、循环、人工审批或中断恢复时,应该进入 LangGraph。
LangGraph 是低层编排和运行时,不是另一个模型,也不是 LangChain 的替代品。
运行官方 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)
读懂这四行关系
真正的 Agent 图会加入模型节点、工具节点和条件边。如果只需要简单工具 Agent,继续使用 create_agent 即可,不要为了使用 LangGraph 而增加复杂度。
- MessagesState 定义图中共享的数据
- mock_llm 是执行工作的节点
- START 和 END 是图的入口与出口
- compile 把节点和边变成可运行对象
本课完成标准
- 输出 hello world
- 能指出 State、Node、Edge 在代码中的位置
- 知道简单 Agent 不需要手写 LangGraph
常见错误
LangGraph 负责状态和执行流程,模型仍由 LangChain provider 接入。
先用一个节点验证状态,再逐步加入工具节点和条件边。
内容来源
依据官方文档中文整理
代码和概念来自 LangChain 官方固定提交。中文解释用于降低学习门槛,英文原文只作为核对入口。
LangGraph overview
src/oss/langgraph/overview.mdx
LangGraph quickstart
src/oss/langgraph/quickstart.mdx
固定提交 08ae2610bd712a4a340d59f27122bea97a0a598d