20250907-03:LangChain的六大核心模块概览
✅ LangChain 第一周成长计划:基础认知与环境搭建
🎯 本周核心目标(Objective)
建立对 LangChain 的系统性认知,完成本地开发环境搭建,并成功运行第一个 LLM 调用程序。
🎯 关键结果(Key Results, KRs)
KR
- 在 2 小时 内,用 官方教程 完成 理解 LangChain 六大核心模块概览,交付 输出一篇文章到CSDN ;若因 知识找不到 失败,最多重试 查找其他资料,最终必须 输出文章 并 整理知识点题目
KR 编号 | 关键结果描述 | 验收标准 |
---|---|---|
KR2 | 能列举并简述 LangChain 六大核心模块(Models, Prompts, Chains, Indexes, Memory, Agents)的功能与协作关系 | 绘制模块关系图或完成填空测验得分 ≥ 90% |
▶ 任务 1.2:掌握六大核心模块功能与关系
具体内容:
- Models:LLM vs ChatModel vs Embedding 模型的区别与用途
- Prompts:模板化输入,控制模型行为
- Chains:串联多个步骤(如 Prompt → LLM → Parser)
- Indexes:文档加载、分块、向量化、检索(RAG 基础)
- Memory:保存对话历史,实现多轮交互
- Agents:自主决策,调用工具(如搜索、计算器)
所需时间:2 小时
预期成果:
- 能为每个模块写出一句话定义(如 “Memory 是让 AI 记得你上句话说什么的模块”)
- 能画出模块协作流程图(用户输入 → Prompt → Chain → Model → 输出,可选 Indexes/Memory/Agents)
难度控制:i+1 —— 不要求深入代码,只需建立模块“是什么、干什么”的认知地图。
资源准备:
理论知识整理
关键内容(即六大核心模块):
- Models (I/O) :通过集成层调用具体的 LLM、ChatModel 或 Embedding Model。
- Prompts:使用
PromptTemplate
和ChatPromptTemplate
管理和格式化输入。 - Indexes (Retrieval) :实现 RAG 的完整流水线(Loader → Splitter → Embedding → VectorStore → Retriever)。
- Chains:使用 LCEL (
|
) 将多个组件(如 Prompt + Model + Parser)串联成可复用的工作流。 - Memory:管理对话或应用的短期/长期状态(如
ConversationBufferMemory
)。 - Agents:创建能根据 LLM 的“思考”结果,动态选择并调用 Tools 的智能体。
组件
LangChain 为以下主要组件提供标准、可扩展的接口和外部集成
1️⃣ Model/IO 模型I/O
核心功能简述
格式化和管理语言模型输入输出。 “执行者” :负责与底层大语言模型(LLM/ChatModel)或嵌入模型(Embeddings)进行实际交互,发送输入并接收原始输出。
关键组件/概念
LLM
, ChatModel
,promptTemplate
outputParser
Embeddings
, BaseLLM
, BaseChatModel
, BaseEmbeddings
与其他模块的协作关系
基础层:所有其他模块的最终“执行引擎”。Prompts
为其提供结构化输入,Chains
和 Agents
调用它执行任务,Indexes
使用 Embeddings
模型将文本向量化,OutputParsers
处理其原始输出。
2️⃣ Prompts 提示词
核心功能简述
“指挥官” :管理和格式化发送给模型的输入指令。通过模板化、动态变量注入、示例引导等方式,将用户输入和业务逻辑转化为模型能理解的高质量提示词,极大提升模型输出的准确性和相关性。
关键组件/概念
PromptTemplate
, ChatPromptTemplate
, FewShotPromptTemplate
, BasePromptTemplate
…很多
与其他模块的协作关系
输入层:为 Models
模块准备“弹药”。Chains
将其与模型串联,Agents
根据任务动态生成或选择提示词。Memory
可以将历史对话作为上下文注入到提示词中。
3️⃣ Indexes (索引/检索)
核心功能简述
”知识库” :实现 RAG(Retrieval-Augmented Generation)的核心。负责从外部数据源加载数据、分割文本、生成向量嵌入、存储到向量数据库,并在需要时检索最相关的文档片段,为模型提供上下文知识,解决“幻觉”问题。
关键组件/概念
Document Loaders
, Text Splitters
, Embeddings
, Vector Stores
, Retrievers
…
与其他模块的协作关系
数据层:为 Models
和 Prompts
提供外部知识。检索到的文档通常会被注入到 Prompts
中,再由 Chains
或 Agents
传递给 Models
进行生成。是构建知识问答系统的基石。
4️⃣ Chains (链)
核心功能简述
“流水线” :使用 LCEL(LangChain Expression Language)将多个组件(如 Prompt + Model + Parser)通过管道符 |
串联起来,形成可复用、可组合的自动化工作流。是构建复杂应用的基本单元。
关键组件/概念
LCEL (Runnable)
, RunnableSequence
, RunnableParallel
, LLMChain
, RetrievalQA
…
与其他模块的协作关系
流程层: 作为 LangChain 的“工作流引擎”,Chains 通过 LCEL 管道将 Prompts 的指令、Indexes 的知识、Memory 的上下文有序串联,并驱动 Models 执行生成,同时构成 Agents 内部决策与工具调用的基础执行单元,实现从输入到输出的自动化、可复用任务编排。
5️⃣ Memory (记忆)
核心功能简述
“记事本” :管理应用或对话的短期和长期状态。在多轮对话中保存历史消息、关键信息或用户偏好,确保对话的连贯性和个性化,让AI应用拥有“记忆”,避免每次交互都从零开始。
关键组件/概念
ConversationBufferMemory
, ConversationSummaryMemory
, EntityMemory
, BaseMemory
…
与其他模块的协作关系
状态层:主要服务于 Prompts
和 Agents
。它将历史对话或关键信息作为上下文,动态注入到 Prompts
中,使 Models
能基于完整上下文生成回复。Agents
依赖 Memory
来跟踪其决策过程和工具调用历史。
6️⃣ Agents (智能体)
核心功能简述
“决策者” :赋予应用“ 自主思考 ”和“ 动态行动 ”的能力。它使用 LLM 作为推理引擎,根据用户输入分析应采取的动作(调用哪个 Tool
),抽取参数,执行工具,并根据结果决定下一步,直至完成复杂、开放性的任务。
关键组件/概念
langgraph
, Tools
, Agent Types (e.g., ReAct)
, Tool Calling
与其他模块的协作关系
智能层:最高级的协作模式。Agents
内部通常包含一个或多个 Chains
来处理思考和调用。它调用 Models
进行推理,利用 Prompts
引导思考,通过 Tools
(可能基于 Indexes
或外部API)执行具体操作,并使用 Memory
记录过程。是构建自动化、智能化应用的核心。
🔄 模块协作关系总览例子
模块写作关系图
想象一个典型的 “带记忆的知识问答机器人” 的工作流程:
- 用户提问:用户输入一个问题。
- Memory 介入:系统将当前问题与
Memory
中的历史对话结合,形成完整的上下文。【已经知道的知识,记在脑子里】 - Indexes 检索:
Retriever
根据问题,从向量数据库中检索出最相关的几篇文档。【不知道的知识,需要查询外部知识获取】 - Prompts 构建:
PromptTemplate
将用户问题、历史对话上下文和检索到的文档片段,组合成一个结构化的提示词。 - Chains 执行:一个
Chain
将构建好的提示词传递给Model
。 - Models 生成:
Model
(如 GPT-4)接收提示词,生成最终答案。 - Memory 更新:将本次问答(用户问题和AI答案)存入
Memory
,供下一轮对话使用。 - (如果是Agent) :如果问题复杂(如“计算XX公司的市值并画图”),
Agent
会先用Model
思考,决定先调用“网络搜索”Tool
获取数据,再调用“Python代码执行”Tool
进行计算和绘图,最后将结果整合成自然语言回复。整个过程由Agent
内部的Chains
编排,并利用Memory
跟踪步骤。
总结来说:
- Models 是执行的终点。
- Prompts 是输入的起点和指挥棒。
- Chains 是连接一切、实现自动化的管道。
- Indexes 是为模型注入外部知识的桥梁。
- Memory 是维持状态和上下文的粘合剂。
- Agents 是站在所有模块之上,进行高级决策和动态任务规划的“大脑”。
这六大模块各司其职,又紧密协作,共同构成了 LangChain 强大而灵活的应用开发生态。
实践练习
习题
自己写出一句话的定义
Models (I/O) : 格式化提示词模板生成输入,并通过执行LLM/chatmodel 输出格式化的输出
🔶 点评:
你混淆了 Models 与 Prompts/OutputParsers 的职责。- ❌ 错误点:Models 不负责“格式化提示词”或“输出格式化” —— 这是 Prompts 和 OutputParsers 的工作。
- ✅ 正确点:提到了“执行 LLM/ChatModel”,这是核心。
📌 正确一句话定义应为:
“Models 是执行引擎,负责接收结构化输入并调用底层 LLM 或 ChatModel 生成原始文本输出。”
Prompts:格式化和管理提示词生成高质量的大模型输入
非常精准!抓住了核心:“格式化 + 管理 + 高质量输入”。
如果加一个词会更完整:“动态格式化” —— 因为模板支持变量注入。📌 优化版:
“Prompts 动态格式化和管理提示词,将用户输入转化为结构化、高质量的大模型指令。”
Indexes (Retrieval) :通过各种方式,使大模型能够与外部进行交互,获取外部感知信息。
🔶 点评:
方向正确,但表述过于宽泛。“与外部交互”是整个 LangChain 的目标,不是 Indexes 独有。
Indexes 的核心是 “检索增强生成(RAG)” —— 从私有数据中检索相关片段,注入提示词。📌 优化版:
“Indexes 实现 RAG 流程,从外部数据源加载、向量化并检索相关文档,为模型提供上下文知识。”
Chains:,以 LCEL 表达式语言使用
|
管道符号,连接一切组件组合,形成自动化的流水线。✅ 得分:95/100
🔶 点评:
非常棒!准确提到了 LCEL、管道符、组件组合、自动化流水线 —— 几乎完美。
唯一可加的是“可复用”或“声明式”来体现工程价值。📌 优化版:
“Chains 使用 LCEL 声明式管道符
|
连接组件,构建可复用、可调试的自动化工作流。”Memory:实现长短记忆能力,让大模型形成有状态记忆,实现多轮对话,提升交互体验。
✅ 得分:85/100
🔶 点评:
内容正确,但“让大模型形成有状态记忆”表述易引发误解 —— 模型本身无状态,是 LangChain 通过 Memory 组件模拟状态。
建议强调“应用层状态管理”。📌 优化版:
“Memory 在应用层管理对话或任务状态,通过保存历史上下文,实现连贯的多轮交互体验。”
Agents:能够自主规划任务计划,执行任务,调用各个组件获取所需信息,自主决策下一步行动。
✅ 得分:90/100
🔶 点评:
非常出色!准确抓住了“自主规划、决策、调用组件”的核心。
可补充“基于 LLM 推理”来强调其智能来源。📌 优化版:
“Agents 基于 LLM 推理能力,自主规划、决策并动态调用 Tools 或 Chains 完成开放性复杂任务。”
术语
进度跟踪卡
字段 | 说明 | 示例 |
---|---|---|
里程碑完成度 | 关键节点的达成情况(与计划对比) | 1. 绘制模块间写作图,梳理相互之间关系和概念作用 2. 输出模块文档 3. 一句话定义模块练习: 总体评分:83.3 / 100 🎖️ 等级:良好 → 优秀边缘!只需微调术语精确性即可冲刺满分。 |
能力变化曲线 | 核心指标的趋势跟踪(如正确率、耗时、难度等级) | 耗时: 3h 难度: 中 |
瓶颈突破记录 | 遇到的停滞期及解决方案(如平台期、动机下降、技术难点) | 术语精确性打磨(30分钟) 任务三:画图挑战(可选,15分钟) |
心理表征发展 | 对领域规律的认知深化(如模式识别、问题拆解能力的提升) | 认知langchain模块的作用和概念,以及执行前后顺序。了解一个应用的需要涉及的模块。 |
总结与展望 | 阶段性成果、不足及下一阶段计划调整 | 成果:初步了解langchain模块的作用概念。 不足:model IO 理解错误,术语打磨 调整: |