AI 3:LangChain与LangGraph介绍
原生LLM 嵌入复杂应用的挑战
(1)幻觉问题
(2)提示词设计不统一
(3)模型切换麻烦
(4)回答格式杂乱
(5)时效性较差
(6)自动调用外部工具困难
LangChain通过为原生LLM这个“聪明的大脑”装上工具、内存和外挂,弥补其记忆、知识与规划能力的不足,让它能真正处理复杂任务。
1.LangChain
1.1介绍
具体看AI 2:大语言模型+嵌入模型 4.2(2)
1.2技术特点
它把各种模型和工具的底层差异统一封装成标准化组件,提供通用接口;以链式(Chain)的方式整合多个组件,从而构建出功能丰富的的LLM应用。
链的本质:将多个处理步骤或异构组件串联成一个自动化工作流,应用无需再逐个调用各个组件,而是一次性执行链上的所有流程,从而实现从简单问答到复杂 AI 工作流的构建。
1.3标准化组件介绍
逐类详解
1.4举例
若我们想借助提示词完成⼀次对于LLM应用的提问,在LangChain中至少需要定义两个组件,提示词模板组件 • 大模型组件。
无LangChain,相当于提示词模板组件执行了一次,大模型组件也执行了⼀次。
有LangChain,对于链式执行来说,只需执行一次链即可。
1.5起源
版本发布:https://github.com/langchain-ai/langchain/releases
1.6 发展
LangChain的局限性
LangChain无法满足构建高级 AI 代理和多轮对话系统等复杂应用的开发需求。
举例:假设需要构建一个AI代理,来自动处理用户提交的客服工单 退货请求 产品咨询等。
生活中理想的流程(非LangChain流程)如下
如果用传统的Chain A -> Chain B -> Chain C的线性结构来构建,会遇到以下具体问题:
2.LangGraph--面向复杂工作流的图式架构(自动)
诞生背景:LangGraph是LangChain 生态系统中较晚推出的一个框架,由LangChain 团队于2024 年正式发布,其目的是为了解决大型语言模型应用日益增长的复杂性。
2.1介绍
定位:LangGraph是一个底层编排框架,用于构建可控(支持暂停/状态修改)、可靠、有状态且可长时间运行的AI 智能体工作流。
核心特性: 它以图结构定义流程,围绕共享状态驱动节点协作,以应对复杂 AI 智能体应用的构建需求。
例如,我们将上文示例从链式改为图结构:
在上述示例中,我们可以定义图状态,用于存储流程中的临时数据和决策点,例如:
与 LangChain 的关系、适用场景互补
LangGraph并非取代LangChain,而是对其的扩展和补充;它底层大量复用了LangChain的模型接口、工具、记忆等组件,开发者可在LangGraph 节点中直接使用LangChain 的链或代理作为子流程。
简单线性任务:LangChain 的链式结构已足够高效。
复杂场景:对于需要复杂控制流、长期状态维护和多智能体协作的任务,LangGraph 提供更强大的支持。
2.2技术特点
这种图式架构相比LangChain的链式结构更加灵活,主要体现在:
传统的链式结构会将AI代理应用变成僵硬脆弱的“面条代码”,而LangGraph则通过灵活可靠且支持循环、分支、人工介入等工作流图的方式,解决了这一日益复杂的LLM应用开发难题。
对话模型的本质差异:为何“感觉不像走既定路线”
2.3起源和发展
版本发布:https://github.com/langchain-ai/langgraph/releases
3.方向
3.1学习路径
从入门到精通LangChain和LangGraph
这条循序渐进、从核心概念到高级应用以及项目实践的路径,能让你具备从零设计构建复杂 AI 代理及多步工作流、将业务需求转化为 AI 解决方案的架构能力。
3.2应用场景
3.3结构关系
4.LangChain与LangGraph软件包安装
(1)langchain主包:是使用LangChain的起点,用户直接使用的主入口。
pip install langchain
(2)langchain-core核心包:整个LangChain生态的基石包,除 langsmith SDK 外所有包均依赖此包;包含所有其他包共用的基类、抽象接口和 LCEL(LangChain 表达式语言)。
它由 langchain自动安装,无需显式安装;若需特定版本功能可手动指定,但须确保与其他集成包兼容。
pip install langchain-core
(3)Integrations集成包:各类官方与第三方集成包,只要安装对应的包,即可快速接入该服务;覆盖了模型(如 OpenAI、Anthropic 等)以及各类组件(如数据存储、工具调用等)。
LangChain中集成好的包如下
https://docs.langchain.com/oss/python/integrations/providers/overviewhttps://docs.langchain.com/oss/python/integrations/providers/overview对于所需依赖项,我们需要单独安装,例如使用OpenAI。
pip install langchain-openai
(4)langchain-community社区包:由社区维护的集成大合集,当某个集成还没被官方拆成独立包时,会先放这里。
pip install langchain-community
(5)langgraph 包:专门构建有状态、多步骤 Agent的框架,用来弥补 LangChain 在复杂循环和状态管理上的不足,记忆模块的新家也在这里;它与 langchain 互补,Agent 可相互调用。
pip install langgraph
(6)LangSmith SDK:对接 LangSmith 平台的独立工具包,负责应用的测试、调试、追踪与监控;它与核心流程解耦,需要配置 API Key 后单独使用。
由LangChain自动安装,不依赖于langchain-core ;如果需要,可以独立安装和使用。
pip install langsmith
在python中新建项目,并安装库。
主包:pip install langchain
OpenAI-Integrations集成包:pip install langchain-openai
langchain-community社区包:pip install langchain-community
langgraph 包:pip install langgraph