LangGraph的介绍
LangGraph 把 LLM 应用从 “一条直线”变成了用State管理全局信息用Node拆分功能用Edge控制逻辑支持循环、分支、中断、恢复完美适配复杂 Agent。
·
在大模型应用从 “单轮对话” 走向 “复杂决策” 的今天,LangGraph 已经成为构建 LLM 智能体(Agent)最主流、最实用的框架之一。它基于 LangChain 生态,专门用来解决多步骤、有状态、可循环的 AI 工作流问题。
一、LangGraph 是什么?
简单说:LangGraph = 带状态 + 可循环 + 可视化的 LLM 工作流编排工具。
对比一下你就懂了:
- 普通 LangChain:线性执行,一步接一步,很难回头。
- LangGraph:像流程图一样,可以判断分支、循环重试、持久化状态、多节点协作。
它最适合做:
- 多智能体协作
- 复杂推理
- 工具自动调用
- 长流程任务
核心特点:
- State(状态):全局共享数据,所有节点都能读写
- Node(节点):每个节点是一个函数 / LLM / 工具调用
- Edge(边):节点之间的跳转逻辑
- Graph(图):把节点和边拼成完整流程
- 可循环、可中断、可恢复:不像普通链那样一跑到底
二、核心概念
1. State(状态)
整个流程的 “共享内存”。比如:
- 用户问题
- 历史消息
- 检索到的文档
- 工具返回结果
- 是否完成任务
所有节点都能读写这个状态。
2. Node(节点)
一个节点 = 一个功能单元:
- 调用 LLM
- 调用工具(搜索、计算器)
- 数据处理
- 条件判断
3. Edge(边)
决定下一步去哪:
- 普通边:A → B
- 条件边:根据结果决定去 B 还是 C
- 循环边:做完后回到前面重试(如 “反思→修正”)
三、实战示例
我们直接写一个最小可用 Demo,用 Python + LangGraph + ChatOpenAI(可换成任何模型)。
1. 安装依赖
pip install langgraph langchain langchain-openai
2. 定义 State
from typing import TypedDict, Annotated
from langgraph.graph import StateGraph, END
import operator
class AgentState(TypedDict):
question: str
thought: str
answer: str
is_done: bool
3. 写节点函数
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-3.5-turbo")
# 思考节点
def think_node(state: AgentState):
question = state["question"]
thought = llm.invoke(f"请分析问题:{question}").content
return {"thought": thought}
# 回答节点
def answer_node(state: AgentState):
thought = state["thought"]
answer = llm.invoke(f"根据思考给出最终答案:{thought}").content
return {"answer": answer, "is_done": True}
# 条件判断:是否结束
def should_end(state: AgentState):
if state["is_done"]:
return END
else:
return "think"
4. 构建 Graph
workflow = StateGraph(AgentState)
# 添加节点
workflow.add_node("think", think_node)
workflow.add_node("answer", answer_node)
# 设置起点
workflow.set_entry_point("think")
# 添加边
workflow.add_edge("think", "answer")
workflow.add_conditional_edges(
"answer",
should_end
)
# 编译
app = workflow.compile()
5. 运行
inputs = {"question": "为什么天空是蓝色的?"}
result = app.invoke(inputs)
print("思考过程:", result["thought"])
print("最终回答:", result["answer"])
这就是最精简的 LangGraph 智能体。
四、进阶
上面只是线性流程,LangGraph 真正的威力在循环与多智能体。
1. 自我修正(反思循环)
流程:
思考 → 生成 → 反思 → (不合格→重新生成)→ 结束
非常适合写作、代码、论文。
2. 多智能体协作
- 研究员:查资料
- 分析师:整理信息
- 写手:生成内容
- 评审:检查质量
每个角色一个 Node,通过 State 传递信息。
3. 可视化流程图
LangGraph 支持直接画出流程图:
from IPython.display import Image, display
display(Image(app.get_graph().draw_mermaid_png()))
调试、展示、汇报都非常直观。
五、总结
LangGraph 把 LLM 应用从 “一条直线”变成了“一张智能流程图”:
- 用 State 管理全局信息
- 用 Node 拆分功能
- 用 Edge 控制逻辑
- 支持循环、分支、中断、恢复
- 完美适配复杂 Agent
更多推荐



所有评论(0)