LangGraph快速入门-01概述

📅 2026/7/12 19:41:42 👁️ 阅读次数 📝 编程学习
LangGraph快速入门-01概述

文章目录

  • 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。
以下表格以更细粒度的方式展示了两者的区别:

特性LangGraphLangChain
抽象级别低级,提供细粒度控制高级,开箱即用
状态管理内置状态机和检查点需要自行管理状态
执行模型基于图的并行执行线性链式执行
持久化原生支持需要额外实现
适用场景复杂、有状态的智能体应用开发简单的链式调用

正是因为LangGraph和LangChain上述的区别,使得LangGraph在以下场景下,有了更加广泛的应用:

  • 复杂的多智能体系统
  • 需要长期记忆的应用
  • 需要人工审核的工作流
  • 后台处理任务和实时交互
  • 需要精细控制的定制化智能体编排

3.环境安装

1)下载包
环境为conda

pipinstalllanggraph==1.0.5

2)确认是否下载成功
pip show langgraph

pip show langgraph

4.简单示例

使用LangGraph构建一个应用,可以分为如下步骤:

  1. 定义状态;
  2. 定义节点函数;
  3. 通过状态创建builder实例,并添加节点和边;
  4. 对builder进行编译,得到可调用的graph对象;
  5. 调用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节点与边