文章目录
- 1.什么是LangGraph
- 2.与LangChain区别
- 3.环境安装
- 4.简单示例
1.什么是LangGraph
LangGraph 是一个低级编排框架和运行时环境,用于构建、管理和部署长期运行的有状态智能体(agents)。核心理念是将 Agent 工作流建模为图(Graph),其中:
- 节点(Nodes):代表计算单元,可以是 LLM 调用、工具执行或任何自定义逻辑
- 边(Edges):定义节点之间的转换逻辑,决定执行流程
- 状态(State):在整个图执行过程中共享和传递的数据
LangGraph提供了构建生产级智能体应用的核心能力:
- 持久化执行:构建能够从故障中恢复并长时间运行的智能体
- 人机协作:在任何时刻检查和修改智能体状态
- 记忆管理:支持短期工作记忆和跨会话的长期记忆
- 流式处理:专为流式工作流设计
- 生产级部署:为有状态、长期运行的工作流提供可扩展的基础设施
LangGraph官方源码地址及官网地址如下:
- GitHub地址:https://github.com/langchain-ai/langgraph
- 官方文档:https://docs.langchain.com/oss/python/langgraph/overview
2.与LangChain区别
LangGraph与LangChain的高级抽象不同,它提供了更细粒度的控制,让开发者能够精确控制智能体的执行流程,适合需要定制化编排的复杂应用场景。
通过一句话概述LangChain和LangGraph的区别:当 LLM 应用需要「有状态、可循环、可分支的多步骤控制流(像一个可回溯的流程图/状态机)」时,LangChain 很难优雅完成,而必须用 LangGraph。
以下表格以更细粒度的方式展示了两者的区别:
| 特性 | LangGraph | LangChain |
|---|---|---|
| 抽象级别 | 低级,提供细粒度控制 | 高级,开箱即用 |
| 状态管理 | 内置状态机和检查点 | 需要自行管理状态 |
| 执行模型 | 基于图的并行执行 | 线性链式执行 |
| 持久化 | 原生支持 | 需要额外实现 |
| 适用场景 | 复杂、有状态的智能体应用开发 | 简单的链式调用 |
正是因为LangGraph和LangChain上述的区别,使得LangGraph在以下场景下,有了更加广泛的应用:
- 复杂的多智能体系统
- 需要长期记忆的应用
- 需要人工审核的工作流
- 后台处理任务和实时交互
- 需要精细控制的定制化智能体编排
3.环境安装
1)下载包
环境为conda
pipinstalllanggraph==1.0.52)确认是否下载成功
pip show langgraph
pip show langgraph4.简单示例
使用LangGraph构建一个应用,可以分为如下步骤:
- 定义状态;
- 定义节点函数;
- 通过状态创建builder实例,并添加节点和边;
- 对builder进行编译,得到可调用的graph对象;
- 调用graph。
示例
fromtypingimportTypedDictfromlanggraph.constantsimportSTART,ENDfromlanggraph.graphimportStateGraph# 1.定义状态classHelloState(TypedDict):message:str# 2.定义节点defhello_node(state:HelloState):# 获取状态中message的值msg=state["message"]return{"message":f"Hello{msg}"}# 3.创建状态图实例state_graph=StateGraph(state_schema=HelloState)# 4.给状态图添加节点state_graph.add_node(hello_node)# 5.给状态图添加边state_graph.add_edge(START,"hello_node").add_edge("hello_node",END)# 6.编译状态图compiled_state_graph=state_graph.compile()# 7.执行res=compiled_state_graph.invoke({"message":"LangGraph"})print(res)# 查看图的结构需要下载grandalf# pip install grandalf# 获取图graph=compiled_state_graph.get_graph()# 打印图的ascii码graph_ascii=graph.draw_ascii()print(graph_ascii)结果
{'message':'Hello LangGraph'}+-----------+|__start__|+-----------+ * * * +------------+|hello_node|+------------+ * * * +---------+|__end__|+---------+相关文章:
大模型快速入门-01大模型常识
大模型快速入门-02大语言模型的架构演进
大模型快速入门-03模型的训练范式和算力
大模型快速入门-04大模型的工程实现(上)
大模型快速入门-05大模型的工程实现(中)
大模型快速入门-06大模型的工程实现(下)
LangChain:
LangChain快速入门-01概述
LangChain快速入门-02Model I/O
LangChain快速入门-03RAG(概述与文档加载)
LangChain快速入门-04RAG(文档切分与嵌入)
LangChain快速入门-05RAG(向量数据库)
LangChain快速入门-06Agents
LangGraph:
LangGraph快速入门-01概述
LangGraph快速入门-02状态
LangGraph快速入门-03节点与边