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

135 阅读9分钟

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

人工智能的无限可能.png

一、什么是 LangChain?

LangChain 是一个专为开发大语言模型(LLM)应用而设计的开源框架。它的核心价值在于将 LLM 的能力模块化、标准化,让开发者能够像搭积木一样组装复杂的 AI 应用,而不必从零开始处理底层的模型调用、数据处理、工具集成等繁琐工作。

简单来说,LangChain 解决了三个核心问题:

  1. 如何让 LLM 与外部世界交互(访问数据库、调用 API、读取文档)
  2. 如何让 LLM 具备记忆和上下文管理能力(维持对话连贯性)
  3. 如何让 LLM 自主决策和执行复杂任务(智能代理)

二、LangChain 的核心概念

image.png


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
向量化流程
  1. 使用嵌入模型将文档切片转换为向量
  2. 存储到向量数据库(如 Chroma、Pinecone、Weaviate)
  3. 用户提问时,将问题也向量化
  4. 在向量数据库中搜索最相似的文档片段
  5. 将检索到的内容作为上下文,让 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: 返回结果
工作原理
  1. 用户给出任务目标
  2. 代理根据目标,自主决定需要调用哪些工具
  3. 执行工具,观察结果
  4. 根据结果调整下一步行动
  5. 循环迭代,直到完成任务
代理类型
  • 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 深入浅出入门教程》