【LLM】第五章:LangChain框架介绍+开发前的准备工作
本系列开始循序渐进讲LangChain框架。
LangChain是当前构建生产级AI智能体系统的首选,学习LangChain框架的意义不仅仅是开发智能体,透过框架,我们可以看到设计框架的这群牛人,对未来agent的能力的思考。
一、LangChain简介
1、LangChain框架进化史
(1)体系化阶段:
一是,引入Tool、Agent、Retrieval等概念,形成大模型+工具调用+记忆的核心架构,支持构建完成更加复杂任务的自动化智能体。
二是,推出LangChain Hub与LangSmith,初步构建了从开发、调试到部署的生态闭环。
(2)2024-2025上半年,LangGraph与LangServe的发布,标志着LangChain框架演化成了智能平台。
LangGraph为工作流提供有向图。我们就可以构建更加复杂化的智能体。
LangServe解决了服务化部署,比如用Java程序调用LangChain编写的智能体应用。
(3)2025年下半年至今:推出Deep Agent,官方定位为Agent Harness(智能体执行框架),在LangGraph和LangChain上运行,让开发者可构建基于多智能体的复杂化智能体系统。
(4)2025年10月20日,LangChain团队正式发布了第一个正式大版本:LangChain v1.0.0与LangGraph v1.0.0,这是AI智能体(Agent)开发领域的里程碑事件,标志着框架的成熟和标准化,为企业级AI应用提供了稳定基础。
2、LangChain的定位LangChain作为大模型与应用层的中间层,可统一调用各类大模型、管理提示词与上下文,还能集成外部工具和数据源,快速搭建具备推理、行动能力的智能体。
(1)如上左图,打通大模型与外部资源。用统一接口对接数据库、搜索引擎、API、文件系统等。
(2)如上右图,LangChain组织了很多模块,比如大模型的调用、组织提示词、管理上下文、集成外部工具与数据源等功能,目的都是让我们开发智能体时,一是降低难度,二是让智能体具备比如抽象工具调用、记忆等能力,更加的智能。并且可以依托LangGraph生态,从单智能体拓展至多智能体协作,可构建工业级智能体。
3、小结
(1)智能体 = 大模型 + 工具调用 + 记忆
(2)LangChain框架并非一个库,而是一个家族,是有LangChain、LangGraph、LangSmith、Deep Agent等多个框架构成的一族。或者说它已经是一个构建智能体的生态。
(3)学习材料:
官网:LangChain: the open agent platform to own your intelligence
Github地址:https://github.com/langchain-ai
中文文档地址:https://docs.langchain.org.cn/oss/python/langchain/overview
英文文档地址:LangChain overview - Docs by LangChain
API文档查询地址:LangChain - Python API Reference | LangChain Reference
二、LangChain家族简介![]()
1、地基:langchain-core
定义全部底层抽象、接口、编排语法(把各种组件,比如prompt、模型、解析器、检索器等工具,拼接成AI工作流,搭建单流水线)等。包含BaseMessage、Runnable、Prompt模块、工具基类、输出解析器等。所有其他包都依赖它。
2、主包:LangChain
LangChain是基于core构建的基础通用业务逻辑层。包含Chain、creat_agent()、RAG检索策略、记忆模块。是智能体开发的基础逻辑层,为开发者提供模型调用、工具与中间件集成、智能体构建等一整套基础组件。是提供怎么组装的逻辑,如果你需要构建简单的智能体应用,无需多步骤、多任务的需求时,那就选择LangChain。
(1)屏蔽了不同模型服务提供商(如OpenAI、Anthropic、Ollama等)的接口差异,提供统一的调用方式。
(2)使用Message、Tool、Agent、Middleware等组件实现灵活的组合与扩展。
(3)预置了丰富的数据源、API、中间件等AI生态。
我们pip install langchain会自动也安装了langchain-core了。
3、第三方集成:langchain-community
集成一些小众第三方包,比如文档加载器、向量库、冷门LLM、工具等,这个包我们按需安装。
4、厂商独立集成包:langchain-openai
是官方重点维护的独立集成包,专门对接OpenAI、anthropic等大厂。提供比如langchain-openai, langchain-anthropic, langchain-google-genai等接口。
安装:pip install langchain-openai, 依赖langchain-core。
5、旧版兼容包:langchai-classic
冗余代码或不推荐使用的经典API移到此包,比如0.x中常用而1.x移除的API都在这里。仅用于维护老项目迁移,新项目禁止使用。
6、图编排引擎:LangGraph
LangGraph是langchain生态中的重要独立组件,是Agent核心。
普通LangChain链式只能线性执行,而Agent需要循环、条件跳转、保存会话状态。LangGraph将智能体抽象成一张有向图,通过图式结构搭建可以循环跳转流程图,进行状态管理、断点持久化、人类介入、子Agent、长任务执行等功能。所以LangChain的create_agent底层就是基于LangGraph实现的。也所以我们pip install langchain会自动也安装了langgraph。
当智能体的任务从单一指令执行扩展到多步骤、有状态的复杂工作流时,LangGraph可以让智能体的工作流节点可交互、可控制、可观测。
节点(Node):代表独立功能单元或决策点。
边(Edge):定义了节点之间的流转条件与路径。
状态(State):作为一个共享上下文,在节点间传递并持久化存储任务信息。
小结:
LangChain = 能力抽象层(LLM/Tool/Message标准化),负责有什么能力。
LangGraph = 执行与控制层(状态机/工作流/多Agent系统),负责怎么跑。
7、可视化的调试与监控平台:LangSmith
AI的调试工具,可以追踪每一步调用、记录prompt、监控工具调用,用于跟踪、记录和分析智能体在运行过程中的完整调用链路,让开发过程中更容易调试和优化。
LangSmith官网:LangSmith: Agent & LLM Observability Platform
8、现成的Agent套件:Deep Agent
Deep Agent定位为Agent Harness(智能体执行框架),是构建在LangChain和LangGraph之上,是解决多智能体协作问题、更加复杂问题的协同。增加了规划能力、文件系统、子Agent等高级功能,让开发者无需从零构建复杂的控制逻辑,即可创建具备深度规划、长期记忆与多专家协作能力的智能体。
显式规划:自主生成、执行并动态调整多步任务计划。
虚拟文件系统:为智能体提供结构化的中间结果与知识存储。
子智能体:支持任务在多个智能体之间的分解与协作。
长期记忆:通过与LangGraph状态存储的结合,实现跨对话的经验积累。
可扩展中间件:允许嵌入安全审计、性能监控或自定义业务逻辑。
9、小结:
LangChain = 实现单智能体做单任务。
LangGraph = 实现单智能体做多任务。
Deep Agent = 实现多智能体系统完成复杂任务。
LangSmith = 可视化开发、调试、运维。
上面四个框架构成了一个从技术验证到生产部署、从单智能体到复杂协作的、一整套完整的项目闭环。
我们不需要学习所有的API,只要弄懂一些核心模块和核心逻辑,用到什么去查什么即可。
三、开发前的环境准备
1、创建虚拟环境
LangChain是基于python开发的,LangChain生态支持python和JavaScript语言。
此后我们的项目都是纯python项目,所以为了不弄乱base环境,我们重新创建一个虚拟环境。因为LangChain 1.2要求python版本是3.10以上,所以还得安装高版本的python解释器:
2、下载LangChain安装包上图给出了多种安装方式,是因为不一定哪种方式可以安装成功,大家一个个试试,有能成功的就行。下面是我的安装过程:
安装完毕进行查看:这种是一个个包单独安装的流程。总之就是虚拟环境是用conda创建的,那你安装包也尽量用canda安装,canda安装不上再用pip装。但是如果项目中的依赖比较多,我们就选择下面的用requirements.tet文件一键安装。
3、用requirements.txt文件安装所有的包和依赖
但是我们本系列的目的是搭建智能体,所以还需要很多包和依赖,干脆我把所有的包和版本都写到requirements.txt文件中,用pip install -r .\requirements.txt 一键全部安装完毕,后面本系列的学习就不用断断续续安装了。
#==============requrements.txt====================== # LangChain 核心框架 # 作用:LangChain 1.x 主体、核心抽象、社区组件、实验性组件、文本切分器 langchain==1.2.12 langchain-core==1.2.18 langchain-community==0.4.1 langchain-classic==1.0.2 langchain-text-splitters==1.1.1 langchain-experimental==0.4.1 #=============================================== # ollama # 作用:调用本地大模型 langchain-ollama==1.0.1 ollama==0.6.2 #========================================================= # LangGraph / Agent 编排 # 作用:构建 Agent、状态图、多步骤工作流、检查点、PostgreSQL持久化 langgraph==1.1.2 langgraph-prebuilt==1.0.8 langgraph-checkpoint==4.0.1 langgraph-checkpoint-postgres==3.0.5 langgraph-sdk==0.3.9 #================================================================= # MCP / FastMCP 集成 # 作用:构建 MCP Server、连接MCP工具、资源、Prompt mcp==1.27.0 fastmcp==3.2.4 langchain-mcp-adapters==0.2.1 #====================================================== # 大模型供应商与 LangChain 适配器 # 作用:接入 OpenAI 协议、 DeepSeek、Anthropic、OpenRouter、通义千问、腾讯等模型 openai==2.26.0 anthropic==0.84.0 langchain-openai==1.1.11 langchain-deepseek==1.0.1 langchain-anthropic==1.3.4至此本系列学习的环境搭建就算完成了,就可以进行开发了。
四、梳理大模型与微调、prompt、RAG、Agent之间的关系
前面讲大模型进化史就说过:微调、prompt、RAG、Agent等技术都是围绕大模型痛点而诞生的技术手段。其中微调是让大模型学习垂直专业领域的数据,让大模型更加专业。微调是成本最高的手段。而prompt、RAG、Agent则是成本较低的手段。
1、纯prompt
也就是提示词,就是我们和大模型交互时,给大模型说的话,只要我们更加清晰、重点地说清除我们的需求,大模型就可能生成更加符合我们期望的回答。
2、RAG(Retrieval-Augemented Generation)
就是通过RAG系统,把通用大模型转变成专业模型。我们把专业领域的知识、或者更加实时的知识,放到向量数据库中,每次和大模型对话时,先把人们的输入到向量数据库中匹配出相关的知识,然后把输入+相关知识打包成prompt喂入大模型,让大模型回答出更加专业、更加前沿的答案。
3、Agent
Agent = LLM + Planning + Tools + Memory + Action
(1)LLM:LLM相当于智能体的大脑,提供推理、规划和知识理解的功能。
(2)Planning:通过任务分解、反思与自省框架实现复杂任务处理。例如,利用思维链(Chain of Thought)将目标拆解为子任务,并通过反馈优化策略。
(3)Tools:调用外部工具,如API、数据库,扩展能力边界。
(4)Memory
(5)Action:执行决策的模块,比如操作工具的接口,执行检索、推理、编程等。
4、小结