掘金 人工智能 前天 17:28
Langchain/Langgraph知识点1
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

LangGraph是LangChain生态中的一个重要创新,它将传统的线性链式调用升级为更具弹性的图式编排。与LangChain的固定流程不同,LangGraph通过节点(Node)和边(Edge)的组合,构建出可循环、可分支的复杂流程,并引入中央State作为共享的上下文容器,支持断点续跑和持久化。这使得LangGraph在处理多智能体协作、长时任务以及需要动态决策的场景中表现出色,能够更高效地管理和传递信息,实现更高的并发吞吐量,是构建复杂AI应用的新选择。

🔹 **设计哲学革新:** LangGraph采用图式(Graph)而非链式(Chain)设计,通过节点(Node)和边(Edge)的组合,支持循环和分支,打破了LangChain线性的局限,为AI编排提供了更大的灵活性,能够构建更复杂的应用逻辑。

🔹 **中央State管理:** LangGraph引入了中央State(State)作为共享的Pydantic数据结构,取代了LangChain中分散的Memory组件。State充当了全局上下文容器,所有节点可以直接读写,并支持检查点持久化和断点续跑,解决了上下文传递和长期记忆的难题。

🔹 **强大的控制流与并发:** LangGraph的条件边和循环边允许LLM动态决定下一步执行路径,实现更智能的控制流。同时,它原生支持并行节点,官方压测显示并发吞吐量可提高3倍,这对于多智能体协作和需要并行处理的任务至关重要。

🔹 **广泛的适用场景:** 相比LangChain主要适用于问答机器人和固定流程的数据处理,LangGraph更适合多智能体协作、长时任务、需要反复决策的系统(如金融风控)等复杂场景,能够更有效地处理动态和迭代的过程。

🔹 **Memory与State的显著差异:** LangChain的Memory是封装的记忆插件,作用范围有限且需手动传递;而LangGraph的State是全局共享的数据容器,任何节点都能访问,并具备持久化能力,是Memory+消息+快照的三合一结构,提供了更统一和强大的状态管理能力。

和Langchain的区别,为什么要有langgraph?

维度LangChainLangGraph
1. 设计哲学链式(Chain):线性、顺序、无环 DAG图式(Graph):节点+边,可循环、可分支
2. 状态管理依赖 Memory 组件,上下文有限,无全局持久化内置中央 State,支持检查点持久化与断点续跑
3. 控制流固定 A→B→C,条件逻辑需手动编码条件边 + 循环边,LLM 可动态决定下一步
4. 并发能力单线程/简单并行原生支持并行节点,官方压测并发吞吐高 3 倍
5. 适用场景问答机器人、固定流程的数据处理多智能体协作、长时任务、需要反复决策的系统(如金融风控)
6. 与 LLM 关系直接调用 LLM,链内顺序组合可把任意 LangChain Chain/Tool 作为节点复用
7. 使用体验上手简单,API 直观需理解图、状态、边,学习曲线略高

LangGraph 编排的原理是什么?

LangGraph 编排原理的 4 个核心要点,可拆解如下:

    核心抽象 • 节点(Node):任何可执行单元——LLM、工具、API、子图——均封装为节点。 • 边(Edge):描述节点先后关系,支持固定边(A→B)与条件边(if-else 路由)。 • 状态(State):共享的 Pydantic 数据结构,在节点间传递并作为上下文与内存。 • 图(Graph):节点与边的组合,编译成可调用对象,对外暴露 invoke/stream 等接口。

    运行时流程 • 初始化:用输入数据填充初始状态。 • 超步调度:引擎根据当前状态和边策略,选出就绪节点并行执行。 • 状态更新:节点执行后写回状态,并把更新后的状态沿出边发送。 • 终止判断:无就绪节点或满足终止条件时结束。

    与 DAG(无环图) 的区别 • 支持任意有向图,不局限于无环结构。 • 允许循环执行,只要状态收敛即可安全终止。 • DAG 只是 LangGraph 的一个子集。

    与 LangChain 的关系 • LangChain 的链是线性或简单分支结构,靠 Memory 维持上下文。 • LangGraph 把“链”泛化为任意图,用状态机式机制支持循环、并行、多 Agent 协作等复杂场景。

State是什么?

    上下文容器 把对话历史、工具结果、用户变量等一切需要跨节点传递的信息,放进一个统一的 Pydantic/BaseModel 对象里。消息总线 节点执行完只干两件事: • 读取当前 State • 返回对 State 的“补丁”(delta) 运行时引擎把这些补丁合并,形成新的 State,再沿着边发出去,供下游节点继续消费。持久化锚点 通过 CheckpointSaver,State 可以被序列化到线程级存储;恢复时只需把上一步的 State 反序列化,就能从断点继续跑,实现长期记忆。

State 就是 LangGraph 的「内存+消息+快照」三合一的数据结构

Memory和State的区别

维度Memory(LangChain 语境)State(LangGraph 语境)
1. 本质一个记忆插件(对象/组件),封装了“如何保存/读取历史”一个数据容器(Pydantic/BaseModel),放在图的全局 Context 里,节点直接读/写
2. 作用范围只能被所在链访问;跨链需手动传递整张图共享;任何节点都能访问同一实例
3. 生命周期链执行完就结束;持久化需额外配置可随检查点持久化到磁盘,线程重启后自动恢复
4. 数据形态通常是“对话历史列表”或“向量检索器”任意字段(messages、变量、文件句柄、任务状态等)
5. 使用方式在 Chain 构造时传 memory= 参数节点函数签名里直接声明 state: State 并返回 {"field": new_value}
6. 可变性由 Memory 类内部控制,外部只读每个节点可直接修改字段,引擎合并补丁
7. 与并发关系链内通常是顺序执行,无需并发保护图支持并行节点,State 由引擎做冲突合并

两种架构中Memory 是如何实现的?

维度LangChainLangGraph
1. 设计哲学链式(Chain):线性、顺序、无环 DAG图式(Graph):节点+边,可循环、可分支
2. 状态管理依赖 Memory 组件,上下文有限,无全局持久化内置中央 State,支持检查点持久化与断点续跑
3. 控制流固定 A→B→C,条件逻辑需手动编码条件边 + 循环边,LLM 可动态决定下一步
4. 并发能力单线程/简单并行原生支持并行节点,官方压测并发吞吐高 3 倍
5. 适用场景问答机器人、固定流程的数据处理多智能体协作、长时任务、需要反复决策的系统(如金融风控)
6. 与 LLM 关系直接调用 LLM,链内顺序组合可把任意 LangChain Chain/Tool 作为节点复用
7. 使用体验上手简单,API 直观需理解图、状态、边,学习曲线略高

State和Memory的区别

维度Memory(LangChain 语境)State(LangGraph 语境)
1. 本质一个记忆插件(对象/组件),封装了“如何保存/读取历史”一个数据容器(Pydantic/BaseModel),放在图的全局 Context 里,节点直接读/写
2. 作用范围只能被所在链访问;跨链需手动传递整张图共享;任何节点都能访问同一实例
3. 生命周期链执行完就结束;持久化需额外配置可随检查点持久化到磁盘,线程重启后自动恢复
4. 数据形态通常是“对话历史列表”或“向量检索器”任意字段(messages、变量、文件句柄、任务状态等)
5. 使用方式在 Chain 构造时传 memory= 参数节点函数签名里直接声明 state: State 并返回 {"field": new_value}
6. 可变性由 Memory 类内部控制,外部只读每个节点可直接修改字段,引擎合并补丁
7. 与并发关系链内通常是顺序执行,无需并发保护图支持并行节点,State 由引擎做冲突合并

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

LangGraph LangChain AI编排 多智能体 状态管理
相关文章