LangChain 已老,LangGraph 当立?新一代编排框架的崛起

news2026/4/26 16:55:18
LangChain 已老,LangGraph 当立?新一代编排框架的崛起元数据标题:LangChain 已老,LangGraph 当立?新一代编排框架的崛起——从线性链到有向无环图再到循环状态机的AI应用架构革命关键词:LLM应用编排、LangChain、LangGraph、状态机、RAG、Agent、提示工程、异步IO摘要:本文从第一性原理出发,梳理了LLM应用从最初“单轮提示-单模型输出”到“多步骤编排”再到“复杂状态管理Agent”的技术演进轨迹,深度对比了LangChain的线性/模块化抽象与LangGraph的循环有向无环状态机(RDFS+)核心架构差异,剖析了两者在复杂度控制、可观测性、调试难度、性能优化、Agent实现效率等维度的优劣势;同时提供了RAG增强对话Agent的完整LangChain重构→LangGraph迁移的案例,包含Python生产级代码、Mermaid架构图、算法复杂度分析、最佳实践与行业趋势预测。1. 概念基础1.1 LLM应用架构的历史轨迹1.1.1 第一代:单提示闭环(2022.11-2023.03)以ChatGPT API、Claude API的发布为起点,LLM应用进入“0→1”的爆发期。此时的应用架构极为简单,本质是**“前端输入→单轮提示构建→LLM API调用→结果清洗→前端输出”** 的单节点闭环:技术栈:仅需HTTP客户端(如Axios、aiohttp)、字符串拼接工具典型应用:初代翻译插件、文案生成器、代码片段补全局限性:完全依赖模型的零样本/少样本推理能力,无多步骤任务拆分,无外部知识/工具集成,无对话上下文的持久化与状态感知,容错率为0——只要LLM在某一步推理失败,整个应用就会崩溃。1.1.2 第二代:模块化线性链(2023.03-2024.02)为了解决单提示闭环的局限,以Harrison Chase为首的团队推出了LangChain v0.0.x,开创性地提出了“LLM是计算核心,外部工具/记忆/文档是IO接口,所有复杂任务可拆分为标准化的链(Chain)”的核心思想。这一代架构的核心特征是模块化抽象+线性执行顺序:技术栈:LangChain Core、LangChain Community、LangChain OpenAI/Claude/Anthropic等模型集成库标准化组件:模型(Model):LLM、ChatModel、Embedding提示(Prompt):PromptTemplate、ChatPromptTemplate、FewShotPromptTemplate工具(Tool):预定义的搜索、数学计算、文档解析工具,自定义工具装饰器记忆(Memory):ConversationBufferMemory、ConversationSummaryMemory、ConversationBufferWindowMemory、VectorStoreRetrieverMemory文档加载器(Loader):PDF、Word、CSV、网页等多种格式的解析工具向量存储(VectorStore):Chroma、Pinecone、Weaviate等向量数据库的集成链(Chain):所有组件的线性组合器,如SimpleSequentialChain、SequentialChain、LLMChain、RetrievalQAChain、ConversationalRetrievalChain典型应用:初代结构化RAG、简单多工具问答Agent(基于零样本/少样本工具选择提示)、对话摘要生成器局限性:执行顺序固化:SequentialChain严格按照定义顺序执行,无法根据LLM的输出动态调整后续步骤(如文档检索后LLM判断知识不足,无法自动切换工具再次搜索);状态管理混乱:Memory组件虽能存储对话上下文,但状态的定义、更新、传递是隐含的(Memory内部维护字典/列表,通过Chain的参数隐式传递),缺乏显式的状态定义机制,调试时难以追踪状态变化;可观测性差:LangChain v0.0.x的默认日志仅包含输入输出,缺乏对Chain执行路径、每个组件的耗时、状态快照的详细记录;Agent实现脆弱:基于“工具选择提示→LLM返回JSON→解析JSON→调用工具→再次提示”的零样本Agent(ZeroShotAgent)对提示工程要求极高,稍有不慎就会导致JSON解析失败或工具选择错误,且无法处理循环任务(如代码调试→运行→再调试);复杂度失控:当应用需要集成10+工具、3+个状态变量时,SequentialChain的代码会变得极其臃肿,难以维护。1.1.3 第三代:循环有向无环状态机(2024.02至今)随着Agent技术的发展(如AutoGPT、BabyAGI的开源,OpenAI GPT-4o Realtime API的发布),LLM应用对动态执行路径、显式状态管理、循环任务处理、强可观测性、高容错性的需求越来越强烈。Harrison Chase团队在LangChain v0.1.x中引入了LangGraph,将LLM应用的核心抽象从“线性链”升级为“有向无环状态机的循环扩展(RDFS+)”——本质上,LangGraph是一个基于事件驱动的、状态优先的、支持循环的有向无环图执行引擎。这一代架构的核心特征是显式状态定义+任意执行路径+循环任务支持+强可观测性+模块化/自定义性平衡:技术栈:LangGraph Core、LangGraph Community、LangChain v0.1.x+、LangSmith(官方可观测性平台)标准化组件:状态(State):显式定义的、类型安全的(支持Pydantic、TypedDict、Python原生字典)状态容器,分为Shared State(全局状态,所有节点可访问)和Private State(仅特定节点可访问,v0.2.x引入)节点(Node):执行逻辑的基本单元,可以是LLM调用、工具调用、自定义Python函数、甚至是另一个LangGraph子图边(Edge):节点之间的连接关系,分为三种类型:条件边(Conditional Edge):根据状态中的某个变量的值,动态选择下一个节点无条件边(Unconditional Edge):直接连接两个节点,执行完前一个节点后自动跳转到后一个节点循环边(Cyclic Edge):连接一个节点的输出到自身或之前的节点,支持循环任务处理(如代码调试、迭代优化)子图(Subgraph):将一组节点和边封装成一个可复用的单元,类似于函数检查点(Checkpoint):将当前状态的快照保存到内存/磁盘/数据库中,支持断点续传、历史回溯、A/B测试典型应用:结构化RAG增强对话Agent、代码调试Agent、任务规划Agent(如ReAct Agent、Plan-and-Execute Agent、Tree-of-Thought Agent)、多Agent协作系统(如两个Agent分别负责代码生成和代码审查)、实时流处理Agent(如GPT-4o Realtime API的封装)核心优势:执行路径灵活:通过条件边可以实现任意复杂的执行路径(如知识不足时切换工具、代码错误时自动循环调试);状态管理清晰:显式定义状态容器,类型安全,调试时可通过检查点直接查看任意时刻的状态快照;可观测性强:LangGraph原生集成LangSmith,可以记录每个节点的输入输出、耗时、状态变化、执行路径,支持可视化调试;Agent实现健壮:原生支持ReAct、Plan-and-Execute、Tree-of-Thought等主流Agent范式,通过循环边可以处理迭代任务,条件边可以处理异常情况;复杂度可控:通过子图可以将复杂的应用拆分为多个可复用的单元,代码结构清晰,易于维护;性能优化便捷:通过检查点可以避免重复计算,通过异步节点可以提高并发性能,通过向量存储的持久化可以提高检索效率。1.2 问题空间定义从本质上讲,LLM应用编排的核心问题是:如何在保证LLM推理能力的同时,高效地管理多步骤任务的执行顺序、状态变化、外部工具/知识的集成、以及异常情况的处理?为了更清晰地定义这个问题,我们可以将其分解为以下五个子问题:任务分解与执行顺序管理:如何将一个复杂的自然语言任务(如“帮我写一篇关于量子计算的科普文章,并引用最新的3篇Nature论文,最后翻译成中文”)拆分为标准化的子任务,并根据子任务的执行结果动态调整后续子任务的顺序?状态管理:如何显式、安全、高效地存储和传递子任务之间的状态信息(如科普文章的草稿、Nature论文的摘要、翻译的中间结果)?外部工具/知识集成:如何标准化地集成各种外部工具(如搜索、代码运行、翻译)和外部知识(如向量存储、关系型数据库、API接口),并处理工具调用失败、知识不足等异常情况?可观测性与调试:如何记录和可视化每个子任务的输入输出、耗时、状态变化、执行路径,以便快速定位和修复问题?性能优化与可扩展性:如何提高应用的并发性能、减少重复计算、支持大规模用户访问?1.3 术语精确性为了避免概念混淆,我们先对本文中涉及的核心术语进行精确的定义:术语定义来源/标准大语言模型(LLM)一种基于Transformer架构的预训练语言模型,具有强大的自然语言理解、生成、推理能力,参数规模通常在10亿以上OpenAI、Anthropic、Google DeepMindLLM应用以LLM为核心计算组件,集成外部工具/知识/记忆,解决特定自然语言任务的软件系统本文定义编排(Orchestration)将多个独立的组件(如LLM、工具、记忆、文档)按照一定的逻辑组合成一个完整的应用,并管理组件之间的执行顺序、状态传递、异常处理的过程DevOps→AI应用编排迁移定义链(Chain)LangChain v0.0.x/v0.1.x中的核心抽象,指多个组件的线性组合器LangChain官方文档有向无环图(DAG)一种由节点和有向边组成的图,其中没有循环路径计算机科学基础概念状态机(FSM)一种数学模型,由一组状态、一组输入、一组输出、一个状态转移函数和一个初始状态组成计算机科学基础概念循环有向无环状态机(RDFS+)本文对LangGraph核心架构的简称,指一种基于事件驱动的、支持显式状态定义、任意执行路径(包括循环,但循环需通过条件边显式终止)的有向无环图执行引擎本文定义节点(Node)LangGraph中的核心执行单元,可以是LLM调用、工具调用、自定义函数或子图LangGraph官方文档边(Edge)LangGraph中连接节点的逻辑单元,分为条件边、无条件边和循环边LangGraph官方文档检查点(Checkpoint)LangGraph中保存状态快照的机制,支持断点续传、历史回溯、A/B测试LangGraph官方文档LangSmithLangChain官方推出的LLM应用可观测性、调试、评估平台LangChain官方文档ReAct Agent一种主流的Agent范式,通过“推理(Reasoning)→行动(Acting)→观察(Observing)”的循环执行任务论文《ReAct: Synergizing Reasoning and Acting in Language Models》Plan-and-Execute Agent一种主流的Agent范式,通过“规划(Planning)→执行(Executing)→反思(Reflecting)”的循环执行任务论文《Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models》的延伸Tree-of-Thought Agent一种主流的Agent范式,通过“生成多个候选思路→评估候选思路→剪枝→扩展最优思路”的循环执行任务论文《Tree of Thoughts: Deliberate Problem Solving with Large Language Models》2. 理论框架2.1 第一性原理分析2.1.1 LangChain的第一性原理推导LangChain的创始人Harrison Chase在多个场合提到,LangChain的核心思想来源于**“计算抽象”** 的第一性原理:任何复杂的计算系统都可以拆分为标准化的输入输出接口和组合逻辑。我们可以从以下几个基本公理出发,推导出LangChain的核心架构:公理1:LLM的输入是自然语言字符串或结构化提示对象,输出是自然语言字符串或结构化对象(如JSON、XML);公理2:任何复杂的自然语言任务都可以拆分为一系列由LLM或外部工具/记忆/文档处理的子任务;公理3:子任务之间的输入输出是可序列化的字符串或对象;公理4:子任务的执行顺序是可预先定义的线性顺序(这是LangChain v0.0.x的核心假设,也是其最大的局限性)。基于以上四个公理,我们可以推导出LangChain的核心组件:标准化输入输出接口:PromptTemplate(输入接口)、LLM/ChatModel/Embedding(计算接口)、OutputParser(输出接口);标准化子任务组件:Tool(外部工具接口)、Memory(状态存储与传递接口)、Loader(文档加载接口)、VectorStore(向量存储接口);标准化组合逻辑:Chain(线性组合子任务的接口)。2.1.2 LangGraph的第一性原理推导LangGraph的核心思想来源于**“状态机+事件驱动编程”** 的第一性原理:任何复杂的交互式计算系统都可以建模为一个状态机,其中状态的变化由事件(如LLM的输出、用户的输入、工具调用的结果)驱动,事件的处理由条件逻辑决定。我们可以从以下几个更普适的基本公理出发,推导出LangGraph的核心架构:公理1:LLM应用是交互式计算系统,用户的输入、LLM的输出、工具调用的结果都是事件;公理2:任何复杂的交互式计算系统都可以建模为一个显式定义的状态容器和一组状态转移函数;公理3:状态转移函数的输入是当前状态和事件,输出是新的状态和下一个状态转移函数的选择;公理4:状态转移函数可以是LLM调用、工具调用、自定义函数或子图;公理5:状态转移的顺序是任意的,包括循环,但循环需通过条件逻辑显式终止。基于以上五个公理,我们可以推导出LangGraph的核心组件:显式状态容器:State(类型安全的状态存储单元);状态转移函数:Node(执行逻辑的基本单元);状态转移逻辑:Edge(连接节点的逻辑单元,分为条件边、无条件边和循环边);状态持久化与回溯机制:Checkpoint(保存状态快照的机制);事件驱动执行引擎:LangGraph Core(负责管理节点的执行、边的跳转、状态的更新和检查点的保存)。2.2 数学形式化为了更精确地描述LangChain和LangGraph的核心架构,我们可以用数学语言对其进行形式化。2.2.1 LangChain的数学形式化LangChain的核心是线性链(Sequential Chain),我们可以将其形式化为一个线性函数组合器:设:C 1 , C 2 , … , C n C_1, C_2, \dots, C_nC1​,C2​,…,Cn​为n nn个标准化组件(可以是LLM、Tool、Memory等);I 1 , I 2 , … , I n I_1, I_2, \dots, I_nI1​,I2​,…,In​为组件C 1 , C 2 , … , C n C_1, C_2, \dots, C_nC1​,C2​,…,Cn​的输入空间;O 1 , O 2 , … , O n O_1, O_2, \dots, O_nO1​,O2​,…,On​为组件C 1 , C 2 , … , C n C_1, C_2, \dots, C_nC1​,C2​,…,Cn​的输出空间;对于任意i ∈ { 1 , 2 , … , n − 1 } i \in \{1, 2, \dots, n-1\}i∈{1,2,…,n−1},有O i ⊆ I i + 1 O_i \subseteq I_{i+1}Oi​⊆Ii+1​(线性链的核心约束:前一个组件的输出必须是后一个组件的输入的子集);对于任意i ∈ { 1 , 2 , … , n } i \in \{1, 2, \dots, n\}i∈{1,2,…,n},组件C i C_iCi​可以表示为一个函数f i : I i → O i f_i: I_i \to O_if

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2537587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…