LangChain 与 LangGraph:如何选择合适的工具

最近很多做Agent开发的朋友问我:

LangChain 和 LangGraph 有啥区别?

甚至还有更直白的:

是不是就像 链表 vs 图?

我的回答:非常形象。

  • LangChain ≈ 链表(单向线性)

  • LangGraph ≈ 有向图(DAG)

图片

下面的内容翻译自 https://www.js-craft.io/blog/langchain-vs-langgraph/

LangChain 和 LangGraph 经常引起混淆。我能理解为什么!

它们不仅名称相似,而且由同一支团队开发并具有共同的目的:与LLM(大型语言模型)协同工作并进行集成。

更有趣的是,在某个特定点,一个可以取代另一个。

把它们想象成锯子和斧头。两者都用于切割,但根据具体工作,其中一种工具可能比另一种更有效。在某些情况下,你甚至可以同时使用两种工具来获得最佳效果。

我认为下图很好地解释了我们可以定义的 LangChain 与 LangGraph 的流程类型的差异:

图片

现在,回到正文。

顾名思义,LangChain 是基于“链”构建的。“链”指的是顺序工作流,其中每个步骤都遵循预先定义的顺序。它非常适合 A → B → C 类型的流程,其中每个步骤都紧接着前一个步骤。

这是定义一个非常简单的链的代码:

const chain = pointA.pipe(pointB).pipe(pointC)

另一方面,LangGraph 支持动态分支流程。它允许在每一步进行决策,根据条件启用 A → B 或 C 之类的路径。这使得它非常适合 AI 代理用例,其中 LLM 需要动态确定下一步操作。

例如,上述结构的 LangGraph 代码如下所示:

const graph = new StateGraph()
 .addNode("A", functionA)
 .addNode("B", functionB)
 .addNode("C", functionC)
 .addConditionalEdges("A", makeDecision, ["B", "C])

考虑以下提示:

Translate this text into English and summarize it: 
<< long text in Spanish here >>

这是顺序链 A->B->C 的经典示例,其中:

  • A 正在翻译文本

  • B 总结翻译文本

  • C 输出结果

在链中,一个步骤的输出被用作下一步的输入。

现在,我们来看一个AI Agent助手帮助用户选择周末活动的场景:

You are an AI assistant helping a user choose a weekend activity.  
Step 1: Ask if they prefer indoors or outdoors.  
- If indoors, do a web search and suggest a movie or a book 
- If outdoors, check the weather and 
  - If the weather is good, use Google Maps to suggest a hiking track  
  - If it rains, use skyscanner.com to search for a flight. 
Step 2: Output the final recommendation.

在这种情况下,流程会根据用户输入和外部条件进行分支。AI 代理可以动态调用不同的工具,例如网页搜索、天气 API、谷歌地图或天巡。这正是 LangGraph 所擅长的工作流程。

顺便提一下,LangChain 确实提供了一些类似RunnableMap的分支功能。但 LangGraph 在处理这类情况时更加符合人体工程学。

这些工具并非互相排斥,它们也可以协同工作。例如,在 LangGraph 结构中,一个节点可以包含使用 LangChain 实现的一系列步骤。

但总体思路是要记住:

  • LangChain将成为您使用的工具,以添加 LLM 集成和更简单的直接流程

  • 而LangGraph是定义 AI 智能体流程的完美工具,有时 LLM 会决定接下来调用图的哪个节点。

我认为,最好先了解 LangChain 的基础知识,然后再学习 LangGraph。虽然在使用 LangGraph 创建智能体之前,你不需要完全掌握 LangChain,但扎实掌握其基础知识肯定会有所帮助。

 如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

基于此,我用做产品的心态来打磨这份大模型教程,深挖痛点并持续修改了近70次后,终于把整个AI大模型的学习门槛,降到了最低!

在这个版本当中:

第一您不需要具备任何算法和数学的基础
第二不要求准备高配置的电脑
第三不必懂Python等任何编程语言

您只需要听我讲,跟着我做即可,为了让学习的道路变得更简单,这份大模型教程已经给大家整理并打包,现在将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

五、AI产品经理大模型教程

在这里插入图片描述

LLM大模型学习路线 

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

<think>我们正在讨论LangChainLangGraph之间的关系。根据引用[1]引用[2]的内容,我们可以总结如下:1.**LangGraph是建立在LangChain之上的**:引用[1]明确指出“LangGraph建立在LangChain的基础上”,这意味着LangGraph利用LangChain的组件(如模型、提示、工具等)来构建更复杂的Agent系统。2.**设计目标不同**:-**LangChain**:专注于链式结构(Chains),适合线性任务流程,例如文档摘要、问答系统等[^2]。-**LangGraph**:专注于图结构(Graph),支持非线性、多路径的控制流,包括条件判断、循环、分支中断,适合复杂的多智能体协作任务[^2]。3.**核心能力差异**:-**LangChain**:提供模块化组件(模型、提示、索引、记忆、链、工具等),通过组合这些组件构建应用程序[^1]。-**LangGraph**:在LangChain的基础上增加了图计算能力,支持定义多个智能体节点,并通过边来协调它们的交互,实现动态路由条件执行[^2]。4.**适用场景**:-简单线性任务:使用LangChain(例如:LLMChain顺序调用)[^2]。-复杂非线性任务:使用LangGraph(例如:智能客服系统需要根据用户输入动态切换工具或调用多个Agent)[^2]。5.**可视化支持**:LangGraph提供LangGraphStudio,为开发Agent提供可视化环境[^1]。**关系总结**:-**继承关系**:LangGraphLangChain的扩展,两者共享基础组件(如模型、工具等)。-**互补性**:LangChain解决基础任务编排,LangGraph解决高阶Agent协作问题。-**演进关系**:LangGraph解决了LangChain在处理循环、分支等复杂控制流时的局限性[^1]。**数学表达**:-LangChain链式结构可表示为函数组合:$$\text{Chain}=f_n\circ\cdots\circf_1$$其中$f_i$代表一个处理步骤(如提示模板、模型调用)。-LangGraph图结构可表示为状态机:$$\text{Graph}=(V,E)\quad\text{其中}\quadV=\{\text{节点}\},E=\{\text{边}\}$$节点对应处理函数,边由条件函数$c:\text{state}\rightarrow\text{next\_node}$决定[^2]。**架构对比**:|**特性**|LangChain|LangGraph||----------------|-------------------|---------------------||**结构**|链式结构|图结构||**控制流**|线性顺序|非线性(循环/分支)||**智能体支持**|单智能体|多智能体协作||**复杂度**|低至中等|高||**基础依赖**|无|LangChain组件|>**关键结论**:LangGraph不是替代LangChain,而是为其复杂Agent场景提供增强层。两者共同构成从简单到复杂应用的完整解决方案[^1][^2]。---###相关问题1.在LangGraph中如何定义条件分支来控制任务流程?2.LangChainLangGraph在实时数据处理方面的性能差异?3.如何将现有的LangChain链迁移到LangGraph图结构?4.LangGraph的多智能体协作机制具体如何实现?5.使用LangGraphStudio进行可视化开发有哪些最佳实践?</think>### LangChain LangGraph 的关系详解 LangChain LangGraph 是紧密关联但定位不同的框架,核心区别在于**架构范式****适用场景**。以下是关键对比: --- #### 一、核心联系:继承互补 1. **基础依赖** - LangGraph **直接构建在 LangChain 之上**,复用其核心组件(模型、提示、工具、记忆等)[^1]。 - 两者共享生态系统,例如 LangGraph 可直接调用 LangChain 的 `AgentExecutor` 或 `Runnable` 接口[^2]。 2. **目标一致性** 均致力于**简化大语言模型(LLM)应用的开发流程**,提供模块化工具链,但解决不同层级的复杂度问题。 --- #### 二、核心区别:架构能力 | **维度** | **LangChain** | **LangGraph** | |----------------|------------------------------|------------------------------| | **架构范式** | 链式结构(Chain) | 图结构(Graph) | | **控制流** | 线性顺序执行 | 非线性流程(循环/分支/中断) | | **任务复杂度** | 简单到中等(如问答、摘要) | 高复杂度(如多智能体协作) | | **节点关系** | 固定顺序调用 | 动态路由(条件边权重决策) | | **典型场景** | `LLMChain`、`SequentialChain` | 客服系统、多Agent决策引擎 | ##### 数学表达差异 - **LangChain 链式结构**: $$ \text{Output} = f_n \circ \cdots \circ f_2 \circ f_1(\text{Input}) $$ 其中 $f_i$ 代表固定步骤(如模型调用、工具执行)[^1]。 - **LangGraph 图结构**: $$ \text{Graph} = (V, E), \quad V=\{\text{节点}\}, \quad E=\{\text{边}| \ \text{条件函数 } c: \text{state} \rightarrow \text{next\_node}\} $$ 节点代表任务单元,边由状态机条件动态激活[^2]。 --- #### 三、LangGraphLangChain 的增强 1. **突破链式局限** - 解决 LangChain 难以处理的**循环、中断、并行分支**问题(如用户中途修改需求)[^1]。 - 示例场景: ```mermaid graph LR A[用户提问] --> B{是否需要查数据库?} B -->|是| C[调用SQL工具] B -->|否| D[直接生成答案] C --> E{结果可信?} E -->|否| F[调用搜索引擎] E -->|是| D ``` 2. **多智能体协作** - LangGraph 可定义多个独立 Agent 节点,通过**消息传递机制**协调工作流[^2]。 - 例如:客服系统中路由节点将“技术问题”分配给专用 Agent。 3. **可视化开发** 提供 **LangGraph Studio** 可视化编辑图节点调试状态流,降低复杂逻辑的实现门槛[^1]。 --- #### 四、如何选择? | **场景** | **推荐框架** | **原因** | |------------------------------|--------------|------------------------------| | 文档摘要/简单问答 | LangChain | 链式结构足够高效 | | 需动态调整流程的客服系统 | LangGraph | 处理分支、循环异常中断 | | 多Agent协作(如自动决策团队)| LangGraph | 协调多个智能体的输入/输出 | > **关键结论**: > - LangChain 是**基础框架**,适合大多数常规 LLM 应用; > - LangGraph 是**进阶工具**,专为复杂控制流多智能体系统设计[^1][^2]。 --- ### 相关问题 1. 如何在 LangGraph 中实现“当工具调用失败时自动切换备用工具”的分支逻辑? 2. LangGraph 的多智能体协作机制具体如何降低任务延迟? 3. 能否将现有的 LangChain 链式工作流迁移到 LangGraph?需要哪些改造? 4. LangGraph Studio 在调试复杂状态机时有哪些独特优势? 5. 对比 LangGraph 传统工作流引擎(如 Airflow)在处理 LLM 任务时的差异?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值