LangGraph 是什么:把智能体画成一张图
LangGraph 入门第一课:为什么编排要"图化",State/Node/Edge 三要素与第一个可运行的图。
为什么需要 LangGraph
旧的 AgentExecutor 是黑盒循环:只能线性跑,难分支、难并行、难人工介入。LangGraph 把智能体建模为带状态的图:流程看得见、改得动、停得下 —— 生产级 Agent 的编排底座(LangChain 官方新项目都基于它)。
三个核心概念(先背下来)
- State(状态):一个共享的 TypedDict,节点间传递与累加更新;
- Node(节点):普通函数,读状态、干活、返回状态更新;
- Edge(边):节点间的转移规则,条件边实现分支与循环。
第一个可运行的图
pip install langgraph
from langgraph.graph import StateGraph, MessagesState, START, END
def chatbot(state: MessagesState):
return {"messages": [llm.invoke(state["messages"])]}
graph = StateGraph(MessagesState)
graph.add_node("chatbot", chatbot)
graph.add_edge(START, "chatbot")
graph.add_edge("chatbot", END)
app = graph.compile()
result = app.invoke({"messages": [("user", "你好")]})
print(result["messages"][-1].content)
图化带来的四大能力
- 可控分支与循环:条件边随意组合拓扑;
- 持久化:任意步骤暂停/恢复(checkpoint);
- 可观察:每个节点的出入都可在 LangSmith 查看;
- 流式:逐节点/逐 token 推送中间状态。
本站《智能体编排》与《Harness》课程反复出现的"可控循环 + 状态 + 轨迹",在 LangGraph 里就是这套原语。
📝 课后练习
quiz-1 相比旧的 AgentExecutor,LangGraph 的核心优势是?