第1章 LangChain概述
一、大模型与大语言模型
大模型(Large Model,也称基础模型,即 Foundation Model),是指具有大量参数和复杂结构的机器学习模型,能够处理海量数据、完成各种复杂的任务,如自然语言处理、计算机视觉、语音识别等。
大语言模型(Large Language Model)通常是具有大规模参数和计算能力的自然语言处理模型,例如 OpenAI的GPT-5 模型。这些模型通过大量的数据和参数进行训练,以生成人类类似的文本或回答自然语言的问题。大语言模型在自然语言处理、文本生成和智能对话等领域有广泛应用。
二、LangChain介绍
2.1 什么是 LangChain
github地址:https://github.com/langchain-ai/langchain
官网地址:https://www.langchain.com/langchain
官方文档:https://docs.langchain.com/oss/python/langchain/overview
API 文档:https://reference.langchain.com/python/langchain/
LangChain是2022年10月,由哈佛大学的Harrison Chase(哈里森·蔡斯)发起研发的一个开源框架,用于开发由大语言模型(LLMs)驱动的应用程序。比如,搭建 Agent、问答系统(QA)、对话机器人、文档搜索系统等。
LangChain的发布比ChatGPT问世还要早一个月,从这个启动日期也可以看出创始人的眼光,占了先机的它迅速获得广泛关注和支持!
LangChain在Github上的热度变化:

简单概括:
LangChain ≠ LLMs。LangChain 之于 LLMs,类似 Spring 之于 Java,Django 之于 Python。
顾名思义,LangChain中的“Lang”是指language,即大语言模型,“Chain”即“链”,也就是将大模型与外部数据&各种组件连接成链,以此构建AI应用程序。
2.2 有哪些大模型应用开发框架
|
框架 |
描述 |
|
LangChain (Python) |
出现最早、最成熟的,适合复杂任务分解和单Agent应用 |
|
LlamaIndex (Python) |
专注于高效的索引和检索,适合 RAG 场景 |
|
LangChain4J (Java) |
LangChain出了Java、JavaScript(LangChain.js)两个语言的版本,LangChain4j的功能略少于LangChain,但是主要的核心功能都是有的 |
|
SpringAI / SpringAI Alibaba (Java) |
有待进一步成熟,只是简单的对于一些接口进行了封装 |
|
SemanticKernel (C#) |
微软推出的,对于C#同学来说,那就是5颗星 |
2.3 为什么需要 LangChain
1)问题1:LLMs用的好好的,为什么还需要LangChain?
在大语言模型(LLM)如 ChatGPT、Claude、DeepSeek 等快速发展的今天,开发者不仅希望能“使用”这些模型,还希望能将它们灵活集成到自己的应用中,实现更强大的对话能力、检索增强生成(RAG)、工具调用(Tool Calling)、多轮推理等功能。
2)问题2:我们可以使用GPT 或GLM4 等模型的API进行开发,为何需要LangChain这样的框架?
不使用LangChain,确实可以使用GPT 或GLM4 等模型的API进行开发。比如,搭建Agent、问答系统(QA)、对话机器人、文档搜索系统等复杂的 LLM 应用。
但使用LangChain的好处:
- 简化开发难度:更简单、更高效、效果更好。
- 开发人员可以更专注于业务逻辑,而无须花费大量时间和精力处理底层技术细节。
- 学习成本更低:不同模型的API不同,调用方式也有区别,切换模型时学习成本高。使用LangChain,可以以统一、规范的方式进行调用,有更好的移植性。
- 现成的链式组装:LangChain提供了一些现成的链式组装,用于完成特定的高级任务。让复杂的逻辑变得结构化、易组合、易扩展。
3)问题3:LangChain提供了哪些功能?
LangChain 是一个帮助你构建 LLM 应用的全套工具集。这里涉及到prompt 构建、LLM 接入、记忆管理、工具调用、RAG、Agent开发等模块。
2.4 LangChain 使用场景
|
项目场景 |
技术点 |
|
文档问答助手 |
Prompt + Embedding + RetrievalQA |
|
智能日程规划助手 |
Agent + Tool + Memory |
|
LLM+数据库问答 |
SQLDatabaseToolkit + Agent |
|
多模型路由对话系统 |
RouterChain + 多 LLM |
|
互联网智能客服 |
ConversationChain + RAG +Agent |
|
企业知识库助手(RAG + 本地模型) |
VectorDB + LLM + Streamlit |
2.5 LangChain 生态位置

- 项目类型1:文档问答助手
案例:企业使用 LangChain 加载内部文档(如员工手册、产品说明),结合向量存储实现语义搜索,回答员工或客户的问题。
示例:新员工入职培训中,销售岗位有哪些注意事项呢?检索相关手册并生成自然语言回答。
场景:基于私有或外部数据构建问答系统。
- 项目类型2:智能助理开发
案例:LangChain 的 Agent 模块(如 ReAct Agent)结合工具,完成任务。
示例1:用户请求调用天气 API、计算器和日历,规划户外旅游活动。
示例2:结合使用Google Search、Firecrawl网页爬取工具,实现“分析某股票趋势并生成报告”的任务。
场景:构建自主决策的Agent,执行复杂任务。
- 项目类型3:对话聊天机器人
案例:电商平台使用 LangChain 的 ConversationChain,结合 ConversationBufferMemory,记录用户历史对话,提供个性化客服。
示例:用户问“推荐一款跑鞋”,机器人根据之前提到的偏好(如“喜欢轻量鞋”)推荐合适产品。
场景:开发上下文感知的聊天机器人,支持多轮对话。
- 项目类型4:数据分析与洞察生成
案例:金融分析师使用 LangChain 加载 CSV 数据,结合 LLM 分析销售趋势,生成自然语言报告。
示例:从销售数据中提取“哪些产品在特定地区销量最高”并生成可视化描述。
场景:处理结构化或非结构化数据,生成报告或洞察。
- 项目类型5:多模态应用
案例:平台使用 LangChain 结合 CLIP 模型,分析产品图片、视频等,生成高质量回复。
示例1:教育平台分析教学视频和讲义,生成互动式学习内容。
示例2:零售平台结合产品图片和描述,回答“哪些产品适合户外使用?”。
场景:结合文本、图像、语音等多模态数据。
- 项目类型6:教育与学习助手
案例:在线教育平台使用 LangChain 构建数学助手,结合 Wolfram Alpha 工具解答复杂公式。
示例:学生提问“积分的定义”,LangChain 检索教材并生成逐步讲解。
场景:开发个性化教育工具,支持学习和练习。
- 项目类型7:自动化工作流
案例:营销团队使用 LangChain 整合市场数据,自动生成社交媒体帖子。
示例:从 CRM 数据生成客户跟进邮件,结合日历安排发送时间。
场景:自动化复杂业务流程,如报告生成、任务调度。
- 项目类型8:研究与创新
案例:研究者使用 LangChain 分析文献,结合知识图谱提取跨领域的概念关系。
示例:从气候变化文献中提取关键趋势,生成研究报告。
场景:支持学术或行业研究,挖掘数据关联。
2.6 LangChain 架构
1)总体架构

- LangChain 帮助快速开始构建 Agent ,支持选择的任何模型提供商。
- LangGraph 允许通过低级编排、记忆和人工参与支持来控制自定义 Agent 的每一步。可以管理具有持久执行能力的长时间运行任务。
- LangSmith 是一个帮助 AI 团队使用实时生产数据进行持续测试和改进的平台。提供观测、评估与部署功能。
- Deep Agents 用于构建能够规划、使用子 Agent 并利用文件系统处理复杂任务的 Agent,受 Claude Code、Deep Research 和 Manus 等应用的启发。
2)LangChain 架构

|
包 |
描述 |
|
langchain |
包含构建使用 LLM 的应用所需的所有实现的主入口点 |
|
langchain-core |
LangChain 生态系统中的核心接口和抽象 |
|
langchain-text-splitters |
用于文档处理的文本分割工具 |
|
langchain-mcp-adapters |
在 LangChain 和 LangGraph 应用中提供 MCP 工具 |
|
langchain-tests |
用于验证 LangChain 集成包实现的标准化测试套件 |
|
langchain-classic |
遗留的 angchain 实现和组件 |
三、开发架构与开发场景介绍
3.1 RAG开发
1)背景
大模型的知识冻结:随着 LLM 规模扩大,训练成本与周期相应增加,模型无法实时学习到最新的信息或动态变化。导致 LLM 难以应对诸如“请推荐现在的热门影片”等时间敏感的问题。
大模型幻觉:涉及到大模型从未在训练过程中学习过的信息时,大模型无法给出准确的答复,转而开始臆想和编造答案。
2)RAG举例
LLM在思考的时候面对陌生的领域,答复能力有限,然后就准备放飞自我了,而此时RAG给了一些提示和参考,让LLM根据参考回答,最终考试的正确率从60%到了90%!

3.2 Agent开发
充分利用 LLM 的推理决策能力,通过增加规划、记忆和工具调用的能力,构造一个能够独立思考、逐步完成给定目标的Agent。

OpenAI的元老翁丽莲(Lilian Weng)于2023年6月在个人博客(https://lilianweng.github.io/posts/2023-06-23-agent/)首次提出了现代AI Agent架构。

一个数学公式来表示:
Agent = LLM + Memory + Tools + Planning + Action
比如,从北京打车到苏州玩。
大脑中枢:规划行程的你
规划:步骤1:规划打车路线,步骤2:订饭店、酒店,。。。
调用工具:调用MCP或FunctionCalling等API,滴滴打车、携程、美团订酒店饭店
记忆能力:沟通时,要知道上下文。比如订酒店得知道是去苏州的酒店,不能聊着聊着忘了最初的目的。
能够执行上述操作。说走就走,不能纸上谈兵。
Agent核心要素被细化为以下模块:
1)大模型(LLM)作为“大脑”
提供推理、规划和知识理解能力,是AI Agent的决策中枢。
大脑主要由一个大型语言模型 LLM 组成,承担着信息处理和决策等功能, 并可以呈现推理和规划的过程,能很好地应对未知任务。
2)记忆(Memory)
Agent 像人类一样,能留存学到的知识以及交互习惯等,这样的机制能让 Agent 在处理重复工作时调用以前的经验,从而避免用户进行大量重复交互。
- 短期记忆:存储单次对话周期的上下文信息,属于临时信息存储机制。受限于模型的上下文窗口长度。
- 长期记忆:可以横跨多个任务或时间周期,可存储并调用核心知识,非即时任务。长期记忆可以通过模型参数微调(固化知识)、知识图谱(结构化语义网络)或向量数据库(相似性检索)方式实现。
以人作类比:
- 短期记忆:在进行心算时临时记住几个数字
- 长期记忆:学会骑自行车后,多年后再次骑起来时仍能掌握这项技能
3)工具使用(Tool Use):调用外部工具(如API、数据库)扩展能力边界。

4)规划决策(Planning):通过任务分解、反思与自省框架实现复杂任务处理。
利用思维链(Chain of Thought)将目标拆解为子任务,并通过反馈优化策略。
5)行动(Action):实际执行决策的模块,涵盖软件接口操作(如自动订票)和物理交互(如机器人执行搬运)。
Agent 会形成完整的计划流程。例如先读取以前工作的经验和记忆,之后规划子目标并使用相应工具去处理问题,最后输出给用户并完成反思。

3.3 大模型应用开发的4个场景
3.3.1 场景1:纯 Prompt
Prompt是操作大模型的唯一接口
当人看:你说一句,ta回一句,你再说一句,ta再回一句…

3.3.2 场景2:Agent + Function Calling
Agent:AI 主动提要求
Function Calling:需要对接外部系统时,AI 要求执行某个函数
当人看:你问 ta「我明天去杭州出差,需要带伞吗?」,ta 让你先看天气预报,你看了告诉ta,ta 再告诉你要不要带伞

3.3.3 场景3:RAG (Retrieval-Augmented Generation)
RAG:需要补充领域知识时使用
Embeddings:把文字转换为更易于相似度计算的编码。这种编码叫向量
向量数据库:把向量存起来,方便查找
向量搜索:根据输入向量,找到最相似的向量
举例:考试答题时,到书上找相关内容,再结合题目组成答案

这个在智能客服上用的最广泛。
3.3.4 场景4:Fine-tuning(精调/微调)
举例:努力学习考试内容,长期记住,活学活用。

特点:成本最高;在前面的方式解决不了问题的情况下,再使用。
3.3.5 如何选择
面对一个需求,如何开始,如何选择技术方案?下面是个常用思路:

注意:其中最容易被忽略的,是准备测试数据。
后面我们重点介绍大模型应用的开发两类:基于RAG的架构,基于Agent的架构。
四、LangChain的核心组件
LangChain的核心组件主要涉及四个部分:Model I/O、Chains、RAG、Agents。
4.1 Model I/O
标准化大模型的输入和输出,包含提示模版,模型调用和格式化输出。

- Format(格式化):通过模板管理大模型的输入。将原始数据格式化成模型可以处理的形式,插入到一个模板中,然后送入模型进行处理。
- Predict(预测):调用 LLM 接收输入,进行预测或生成回答。
- Parse(解析):规范化模型输出。比如将模型输出格式化为 JSON。
4.2 Chains
“链条”用于将多个组件组合成一个完整的流程,方便链式调用。
4.3 Retrieval
对应RAG:检索外部数据,作为参考信息输入LLM辅助生成答案。

- Source:多种类型的数据源:视频、图片、文本、代码、文档等。
- Load:将多源异构数据统一加载为文档对象。
- Transform:对文档进行转换和处理,比如将文本切分为小块。
- Embed:将文本编码为向量。
- Store:将向量化后的数据存储起来。
- Retrieve:从文本库中检索相关的文本段落。
4.4. Agents
Agent 自主规划执行步骤并使用工具来完成任务。


浙公网安备 33010602011771号