前端学AI:LangGraph学习-基础概念
本文主要介绍下LangGraph 的一些基础概念,包括定义、应用场景、核心概念和主要功能,让读者了解什么是LangGraph,以及它能做什么,在哪些场景用,使用哪些主要功能等。
供自己以后查漏补缺,也欢迎同道朋友交流学习。
引言
最近在学习 LangGraph,顺便分享下。
什么是LangGraph
LangGraph
是 LangChain
的扩展库,专门用于构建和管理复杂的状态机
和工作流程
。提供声明式
的工作流程定义方式,以及支持循环计算
和状态管理
,使得复杂业务逻辑的实现变得更加简洁和高效。
在 LangChain 的基础上扩展了功能,LangGraph
增加了对异步操作
、错误处理
和并发任务
的支持。它的状态化
特性使得系统能够记住之前的交互
或用户偏好
,从而提供更个性化的响应。
同时,其支持循环计算
的能力突破了传统工作流的限制,使开发者能够更自然地模拟现实世界中的决策过程。
LangGraph应用场景
LangGraph
凭借其支持循环计算
和状态管理
的特性,在多种复杂场景中表现出色。
交互式代理(Interactive Agents)
它的状态化
特性使其非常适合构建能够进行多轮对话
的智能代理。可以通过状态图
(State Graph)跟踪对话历史,并根据用户输入动态调整后续的响应逻辑。循环计算功能还允许代理在需要时反复询问
或澄清问题
,确保对话自然流畅。这种能力特别适用于需要上下文感知
的场景。
例如,聊天机器人可以利用 LangGraph 记住用户的请求
(如"我的订单状态"),并在多轮对话中逐步收集
必要信息(订单号、用户信息等),最终提供准确的答复。如果用户的问题不完整,机器人可以通过循环逻辑返回到澄清步骤,直到满足条件。
复杂决策系统(Complex Decision-Making Systems)
LangGraph
在复杂决策系统中表现出色,它能够通过条件边
(Conditional Edges)和状态管理处理多变量标准,并根据实时数据
更新决策路径
。
例如,在自动驾驶
场景中,可以用来构建决策系统
,处理诸如"是否变道""是否减速"等复杂判断。系统通过状态图
跟踪车辆状态(如速度、周围环境),并根据传感器数据动态选择行动。如果条件未满足(如前方有障碍物),它可以循环回到评估步骤,直到安全执行决策。
迭代处理模型(Iterative Processing Models)
它的循环计算
功能非常适合需要通过多次迭代改进结果的任务。可以在每次循环中根据反馈或评估标准调整输出,直到满足预设条件。
例如,内容生成系统
可以用来生成文章或创意文本。系统首先生成初稿,然后通过循环逻辑根据用户反馈(如"更简洁一点")或内部评估(如语法检查)进行优化。每次迭代都会更新状态,最终输出符合要求的内容。
LangGraph核心概念
概念 | 定义 | 主要功能 | 详细解释 |
---|---|---|---|
节点(Nodes) | LangGraph 中的计算单元 ,通常是同步或异步函数,负责执行工作流中的特定逻辑 。 |
读取和更新状态通道,执行任务如调用 LLM、处理输入或与外部工具交互。 | 节点通过与状态通道交互来工作,通道是键值对 ,存储当前状态 。节点可以覆盖或追加通道值,具体取决于归约函数(reducer) 。支持自定义逻辑和工具集成,适合多代理系统。 |
边(Edges) | 定义节点之间连接的路径 ,控制工作流的执行流向 。 |
控制流程 ,可以是静态的 (固定下一个节点)或条件性的 (动态决策)。 |
条件边 通过函数评估状态 ,决定下一步节点或终止图。支持分支逻辑和人类干预。 |
状态图(State Graph) | 由节点和边组成的有向图 ,管理复杂、状态化的工作流 。 |
支持循环计算 和状态管理 ,通过通道 和归约函数 维护状态。 |
状态通过通道管理,每个通道有默认值和归约函数。支持持久化机制 (如按线程存储),允许长时间运行的工作流和中断恢复。调试工具如 LangGraph Studio 增强可视化。 |
LangGraph主要功能
循环计算(Cyclic Computations)
循环计算
是 LangGraph 的一大亮点,能让任务"转圈"跑,不像传统的工作流程(比如有向无环图
,简称 DAG
)那样只能直线走到底。
传统的 DAG
就像一条单行道,走到头就停了,而 LangGraph
可以让任务回头再来一遍。
这对模拟"像人一样的智能"(类代理行为)特别有用,比如一个智能助手在找答案时,如果第一次没找对,可以再试一次,调整方法,直到成功。
状态化执行(Stateful Execution)
状态化执行
就是 LangGraph 能"记住东西"。它使用 MemorySaver
的工具,把任务的状态(比如对话记录或用户选择)保存下来,像给每个任务开个小笔记本,随时翻看和更新。
这让程序变得更聪明,能根据之前的记录调整下一步,比如一个聊天机器人记住你说过的话,下次回答更贴心。
条件逻辑(Conditional Logic)
条件逻辑
是 LangGraph 的"决策大脑",通过条件边
,根据当前情况决定下一步怎么走。
比如,一个聊天机器人发现你没回答完整,它就回头再问你,而不是傻乎乎地继续往下走。
这种灵活的决策方式特别适合需要随机应变的场景,比如自动驾驶
根据路况决定刹车还是转弯。