LangChain 入门指南:核心概念与理论框架
一、什么是 LangChain?
LangChain 是一个专为开发大语言模型(LLM)应用而设计的开源框架。它的核心价值在于将 LLM 的能力模块化、标准化,让开发者能够像搭积木一样组装复杂的 AI 应用,而不必从零开始处理底层的模型调用、数据处理、工具集成等繁琐工作。
简单来说,LangChain 解决了三个核心问题:
- 如何让 LLM 与外部世界交互(访问数据库、调用 API、读取文档)
- 如何让 LLM 具备记忆和上下文管理能力(维持对话连贯性)
- 如何让 LLM 自主决策和执行复杂任务(智能代理)
二、LangChain 的核心概念
mindmap
root((LangChain<br/>核心概念))
Models<br/>模型
LLMs<br/>语言模型
Chat Models<br/>聊天模型
Embeddings<br/>嵌入模型
Prompts<br/>提示词
Templates<br/>模板
Example Selectors<br/>示例选择器
Output Parsers<br/>输出解析器
Documents<br/>文档处理
Loaders<br/>加载器
Text Splitters<br/>文本分割器
Transformers<br/>转换器
Vector Stores<br/>向量存储
Vectorization<br/>向量化
Retrieval<br/>检索
Re-ranking<br/>重排序
Chains<br/>链
LLMChain<br/>简单链
Sequential<br/>顺序链
Router<br/>路由链
Pre-built<br/>预制链
Memory<br/>记忆
Buffer<br/>缓冲记忆
Window<br/>窗口记忆
Summary<br/>摘要记忆
Entity<br/>实体记忆
Agents<br/>代理
ReAct<br/>推理行动
Tools<br/>工具调用
Planning<br/>任务规划
Callbacks<br/>回调
Logging<br/>日志记录
Monitoring<br/>监控
LangSmith<br/>平台集成
2.1 模型(Models)
模型是 LangChain 的"大脑",主要分为三类:
语言模型(LLMs)
传统的文本生成模型,接收文本输入,输出文本结果。适合单轮问答、内容生成等场景。
聊天模型(Chat Models)
专为对话设计的模型,理解"角色"概念(系统、用户、助手),能够维持多轮对话的上下文。这是当前主流应用的核心选择。
嵌入模型(Embeddings)
将文本转换为高维向量的模型,用于语义搜索、相似度计算、文档检索等场景。它是"让 AI 理解语义"的关键技术。
2.2 提示词工程(Prompts)
提示词是人类与 AI 沟通的"语言",LangChain 提供了系统化的提示词管理机制:
提示词模板(Prompt Templates)
预定义的、可复用的提示词格式,支持动态变量插入。就像邮件模板一样,你可以定义结构,然后填充具体内容。
示例选择器(Example Selectors)
根据用户输入,动态选择最相关的示例(Few-shot Learning),让模型更准确地理解任务需求。
输出解析器(Output Parsers)
将 LLM 的文本输出结构化为 JSON、列表等格式,方便程序处理。例如,让模型输出的购物清单自动转换为可操作的数据结构。
2.3 文档处理(Documents & Text Splitting)
大多数 AI 应用需要处理外部知识(PDF、网页、数据库),LangChain 提供了完整的文档处理流程:
文档加载器(Document Loaders)
统一接口加载各种格式的数据源:PDF、Word、网页、数据库、API 返回值等。
文本分割器(Text Splitters)
大模型有上下文长度限制(通常几千到几万字),文本分割器将长文档智能切分为小块:
- 字符分割:按固定字符数切分
- 递归分割:保持段落完整性的智能切分
- 语义分割:基于语义相似度切分(保证每块内容主题统一)
文档转换器(Document Transformers)
对文档进行预处理,如去除无关信息、提取关键内容、翻译等。
2.4 向量存储与检索(Vector Stores & Retrieval)
这是构建"知识库问答"应用的核心技术:
flowchart LR
A[原始文档] --> B[文本分割]
B --> C[嵌入模型<br/>Embeddings]
C --> D[向量数据库<br/>Vector Store]
E[用户提问] --> F[问题向量化]
F --> G[相似度检索]
D --> G
G --> H[检索相关文档]
H --> I[LLM生成答案]
style A fill:#e1f5ff
style D fill:#fff4e1
style E fill:#f0e1ff
style I fill:#e1ffe1
向量化流程
- 使用嵌入模型将文档切片转换为向量
- 存储到向量数据库(如 Chroma、Pinecone、Weaviate)
- 用户提问时,将问题也向量化
- 在向量数据库中搜索最相似的文档片段
- 将检索到的内容作为上下文,让 LLM 生成答案
检索策略
- 相似度检索:找出语义最接近的内容
- 混合检索:结合关键词匹配与语义搜索
- 重排序(Re-ranking):对初步检索结果进行二次排序,提升准确性
2.5 链(Chains)
链是 LangChain 的核心抽象,将多个步骤串联成工作流:
简单链(LLMChain)
最基础的链:提示词 → 模型 → 输出解析。适合单一任务。
顺序链(SequentialChain)
多个链按顺序执行,前一个链的输出作为后一个链的输入。例如:文本翻译 → 情感分析 → 摘要生成。
路由链(RouterChain)
根据输入内容,动态选择执行不同的子链。就像智能客服,根据问题类型路由到不同的处理流程。
预制链(Pre-built Chains)
LangChain 提供了常见场景的开箱即用链:
- 问答链(RetrievalQA):知识库问答
- 摘要链(SummarizationChain):文档摘要
- 对话链(ConversationChain):多轮对话管理
2.6 记忆(Memory)
让 LLM "记住"对话历史,实现连贯的多轮交互:
对话缓冲记忆(ConversationBufferMemory)
保存完整对话历史,适合短对话。
对话窗口记忆(ConversationWindowMemory)
只保留最近 N 轮对话,避免超出上下文限制。
对话摘要记忆(ConversationSummaryMemory)
定期将历史对话压缩为摘要,节省 token 消耗。
实体记忆(EntityMemory)
提取并记住对话中的关键实体(人名、地点、事件),适合长期对话。
2.7 智能代理(Agents)
代理是 LangChain 最强大的功能,让 LLM 能够自主规划和执行复杂任务:
sequenceDiagram
participant U as 用户
participant A as Agent<br/>代理
participant L as LLM<br/>语言模型
participant T as Tools<br/>工具集
U->>A: 任务目标
A->>L: 分析任务,制定计划
L->>A: 决定调用工具X
A->>T: 执行工具X
T->>A: 返回结果
A->>L: 观察结果,决定下一步
L->>A: 调用工具Y
A->>T: 执行工具Y
T->>A: 返回结果
A->>L: 任务完成?
L->>A: 是,生成最终答案
A->>U: 返回结果
工作原理
- 用户给出任务目标
- 代理根据目标,自主决定需要调用哪些工具
- 执行工具,观察结果
- 根据结果调整下一步行动
- 循环迭代,直到完成任务
代理类型
- ReAct 代理:推理(Reasoning)+ 行动(Acting),最经典的代理类型
- 结构化聊天代理:适合复杂工具调用,支持多参数工具
- 计划执行代理:先制定完整计划,再逐步执行
工具(Tools)
代理的"手脚",可以是:
- 搜索引擎:Google、Wikipedia
- 计算器:数学运算
- API 调用:天气查询、邮件发送
- 数据库查询:SQL 执行
- 自定义工具:任何 Python 函数
2.8 回调与监控(Callbacks)
生产环境必备的观测能力:
回调机制
在链/代理执行的各个节点插入钩子函数,记录:
- 每次 LLM 调用的输入/输出
- 工具调用过程
- 错误信息
- 执行耗时与成本
LangSmith 集成
LangChain 官方的监控平台,提供:
- 可视化的执行追踪
- 性能分析与成本统计
- 结果评估与对比测试
- 错误调试与日志查询
三、LangChain 的架构设计
3.1 核心基础包
langchain-core
整个生态的"骨架",定义所有模块的抽象接口和核心基类:
- 抽象类(LLM、ChatModel、Embeddings 等)
- 提示词模板、输出解析器
- 链与代理的核心逻辑
- 运行时配置(Runnable 接口)、日志与回调
作用:确保生态的标准化与可扩展性,所有集成都遵循统一规范。
langchain-text-splitters
专注于文本分割的工具包,提供:
- 通用分割器(RecursiveCharacterTextSplitter)
- 格式专用分割器(Markdown、代码等)
- 语义分割器(基于嵌入模型的智能切分)
3.2 核心功能包
langchain-community
社区贡献包,集成第三方服务与工具:
- 外部模型(OpenAI、Anthropic、Cohere 等)
- 数据源(PDF、MySQL、MongoDB 等)
- 向量库(Chroma、Pinecone、Weaviate 等)
- 工具集成(搜索引擎、API 服务等)
作用:实现 langchain-core 定义的抽象接口,无需重复造轮子。
langchain
聚合包("元包"),默认包含 langchain-core、langchain-community 及常用功能,方便快速上手。
注意:新版本(v0.1+)已模块化拆分,实际开发推荐直接依赖细分包。
3.3 场景化/进阶功能包
langchain-agents
专注于智能代理实现:
- 代理类型(ReActAgent、StructuredChatAgent)
- 工具调用策略、多代理协作逻辑
- 与外部工具的适配
langchain-chains
提供预制链,封装常见任务流程:
- 问答链(RetrievalQA)
- 摘要链(SummarizationChain)
- 对话链(ConversationChain)
langchain-vectorstores
专注于向量数据库集成:
- 主流向量库适配
- 检索策略(相似性搜索、混合检索)
langchain-experimental
包含实验性功能,如多模态链、智能体优化、新模型集成等,适合尝鲜或定制开发。
3.4 生态配套包
langsmith-sdk
官方监控与调试工具的 SDK,用于:
- 追踪链/代理的运行
- 评估性能
- 调试错误
- 成本监控
作用:生产环境必备工具。
langchain-cli
命令行工具,辅助:
- 项目初始化
- 模板生成
- LangSmith 配置
3.5 架构关系总结
graph TD
A[langchain-core<br/>基础接口与抽象类] --> B[langchain-community<br/>第三方集成]
A --> C[langchain-text-splitters<br/>文本处理]
B --> D[langchain-agents<br/>智能代理]
B --> E[langchain-chains<br/>预制链]
B --> F[langchain-vectorstores<br/>向量存储]
C --> D
C --> E
D --> G[langchain<br/>聚合元包]
E --> G
F --> G
A --> H[langchain-experimental<br/>实验性功能]
H --> G
G --> I[langsmith-sdk<br/>监控调试]
G --> J[langchain-cli<br/>开发工具]
style A fill:#e1f5ff
style B fill:#fff4e1
style C fill:#fff4e1
style D fill:#f0e1ff
style E fill:#f0e1ff
style F fill:#f0e1ff
style G fill:#e1ffe1
style H fill:#ffe1e1
style I fill:#ffe1f5
style J fill:#ffe1f5
四、典型应用场景
graph LR
A[LangChain<br/>应用场景] --> B[知识库问答]
A --> C[智能客服]
A --> D[内容生成]
A --> E[数据分析]
A --> F[知识管理]
B --> B1[文档加载]
B1 --> B2[向量化]
B2 --> B3[检索]
B3 --> B4[问答链]
C --> C1[对话记忆]
C1 --> C2[路由链]
C2 --> C3[工具调用]
D --> D1[提示词模板]
D1 --> D2[生成]
D2 --> D3[优化]
D3 --> D4[翻译]
E --> E1[智能代理]
E1 --> E2[SQL工具]
E2 --> E3[Python工具]
F --> F1[多源加载]
F1 --> F2[向量检索]
F2 --> F3[实体记忆]
style A fill:#e1f5ff
style B fill:#fff4e1
style C fill:#f0e1ff
style D fill:#e1ffe1
style E fill:#ffe1f5
style F fill:#ffe1e1
4.1 知识库问答系统
用户上传企业文档,系统自动构建知识库,员工可以用自然语言提问,获得准确答案。
核心技术:文档加载 → 文本分割 → 向量化存储 → 检索 → 问答链
4.2 智能客服
根据用户问题,自动分类并路由到不同的处理流程,支持多轮对话,记住用户偏好。
核心技术:对话记忆 + 路由链 + 工具调用(查询订单、查询物流等)
4.3 内容生成助手
根据用户需求,自动生成营销文案、产品描述、报告摘要等,支持多语言翻译。
核心技术:提示词模板 + 顺序链(生成 → 优化 → 翻译)
4.4 数据分析代理
用户用自然语言描述分析需求,代理自动查询数据库、执行数据处理、生成可视化图表。
核心技术:智能代理 + SQL 工具 + Python 工具
4.5 个人知识管理
整合笔记、邮件、浏览记录,构建个人知识图谱,支持智能搜索和知识关联。
核心技术:多源文档加载 + 向量检索 + 实体记忆
五、学习路径建议
timeline
title LangChain 学习路径
section 第一阶段
理解核心概念 : LLM基本原理
: 提示词工程
: 向量化与语义搜索
section 第二阶段
掌握基础组件 : 模型调用
: 文档处理
: 向量存储与检索
section 第三阶段
构建应用链 : 简单链设计
: 预制链使用
: 对话记忆管理
section 第四阶段
进阶代理开发 : 工具定义与集成
: 代理规划逻辑
: 多代理协作
section 第五阶段
生产化部署 : 性能优化
: 监控调试
: 安全可靠性
第一阶段:理解核心概念
- 掌握 LLM 的基本原理与能力边界
- 理解提示词工程的重要性
- 熟悉向量化与语义搜索的逻辑
第二阶段:掌握基础组件
- 模型调用与输出解析
- 文档处理与文本分割
- 向量存储与检索
第三阶段:构建应用链
- 简单链的设计与调试
- 预制链的使用与定制
- 对话记忆的管理
第四阶段:进阶代理开发
- 工具定义与集成
- 代理的规划与执行逻辑
- 多代理协作
第五阶段:生产化部署
- 性能优化与成本控制
- 监控与调试(LangSmith)
- 安全性与可靠性设计
六、总结
LangChain 的核心价值在于标准化、模块化、可组合。它不是一个单一的工具,而是一套完整的开发方法论:
- 标准化:统一的接口设计,让不同模型、工具、数据源无缝集成
- 模块化:清晰的职责划分,每个组件专注做好一件事
- 可组合:像乐高积木一样,灵活组装出千变万化的应用
无论是构建简单的问答机器人,还是复杂的多代理协作系统,LangChain 都提供了从理念到工具的全栈支持。掌握它的理论框架,你就掌握了 LLM 应用开发的"标准范式"。
demo还在写 下一篇《LangChain 深入浅出入门教程》