LangChain 完整全解析

LangChain 完整全解析(2026 v1.x 最新架构)

一、基础定位与起源

1. 定义

LangChain 是开源、模块化的 LLM 应用编排开发框架,2022 年底推出,核心解决原生大模型三大痛点:

  1. 无长期记忆,多轮对话丢失上下文;
  2. 无法读取私有文档、实时外部数据(知识库、数据库、联网搜索);
  3. 不能自主调用工具、拆分复杂任务,只能被动一问一答。

通俗比喻:

  • LLM = 只有大脑,不会查资料、不会记对话、不会操作软件;
  • LangChain = 一套标准化 "乐高积木",给 LLM 装上记忆、知识库、工具、任务流程、自主决策,快速搭建 RAG、对话机器人、AI Agent、自动化工作流。

2. 核心设计思想:模块化、统一抽象、可插拔

所有组件遵循统一 Runnable 接口,支持管道符 | 串联、流式输出、批量调用; 任意模型、向量库、工具可以无缝替换,无厂商锁定。

3. 新版包分层架构(v1.x 拆分式,不再单一大包)

表格

作用
langchain-core 底层核心抽象:消息、提示词、Runnable、输出解析、基础接口,无第三方集成,轻量
langchain 高层业务逻辑:Chain、Retriever、基础 Agent、通用流程
langchain-openai/langchain-qwen/langchain-anthropic 官方专用模型集成包,独立维护
langchain-community 社区第三方集成:Chroma、Pinecone、各类 Loader、工具、小众模型
langgraph 配套图编排引擎,复杂循环 Agent、多分支流程、持久化状态
langsmith 配套调试观测平台,追踪每一步调用、耗时、Token、日志

二、六大核心基础组件(官方标准体系)

1. Models 模型层(大脑底座)

统一封装三类模型,抹平各家 API 差异,切换模型仅改一行代码:

  1. ChatModel 对话模型 (主流) GPT-4o、Claude、Gemini Flash/Mini/Nano、通义千问、Llama、Qwen 等,支持多轮消息结构 HumanMessage/AIMessage/SystemMessage
  2. LLM 文本补全模型(老式单文本输入) 多用于简单生成、代码补全。
  3. Embedding 嵌入模型 将文本转为向量,用于语义检索,对接 OpenAI Embedding、本地 BGE、M3E 等,配合向量数据库(Chroma/Pinecone)。

2. Prompts 提示词工程层

解决硬编码 Prompt 难以维护、无法复用的问题:

  • PromptTemplate:静态模板,支持变量插值 {context} {question}
  • ChatPromptTemplate:多角色对话模板(系统提示 + 用户消息 + 历史对话);
  • FewShotPromptTemplate:自动注入示例样本,提升输出格式稳定性;
  • 支持分段、长度截断、动态过滤无效上下文。

3. Output Parsers 输出解析器

大模型返回自由文本,解析器把文本转为结构化数据(JSON、列表、对象、枚举):

  • JsonOutputParser:强制输出标准 JSON;
  • PydanticOutputParser:绑定 Python 数据模型,自动校验字段;
  • CommaSeparatedListOutputParser:提取数组; 价值:方便后端直接读取字段,避免文本解析混乱。

4. Memory 记忆层(对应你之前学的 short term /long term memory)

区分会话短期记忆 (上下文窗口内)、外置长期记忆(向量库持久化,不受 context window 限制):

  1. 短期对话记忆(当前对话窗口)
    • ConversationBufferMemory:完整存储全部聊天记录;
    • ConversationSummaryMemory:自动总结历史,减少 Token 占用,防止窗口溢出;
    • ConversationTokenBufferMemory:按 Token 长度裁剪历史。
  2. 长期持久记忆(跨会话)
    • VectorStoreRetrieverMemory:对话摘要存入 Chroma/Pinecone,下次聊天检索历史记忆,突破上下文窗口上限。

5. Documents & Retrievers 检索层(RAG 核心)

完整私有知识库流水线:

  1. Document Loaders:文件读取器 加载 PDF、Word、Markdown、网页、CSV、数据库、飞书 / 企业微信文档;
  2. Text Splitter:文本分割器 按字符、Token、语义递归分割,避免超长片段塞满上下文窗口;
  3. VectorStore 向量库对接 原生集成 Chroma(本地轻量)、Pinecone(云端托管)、FAISS、Weaviate 等;
  4. Retriever 检索器 接收用户问题,向量相似度召回 Top-K 相关文档,注入 Prompt 给 LLM; 进阶:上下文压缩检索、多路查询检索、父文档检索,提升召回精度。

6. Tools & Agents 工具与智能体(自主执行能力)

Tools 工具

让 LLM 调用外部能力,内置 + 自定义均可:

  • 内置:联网搜索、Python 代码解释器、计算器、文件读写;
  • 自定义:企业数据库查询、支付 API、邮件发送、爬虫、第三方接口; 每个 Tool 包含名称、功能描述、入参,供 LLM 判断何时调用。
Agent 智能体(LangChain 高阶能力)

普通 Chain 是固定步骤流水线 ;Agent 是动态自主决策: LLM 根据问题自己判断:要不要查资料、调用哪个工具、调用几次、循环直到完成任务,对应你之前区分的 LLM vs Agent。 主流 Agent 类型:

  1. ReAct Agent:思考 + 行动循环,最通用;
  2. OpenAI Tool Calling Agent:依托模型原生函数调用,稳定;
  3. Plan-and-Solve:先拆解任务规划,再分步执行; 复杂多分支、带循环的 Agent 现在推荐搭配 LangGraph 实现状态持久、人工介入、多轮循环。

三、Chain 链:基础流程编排单元

Chain = 把多个组件按固定顺序串成一条流水线,新版推荐 LCEL(LangChain Expression Language)管道写法 |,替代老式类继承:

经典常用 Chain

  1. RAG 检索问答链 文件加载 → 切片 → 向量化入库 → 用户提问检索文档 → 拼提示词 → LLM 生成答案;
  2. ConversationChain 对话链 Prompt + LLM + Memory,实现带记忆聊天机器人;
  3. SequentialChain 顺序链 多步骤串行执行(摘要 → 翻译 → 生成报表);
  4. TransformChain 数据转换链 清洗、过滤、格式化文本;

简单 LCEL 示例逻辑:

plaintext

复制代码
rag_chain = retriever | prompt | llm | parser

用户输入自动沿着管道依次执行。

四、LangGraph:复杂 Agent 图编排(2025 + 主推)

LangChain 原生 Chain 是线性单向流程,无法处理:循环、分支、条件判断、中途人工介入、状态保存。 LangGraph 是配套扩展,用有向图管理 Agent 状态:

  • 节点:LLM、工具调用、校验;
  • 边:条件跳转(检索不到资料就重新搜索,出错自动重试);
  • 持久化:对话状态存数据库,中断后可恢复; 现在生产级 Agent(多工具、多步骤、自动纠错)全部基于 LangGraph。

五、完整典型工作流(RAG 知识库问答)

  1. 离线预处理 PDF Loader 读取文档 → RecursiveCharacterTextSplitter 切片 → Embedding 向量化 → 存入 Chroma/Pinecone 向量库;
  2. 用户线上提问 用户问题 → Retriever 向量检索相似文档 → 检索结果 + 用户问题注入 PromptTemplate → 传入 ChatModel → OutputParser 结构化输出回答;
  3. 带记忆增强 叠加 VectorStoreRetrieverMemory,自动读取历史对话,回答兼顾长期上下文。

六、LangChain 配套生态工具

  1. LangSmith 调试、监控、观测平台:追踪每一步检索、LLM 调用、Token 消耗、延迟、失败日志,可视化完整链路,解决 Agent 黑盒问题;
  2. LangServe 一键把 Chain/Agent 封装成 REST API,快速提供后端服务,对接前端。

七、优缺点总结

优势

  1. 极致生态集成:兼容几乎所有大模型、向量库、文件格式、第三方工具,社区方案极多;
  2. 统一抽象,组件插拔:换本地 Chroma / 云端 Pinecone、切换 GPT / 千问几乎不用改动业务代码;
  3. 一站式覆盖 RAG、对话、Agent、自动化,从原型到生产完整链路;
  4. LCEL 管道语法简洁易读,支持流式、异步、批量;
  5. 配套 LangSmith 解决复杂 Agent 调试难题。

劣势

  1. 学习曲线陡峭,概念多(Chain/Memory/Retriever/Agent/LangGraph);
  2. 简单纯文本生成场景(仅调用 LLM 写文案)直接调用 API 更轻量,引入框架有冗余;
  3. 多层组件嵌套带来轻微调用延迟,超高并发毫秒级场景需要深度优化;
  4. 版本迭代快,旧 API 频繁废弃,网上老旧教程容易踩坑;
  5. 复杂大规模分布式生产需要额外做缓存、分片、限流封装。

八、适用 / 不适用场景

适合使用 LangChain

  1. 私有知识库问答(企业文档、本地资料 RAG);
  2. 带多轮长期记忆的智能客服、AI 聊天助手;
  3. 需要联网、数据库、代码执行的自主 Agent;
  4. 多步骤自动化工作流(数据分析、报表自动生成、批量文本处理);
  5. 快速原型验证,快速搭建可演示 AI 应用。

不建议使用 LangChain

  1. 仅简单单次文本生成(翻译、短文创作,无知识库无工具);
  2. 极致低延迟、超高吞吐纯推理服务;
  3. 极小嵌入式端侧离线模型(Nano 级轻量 SLM,资源有限)。

九、关联你之前学过概念串联总结

  1. Context Window / Short Term Memory → LangChain Memory 组件实现会话上下文;
  2. Long Term Memory → VectorStoreRetrieverMemory + Chroma/Pinecone 向量库;
  3. Nano/Mini/Flash LLM → Models 层统一接入,无缝替换;
  4. Chroma / Pinecone → Documents+Retrievers 向量存储底层;
  5. LLM vs Agent:单纯 LLM 调用是基础单元;Agent 是 LangChain 高阶动态决策模块,依靠 Tools+LangGraph 实现自主任务执行。

一句话极简概括

LangChain 是一套标准化组件库,给裸大模型补上记忆、私有知识库、外部工具与任务编排能力,是目前构建 RAG 和 LLM Agent 最主流的开发框架。