LangGraph 快速入门指南:开发者必看的核心知识点

1、 LangGraph 简介

在大模型技术持续发展的背景下,AI Agent 已然成为该领域的核心关注点。众多开发者积极投身于此,致力于打造能够自主决策、灵活互动的智能体。在竞争激烈的技术领域中,从 LangChain 衍生出来的独立平台 LangGraph,迅速在 Multi - Agent 开发框架中崭露头角,成为其中的杰出代表。

LangGraph 以有向无环图(DAG)作为核心数据结构,借助节点(Node)与边(Edge)的搭配,让开发者可以快速搭建起一个 Multi - Agent 系统。

对于追求高效且可靠开发的工程师而言,LangGraph 的核心优势体现在以下方面:

  • 敏捷高效:依托简洁统一的开发架构,对复杂的 AI Agent 开发流程进行标准化处理,降低了开发的难度;开发者能够快速复用节点和工作流模板,减少重复开发工作,显著缩短项目周期,实现从想法到实际应用的高效转变。
  • 可靠性和可控性: 借助审核检查与人工介入机制,保证智能体的行动精准且符合规范,同时在长期工作流中能够保留上下文,使智能体的行动始终朝着正确方向进行。
  • 高可扩展性: 开发者可以摆脱原有框架的限制,利用完全描述性的底层原语自由定制智能体,轻松设计出满足各种需求的可扩展多智能体系统。
  • 原生流式支持: 支持逐个 token 流式传输以及中间步骤流式输出,实时展示智能体的推理过程,提升交互的透明度。

无论是企业级复杂业务流程的自动化,还是创新型智能交互应用的开发,LangGraph 都能成为开发者的有力助手。接下来,就让我们踏上 LangGraph 的快速入门之路,去探寻它的强大功能和独特魅力。

2、 LangGraph 的核心概念

LangGraph 有三个最核心的概念,分别是:State、Node 和 Graph ,对这些概念的具体理解如下:

  • State: 即状态,它记录了智能体运行过程中的所有信息,包括输入数据、中间计算结果和最终输出,为智能体的持续运行提供了上下文。状态中的参数能够在多个节点之间保存和流转,是节点间通信的核心机制。
  • Node: 即节点,是构成 LangGraph 的基本单元。每个 Node 都可以实现特定的功能,比如数据处理、逻辑判断或者调用外部 API。
  • Graph: 即图结构,由众多 Node 通过特定逻辑连接而成,它定义了智能体的整体工作流程,各个 Node 在其中协同工作,推动 AI Agent 完成复杂的任务。

3、 把大象装进冰箱

接下来,我们通过一个例子,展示下如何使用LangGraph快速构建一个简单的多步骤工作流。

相信大家一定看过赵本山和宋丹丹的经典小品《钟点工》,里面有这样一段台词:

要把大象装冰箱,总共分三步:第一步,把冰箱门打开;第二步,把大象装进去;第三步,把冰箱门带上。

在这里插入图片描述

首先,让我们看看完整的实现代码:


from IPython.display import Image, display
from langgraph.constants import START, END
from langgraph.graph import StateGraph
from langgraph.graph.state import CompiledStateGraph
from typing_extensions import TypedDict

# 1. 定义状态
class ElephantInFridgeState(TypedDict):
    """
    定义状态——大象在冰箱中
    状态内的参数可以在多个节点间保存和流转
    """
    fridge_open: bool  # 冰箱门是否打开
    elephant_inside: bool  # 大象是否在冰箱内

# 2. 定义每个步骤的处理节点
def open_fridge(state: ElephantInFridgeState) -> ElephantInFridgeState:
    """第一步: 把冰箱门打开"""
    print("正在打开冰箱门...")
    # 执行当前节点业务逻辑
    print("冰箱门已打开!")
    # 更新状态
    state["fridge_open"] = True
    # 当前节点处理完成,更新状态
    return state

def put_elephant(state: ElephantInFridgeState) -> ElephantInFridgeState:
    """第二步: 把大象放进去"""
    # 获取当前状态
    if not state["fridge_open"]:
        raise ValueError("冰箱门未打开,无法放入大象!")
    # 执行当前节点业务逻辑
    print("正在把大象放入冰箱...")
    print("大象已放入冰箱!")
    # 更新状态
    state["elephant_inside"] = True
    # 当前节点处理完成,更新状态
    return state

def close_fridge(state: ElephantInFridgeState) -> ElephantInFridgeState:
    """第三步: 把冰箱门带上"""
    # 获取当前状态
    if not state["elephant_inside"]:
        print("警告:冰箱内没有大象,是否确认关闭?")
    # 执行当前节点业务逻辑
    print("正在关闭冰箱门...")
    print("冰箱门已关闭!")
    # 更新状态
    state["fridge_open"] = False
    # 当前节点处理完成,更新状态
    return state

# 3. 构建Graph工作流图
def build_graph() -> CompiledStateGraph:
    """构建"把大象装冰箱"的工作流程图"""
    # 创建图对象StateGraph
    graph = StateGraph(ElephantInFridgeState)
    # 添加节点Node
    graph.add_node("open_fridge", open_fridge)
    graph.add_node("put_elephant", put_elephant)
    graph.add_node("close_fridge", close_fridge)
    # 添加起始边
    graph.add_edge(START, "open_fridge")
    # 添加边Edge,将节点连接起来,形成工作流
    graph.add_edge("open_fridge", "put_elephant")
    graph.add_edge("put_elephant", "close_fridge")
    # 添加结束边
    graph.add_edge("close_fridge", END)
    # 返回编译好的图Graph
    return graph.compile()

# 4. 运行Graph工作流
def run_workflow():
    """运行"把大象装冰箱"的工作流"""
    # 构建图
    graph = build_graph()
    # 定义初始状态
    initial_state = ElephantInFridgeState(fridge_open=False, elephant_inside=False)
    # 运行图
    result = graph.invoke(initial_state)
    # 输出最终状态
    print("\n工作流执行完毕,最终状态:")
    print(f"冰箱门状态: {'打开' if result["fridge_open"] else '关闭'}")
    print(f"大象是否在冰箱内: {'是' if result["elephant_inside"] else '否'}")
    # 可视化工作流图
    display(Image(graph.get_graph().draw_mermaid_png()))
    return result

# 执行入口
if __name__ == "__main__":
    final_state = run_workflow()

接下来,我们详细分析下这段代码的功能。

定义状态类

我们首先创建了 ElephantInFridgeState 类,它继承自 LangGraph的 TypedDict 基类,是一种 key-value 的结构,用于管理整个工作流的状态。这个类包含两个 bool 类型属性:

  • fridge_open:表示冰箱门是否打开

  • elephant_inside:表示大象是否在冰箱内

这些状态变量将在各个节点之间传递,通过节点间的通信与协作,确保工作流的连贯性。

定义工作流节点

我们为三个步骤分别创建了函数作为节点:

  • open_fridge:负责将冰箱门状态设置为打开。

  • put_elephant:检查冰箱门是否打开,并将大象放入冰箱。

  • close_fridge:关闭冰箱门,并在冰箱内没有大象时发出警告。

我们可以看到,每个节点都遵循这样的处理范式:

  1. 从状态中获取所需数据。
  2. 执行当前节点的业务逻辑。
  3. 更新状态。
  4. 返回处理后的状态。

这种设计确保了状态在整个工作流中的一致性和可追踪性。

构建工作流图

build_graph 函数负责将各个节点连接成完整的工作流:

  • 创建 StateGraph 实例
  • 添加三个工作步骤作为节点
  • 通过 add_edge 方法添加边,定义节点之间的执行顺序
  • 添加起始边和结束边。这里 START 和 END 是 LangGraph 内置的常量,分表代表图的起始和结束节点。

这种图结构的设计让我们可以轻松定义复杂的工作流,包括条件分支、循环、回退、异步等高级特性。

运行工作流

run_workflow 函数演示了如何编译和执行工作流:

  • 构建图

  • 初始化状态

  • 编译图并执行

  • 输出最终状态

通过这种方式,我们可以清晰地看到每个步骤的执行结果,以及整个工作流的最终状态。

这里我还通过可视化的方式,打印了整个图的结构:

在这里插入图片描述

运行结果

最后,我们执行入口函数,就可以看到如下的效果:

在这里插入图片描述

这个简单的例子展示了LangGraph的核心功能:通过状态管理、节点定义和图构建,我们可以创建复杂的工作流,每个步骤都可以独立开发和测试,同时保持整体的一致性和可控性。

4、小结

通过对 LangGraph 的优势解析、核心概念拆解及 “把大象装冰箱” 的实战演练,我们清晰看到:LangGraph 以简洁高效的架构,将复杂 AI Agent 开发流程化繁为简。它通过 State、Node 和 Graph 的有机结合,赋予开发者精准掌控智能体行为的能力,无论是基础任务的有序推进,还是复杂场景的多智能体协作,都能从容应对。在 AI Agent 蓬勃发展的当下,LangGraph 不仅是开发者提升开发效率的利器,更为创新应用的落地提供了坚实支撑,有望推动人工智能迈向更智能、更灵活的新阶段。

5、如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值