LangChain 入门指南:核心概念与理论框架

一、什么是 LangChain?
LangChain 是一个专为开发大语言模型(LLM)应用而设计的开源框架。它的核心价值在于将 LLM 的能力模块化、标准化,让开发者能够像搭积木一样组装复杂的 AI 应用,而不必从零开始处理底层的模型调用、数据处理、工具集成等繁琐工作。
简单来说,LangChain 解决了三个核心问题:
- 如何让 LLM 与外部世界交互(访问数据库、调用 API、读取文档)
- 如何让 LLM 具备记忆和上下文管理能力(维持对话连贯性)
- 如何让 LLM 自主决策和执行复杂任务(智能代理)
二、LangChain 的核心概念
核心概念)) Models
模型 LLMs
语言模型 Chat Models
聊天模型 Embeddings
嵌入模型 Prompts
提示词 Templates
模板 Example Selectors
示例选择器 Output Parsers
输出解析器 Documents
文档处理 Loaders
加载器 Text Splitters
文本分割器 Transformers
转换器 Vector Stores
向量存储 Vectorization
向量化 Retrieval
检索 Re-ranking
重排序 Chains
链 LLMChain
简单链 Sequential
顺序链 Router
路由链 Pre-built
预制链 Memory
记忆 Buffer
缓冲记忆 Window
窗口记忆 Summary
摘要记忆 Entity
实体记忆 Agents
代理 ReAct
推理行动 Tools
工具调用 Planning
任务规划 Callbacks
回调 Logging
日志记录 Monitoring
监控 LangSmith
平台集成
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)
这是构建"知识库问答"应用的核心技术:
Embeddings] C --> D[向量数据库
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 能够自主规划和执行复杂任务:
代理 participant L as LLM
语言模型 participant T as Tools
工具集 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 架构关系总结
基础接口与抽象类] --> B[langchain-community
第三方集成] A --> C[langchain-text-splitters
文本处理] B --> D[langchain-agents
智能代理] B --> E[langchain-chains
预制链] B --> F[langchain-vectorstores
向量存储] C --> D C --> E D --> G[langchain
聚合元包] E --> G F --> G A --> H[langchain-experimental
实验性功能] H --> G G --> I[langsmith-sdk
监控调试] G --> J[langchain-cli
开发工具] 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
四、典型应用场景
应用场景] --> 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 个人知识管理
整合笔记、邮件、浏览记录,构建个人知识图谱,支持智能搜索和知识关联。
核心技术:多源文档加载 + 向量检索 + 实体记忆
五、学习路径建议
第一阶段:理解核心概念
- 掌握 LLM 的基本原理与能力边界
- 理解提示词工程的重要性
- 熟悉向量化与语义搜索的逻辑
第二阶段:掌握基础组件
- 模型调用与输出解析
- 文档处理与文本分割
- 向量存储与检索
第三阶段:构建应用链
- 简单链的设计与调试
- 预制链的使用与定制
- 对话记忆的管理
第四阶段:进阶代理开发
- 工具定义与集成
- 代理的规划与执行逻辑
- 多代理协作
第五阶段:生产化部署
- 性能优化与成本控制
- 监控与调试(LangSmith)
- 安全性与可靠性设计
六、总结
LangChain 的核心价值在于标准化、模块化、可组合。它不是一个单一的工具,而是一套完整的开发方法论:
- 标准化:统一的接口设计,让不同模型、工具、数据源无缝集成
- 模块化:清晰的职责划分,每个组件专注做好一件事
- 可组合:像乐高积木一样,灵活组装出千变万化的应用
无论是构建简单的问答机器人,还是复杂的多代理协作系统,LangChain 都提供了从理念到工具的全栈支持。掌握它的理论框架,你就掌握了 LLM 应用开发的"标准范式"。
demo还在写 下一篇《LangChain 深入浅出入门教程》