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

一、什么是 LangChain?
LangChain 是一个专为开发大语言模型(LLM)应用而设计的开源框架。它的核心价值在于将 LLM 的能力模块化、标准化,让开发者能够像搭积木一样组装复杂的 AI 应用,而不必从零开始处理底层的模型调用、数据处理、工具集成等繁琐工作。
简单来说,LangChain 解决了三个核心问题:
- 如何让 LLM 与外部世界交互(访问数据库、调用 API、读取文档)
- 如何让 LLM 具备记忆和上下文管理能力(维持对话连贯性)
- 如何让 LLM 自主决策和执行复杂任务(智能代理)
二、LangChain 的核心概念
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)
这是构建"知识库问答"应用的核心技术:
向量化流程
- 使用嵌入模型将文档切片转换为向量
- 存储到向量数据库(如 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 能够自主规划和执行复杂任务:
工作原理
- 用户给出任务目标
- 代理根据目标,自主决定需要调用哪些工具
- 执行工具,观察结果
- 根据结果调整下一步行动
- 循环迭代,直到完成任务
代理类型
- 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 架构关系总结
四、典型应用场景
4.1 知识库问答系统
用户上传企业文档,系统自动构建知识库,员工可以用自然语言提问,获得准确答案。
核心技术:文档加载 → 文本分割 → 向量化存储 → 检索 → 问答链
4.2 智能客服
根据用户问题,自动分类并路由到不同的处理流程,支持多轮对话,记住用户偏好。
核心技术:对话记忆 + 路由链 + 工具调用(查询订单、查询物流等)
4.3 内容生成助手
根据用户需求,自动生成营销文案、产品描述、报告摘要等,支持多语言翻译。
核心技术:提示词模板 + 顺序链(生成 → 优化 → 翻译)
4.4 数据分析代理
用户用自然语言描述分析需求,代理自动查询数据库、执行数据处理、生成可视化图表。
核心技术:智能代理 + SQL 工具 + Python 工具
4.5 个人知识管理
整合笔记、邮件、浏览记录,构建个人知识图谱,支持智能搜索和知识关联。
核心技术:多源文档加载 + 向量检索 + 实体记忆
五、学习路径建议
第一阶段:理解核心概念
- 掌握 LLM 的基本原理与能力边界
- 理解提示词工程的重要性
- 熟悉向量化与语义搜索的逻辑
第二阶段:掌握基础组件
- 模型调用与输出解析
- 文档处理与文本分割
- 向量存储与检索
第三阶段:构建应用链
- 简单链的设计与调试
- 预制链的使用与定制
- 对话记忆的管理
第四阶段:进阶代理开发
- 工具定义与集成
- 代理的规划与执行逻辑
- 多代理协作
第五阶段:生产化部署
- 性能优化与成本控制
- 监控与调试(LangSmith)
- 安全性与可靠性设计
六、总结
LangChain 的核心价值在于标准化、模块化、可组合。它不是一个单一的工具,而是一套完整的开发方法论:
- 标准化:统一的接口设计,让不同模型、工具、数据源无缝集成
- 模块化:清晰的职责划分,每个组件专注做好一件事
- 可组合:像乐高积木一样,灵活组装出千变万化的应用
无论是构建简单的问答机器人,还是复杂的多代理协作系统,LangChain 都提供了从理念到工具的全栈支持。掌握它的理论框架,你就掌握了 LLM 应用开发的"标准范式"。
demo还在写 下一篇《LangChain 深入浅出入门教程》