1 什么是 LangChain
LangChain是2022年10月,由哈佛大学的Harrison Chase(哈里森·蔡斯)发起研发的一个开源框架,用于开发由大语言模型(LLMs)驱动的应用程序。
LangChain 是一个开源的大型语言模型(LLM)应用开发框架,核心目标是把大模型的能力"编排"成真实的应用程序(如聊天机器人、Agent、RAG 问答系统等)。它解决了"单次调用大模型"和"真实产品"之间的差距------帮你管理提示词、多步骤流程、外部工具和记忆。
它解决的核心问题:
直接调大模型只能拿到一次生成结果,但真实应用往往需要:多步骤推理、调用外部数据/工具、记住对话上下文、结构化输出。LangChain 把这些常见的开发工作抽象成可复用的模块,并串成流水线。
典型工作流
以最常见的 RAG(问答机器人) 为例:
- 文档切片 → 2. 向量化 → 3. 存入向量数据库
- 用户提问 → 5. 检索相关片段 → 6. 拼进 prompt → 7. 调模型生成回答
为什么受欢迎
- 生态成熟:LangChain Hub(可复用 Prompt)、LangSmith(调试)、LangGraph(更灵活的状态机式编排)
- 厂商中立:一套代码对接多家模型
- 社区庞大:集成数千种工具、数据库、向量库
适用场景
- RAG 知识库问答、客服机器人
- Agent 智能体(自动规划 + 调用工具)
- 多步骤数据处理流水线、报表生成、代码辅助等
一点提醒
LangChain 抽象层级高,封装重 ,适合快速搭建原型和标准化开发。但对简单需求,直接调 API 反而更轻;对复杂、需要精细控制的 Agent 编排,很多人也转用 LangGraph 或直接手写逻辑。核心能力(提示词、记忆、工具调用)背后的原理,正是你正在学的 Transformer 等底层知识。
关于LangChain的相关网址链接
- github地址:https://github.com/langchain-ai/langchain
- 官网地址:https://www.langchain.com/langchain
- 官方文档:https://docs.langchain.com/oss/python/langchain/overview
- API 文档:https://reference.langchain.com/python/langchain/
LLMs用的好好的,为什么还需要LangChain?
在大语言模型(LLM)如 ChatGPT、Claude、DeepSeek 等快速发展的今天,开发者不仅希望能"使用"这些模型,还希望能将它们灵活集成到自己的应用中,实现更强大的对话能力、检索增强生成(RAG)、工具调用(Tool Calling)、多轮推理等功能。

问题2:我们可以使用GPT 或GLM5 等模型的API进行开发,为何需要LangChain这样的框架?
不使用LangChain,确实可以使用GPT 或GLM4 等模型的API进行开发。
但使用LangChain的好处:
- 简化开发难度:更简单、更高效、效果更好。
- 开发人员可以更专注于业务逻辑,而无须花费大量时间和精力处理底层技术细节。
- 学习成本更低:不同模型的API不同,调用方式也有区别,切换模型时学习成本高。使用LangChain,可以以统一、规范的方式进行调用,有更好的移植性。
- 现成的Agent构建方法:LangChain提供了现成的构建Agent的方式。让复杂的逻辑变得结构化、易组合、易扩展。
2 LangChain包及核心模块划分
2.1 LangChain所包含的包
LangChain所包含的包及其描述,如下所示:
| 包 | 描述 |
|---|---|
| langchain | 包含构建使用 LLM 的应用所需的所有实现的主入口点 |
| langchain-core | LangChain 生态系统中的核心接口和抽象 |
| langchain-openai/deepseek | Langchain和OpenAI(deepseek)集成包。langchain还包含一系列集成包,这些集成包涵盖了文本生成模型,工具,文档加载,向量存储等多个方面,构成了langchain生态系统。 |
| langchain-mcp-adapters | 在 LangChain 和 LangGraph 应用中提供 MCP 工具 |
| langchain-text-splitters | 用于文档处理的文本分割工具 |
| langchain-tests | 用于验证 LangChain 集成包实现的标准化测试套件 |
| langchain-classic | 遗留的 langchain 实现和组件,主要为1.0.0版本以前的相关内容 |
LangChain 核心组成模块
| 模块 | 作用 |
|---|---|
| Models(模型) | 统一封装各类 LLM(OpenAI、Claude、国内模型等)和嵌入模型,提供统一调用接口 |
| Prompts(提示词) | 模板化管理提示词,支持变量填充、Few-shot 示例 |
| Chains(链) | 把多个步骤按顺序或逻辑串联,比如"取数据→写prompt→调模型→解析结果" |
| Memory(记忆) | 保存历史对话,支持短期窗口和长期存储 |
| Agents(智能体) | 让模型自主决定"下一步调用哪个工具",实现循环推理 |
| Tools(工具) | 让模型能调用外部功能(搜索、计算器、数据库、API) |
| Retrievers(检索) | 支撑 RAG(检索增强生成),从向量库/文档中检索相关内容 |
| Callbacks / Tracing | 观察、日志、监控整个执行过程 |
从逻辑上也可以划分为以下四大部分:
-
Model I/O -- 标准化大模型的输入和输出,包含提示模版,模型调用和格式化输出。

- Format(格式化):通过模板管理大模型的输入。将原始数据格式化成模型可以处理的形式,插入到一个模板中,然后送入模型进行处理。
- Predict(预测):调用 LLM 接收输入,进行预测或生成回答。
- Parse(解析):规范化模型输出。比如将模型输出格式化为 JSON。
-
Chains -- "链条"用于将多个组件组合成一个完整的流程,方便链式调用。
-
RAG -- 对应RAG:检索外部数据,作为参考信息输入LLM辅助生成答案。
-
Agents -- Agent 自主规划执行步骤并使用工具来完成任务。