第一章 langchain入门与环境准备
1.1 AI大模型应用开发和Langchain的关系
1.2 LangChain 1.2.7 版本核心特性与升级点
1.3 环境搭建(Python 版本要求、langchain/langchain-core 1.2.7 安装与版本验证)
1.4 LangChain 1.2.7 核心架构概览(Runnable、Prompt、Agent、Memory 核心链路)
1.4 LangChain 1.2.7 核心架构概览
完成LangChain 1.2.7环境搭建后,本节将全面解析其核心架构,帮助大家建立整体认知,为后续逐个模块深入学习奠定基础。LangChain 1.2.7的核心架构围绕"组件化、可组合、可扩展"设计,核心由 Runnable、Prompt、Agent、Memory 四大模块构成,四大模块相互联动形成完整的AI应用开发链路,同时兼容第三方工具(Tools)和存储(VectorStore等),适配从简单LLM调用到复杂智能代理的全场景开发需求。
1.4.1 核心架构整体定位与设计理念
LangChain 1.2.7的核心定位是"连接大模型与实际应用的中间件框架",其架构设计理念核心有三点,也是理解整个框架的关键:
-
组件化拆分:将AI应用开发的核心流程(输入处理、提示词构建、逻辑决策、记忆管理等)拆分为独立组件,每个组件负责单一功能,降低开发复杂度;
-
标准化接口:以Runnable协议为统一接口标准,所有核心模块(Prompt、Agent、Memory)及第三方组件均实现Runnable协议,确保组件间可无缝组合、灵活替换;
-
链路化联动:四大核心模块并非独立存在,而是按"输入→处理→决策→输出→记忆"的逻辑形成闭环链路,同时支持通过LCEL表达式灵活编排,快速适配不同业务场景。
补充说明:LangChain 1.2.7的核心架构可分为"核心组件层"和"链路编排层":核心组件层即Runnable、Prompt、Agent、Memory四大模块,是架构的基础;链路编排层即LCEL表达式,负责将核心组件及第三方工具组合成完整执行链路,也是1.2.7版本强化的核心亮点。
1.4.2 四大核心模块详解(Runnable、Prompt、Agent、Memory)
四大核心模块是LangChain 1.2.7架构的核心支撑,各自承担明确功能,且均遵循Runnable协议,可通过LCEL表达式灵活组合,以下逐一详解各模块的定位、核心功能及1.2.7版本特性。
1.4.2.1 Runnable:所有组件的统一执行抽象层(核心基石)
Runnable并非具体的功能组件,而是LangChain 1.2.7中所有组件的统一执行抽象层,是整个架构的"桥梁",贯穿所有模块和链路,核心定位是"统一执行接口、标准化类型校验、全场景适配"。
-
核心功能:
-
统一执行接口:为所有组件提供invoke(同步单例)、ainvoke(异步单例)、batch(同步批量)、abatch(异步批量)、stream(同步流式)、astream(异步流式)六大核心执行方法,无需为不同组件适配不同调用方式;
-
标准化类型校验:要求所有组件显式定义输入(InputT)和输出(OutputT)类型,组件组合时自动校验类型匹配性,提前暴露错误;
-
链路串联支撑:所有核心模块(Prompt、Agent、Memory)及第三方工具(Tools)均实现Runnable协议,确保不同组件可通过LCEL表达式无缝串联,形成完整执行链路。
-
-
1.2.7版本特性:
-
强化类型校验逻辑,类型错误从"执行阶段"前置到"组合阶段",降低线上故障概率;
-
新增RunnablePassthrough、RunnableLambda等辅助组件,简化链路中数据透传和简单逻辑处理;
-
优化配置透传能力,可通过with_config方法为组件或整个链路设置统一配置(超时、标签、缓存等),局部配置可覆盖全局配置。
-
-
核心作用:解决了低版本LangChain组件接口不统一、组合复杂、适配困难的问题,是1.2.7版本"组件化、可组合"设计的核心支撑,后续所有模块的学习都将围绕Runnable协议展开。
1.4.2.2 Prompt:提示词构建与管理模块(输入核心)
Prompt模块是LangChain 1.2.7中负责"提示词构建、渲染、管理"的核心组件,核心定位是"将用户需求转化为大模型可理解的提示词,提升大模型输出质量",是AI应用与大模型交互的入口。
-
核心功能:
-
提示词模板(PromptTemplate):提供标准化模板语法,支持动态插入变量(如用户输入、上下文信息),避免重复编写提示词;
-
提示词渲染:将模板与具体变量结合,生成最终可提交给大模型的完整提示词,支持多格式渲染(文本、JSON等);
-
提示词优化:内置少量提示词优化工具(如FewShotPromptTemplate、ChatPromptTemplate),帮助开发者快速构建高质量提示词,适配聊天场景、few-shot学习等场景。
-
-
1.2.7版本特性:
-
优化PromptTemplate的类型注解,支持IDE自动补全和类型校验,减少语法错误;
-
强化ChatPromptTemplate的兼容性,适配OpenAI、Anthropic等主流聊天模型的提示词格式,无需手动调整;
-
支持提示词缓存,重复渲染相同模板和变量时,可直接复用缓存结果,提升执行效率。
-
-
与Runnable的关联:Prompt模块的核心组件(PromptTemplate、ChatPromptTemplate)均实现Runnable协议,其输入为模板变量(字典类型),输出为渲染后的完整提示词(字符串类型),可直接通过LCEL表达式与LLM组件、OutputParser组件串联。
1.4.2.3 Agent:智能决策与工具调用模块(逻辑核心)
Agent模块是LangChain 1.2.7中负责"智能决策、工具调用、流程控制"的核心组件,核心定位是"模拟人类思考过程,根据用户需求和上下文,自主决定执行步骤、调用工具,最终完成复杂任务",是实现复杂AI应用的关键。
-
核心功能:
-
智能决策:根据用户需求、Memory中的上下文信息,自主判断"是否需要调用工具""调用哪个工具""调用工具后的下一步操作";
-
工具调用:支持集成第三方工具(如搜索引擎、SQL数据库、API接口、计算器等),可自主调用工具获取外部信息,解决大模型"知识滞后""无法计算"的问题;
-
流程控制:自主管理任务执行流程,若工具调用失败或结果不符合预期,可自动重试或调整执行步骤,直至完成任务。
-
-
1.2.7版本特性:
-
优化Agent的决策逻辑,减少无效工具调用,提升任务执行效率;
-
强化与Runnable协议的适配,Agent组件可直接作为Runnable组件,与Prompt、Memory、Tools无缝组合,支持同步/异步、批量/流式执行;
-
简化Agent开发,提供更多开箱即用的Agent类型(如ReAct Agent、StructuredToolAgent),开发者可按需选择,无需从零构建决策逻辑。
-
-
与其他模块的关联:Agent接收Prompt模块渲染后的提示词作为输入,结合Memory模块中的上下文信息进行决策,调用工具(Tools)获取外部信息,最终将决策结果和工具返回信息整理后,输出给用户,是四大模块的"逻辑中枢"。
1.4.2.4 Memory:上下文记忆管理模块(体验核心)
Memory模块是LangChain 1.2.7中负责"上下文信息存储、管理、提取"的核心组件,核心定位是"让AI应用拥有记忆能力,能够记住对话历史、用户偏好、任务中间结果,提升交互连贯性和任务完成质量"。
-
核心功能:
-
上下文存储:存储对话历史、用户输入、Agent执行过程中的中间结果等信息,支持多种存储方式(内存、Redis、Chroma等);
-
记忆提取:根据当前用户需求,自动提取相关的上下文记忆,传递给Prompt模块或Agent模块,辅助生成更精准的提示词和决策;
-
记忆优化:支持对记忆进行过滤、压缩、更新,避免记忆冗余,提升提取效率,同时支持长期记忆和短期记忆的分离管理。
-
-
1.2.7版本特性:
-
优化Memory组件的兼容性,所有Memory类型均实现Runnable协议,可无缝融入LCEL链路,支持同步/异步执行;
-
强化与VectorStore的联动,支持将长期记忆存储在向量数据库中,提升记忆提取的精准度和效率;
-
简化记忆配置,提供更多开箱即用的Memory类型(如ConversationBufferMemory、ConversationSummaryMemory),开发者可按需选择,无需手动实现存储逻辑。
-
-
核心作用:解决了大模型"无记忆"的问题,让AI应用能够实现连续对话、上下文关联的复杂交互,是提升用户体验的关键模块,尤其适用于聊天机器人、智能助手等场景。
1.4.3 四大核心模块核心链路(闭环逻辑)
LangChain 1.2.7的四大核心模块并非独立存在,而是相互联动,形成"输入→处理→决策→输出→记忆"的闭环核心链路,所有AI应用的开发均围绕这条核心链路展开,结合LCEL表达式可灵活扩展和调整,具体链路逻辑如下:
-
链路启动:用户输入与Prompt渲染
-
用户输入具体需求(如"查询北京天气并总结");
-
Memory模块提取相关上下文记忆(如历史对话中用户关注"天气舒适度");
-
Prompt模块结合用户输入、上下文记忆,通过PromptTemplate渲染生成完整提示词,传递给Agent模块。
-
-
核心决策:Agent智能判断与执行
-
Agent模块接收渲染后的提示词,结合Memory中的上下文,决策执行步骤(如"需要调用天气查询工具获取北京天气数据");
-
Agent自主调用对应的工具(如天气API),获取外部信息(北京实时天气、温度、舒适度等);
-
若工具调用结果不完整或不符合预期,Agent自动重试或调整执行步骤,直至获取有效信息。
-
-
结果输出:整理与反馈
-
Agent将工具返回的外部信息、上下文记忆结合,整理成用户易懂的结果;
-
通过OutputParser组件(可选)优化输出格式(如结构化文本、JSON),最终反馈给用户;
-
同时,将本次用户输入、Agent执行过程、输出结果,传递给Memory模块进行存储,作为下次交互的上下文记忆。
-
-
链路闭环:记忆更新与下次联动
-
Memory模块更新记忆库,保存本次交互的关键信息;
-
用户下次输入相关需求(如"北京明天天气如何"),链路重复上述步骤,结合已保存的记忆(用户关注天气舒适度),快速生成精准结果,实现连贯交互。
-
补充说明:上述核心链路的所有组件(Prompt、Agent、Memory、Tools)均实现Runnable协议,可通过LCEL表达式快速编排(如 Prompt | Memory | Agent | OutputParser),无需编写大量冗余代码,这也是LangChain 1.2.7版本"可组合、高效开发"的核心优势。
1.4.4 核心架构补充:第三方工具(Tools)与存储(VectorStore)
除四大核心模块外,LangChain 1.2.7的核心架构还包含第三方工具(Tools)和存储(VectorStore)两大辅助模块,用于扩展架构的功能边界,适配更复杂的业务场景,二者均遵循Runnable协议,可无缝融入核心链路。
-
第三方工具(Tools):
-
定位:扩展Agent的能力边界,解决大模型"知识滞后""无法执行具体操作"的问题;
-
常见类型:搜索引擎(如Google Search)、SQL数据库(如MySQL)、API接口、计算器、文件读取工具等;
-
与核心模块关联:Tools组件实现Runnable协议,可被Agent模块自主调用,调用结果反馈给Agent,参与最终结果整理。
-
-
存储模块(VectorStore):
-
定位:主要用于存储长期记忆、文档向量等数据,提升Memory模块的记忆提取效率和精准度;
-
常见类型:FAISS、Chroma、Redis、Milvus等向量数据库;
-
与核心模块关联:VectorStore与Memory模块深度联动,可将长期记忆、文档数据转化为向量存储,Memory模块通过向量检索快速提取相关记忆,适配长文本、多文档交互场景。
-
1.4.5 章节总结
本节全面解析了LangChain 1.2.7的核心架构,核心要点总结如下,便于快速回顾和后续学习衔接:
-
核心架构由"四大核心模块+两大辅助模块"构成,四大核心模块(Runnable、Prompt、Agent、Memory)是架构基础,两大辅助模块(Tools、VectorStore)扩展功能边界;
-
Runnable是核心基石,所有组件均实现Runnable协议,统一执行接口、标准化类型校验,支撑组件间无缝组合;
-
四大模块联动形成闭环核心链路:用户输入→Prompt渲染→Agent决策→工具调用→结果输出→Memory存储,是所有AI应用开发的核心逻辑;