一、LangChain 到底是什么
LangChain 不是“大模型”,也不是“知识库”。
它更像一个LLM 应用开发框架,主要作用是把这些东西串起来:
- 你选哪个模型
- 你给模型什么上下文
- 你要不要接工具
- 你要不要做检索
- 你要不要做 Agent
- 你要不要让它记住上下文
- 你要不要它按固定 JSON 输出
官方现在的定位也很明确:LangChain 提供预置的 agent 架构和各种模型、工具集成;LangGraph 则更偏低层编排,适合需要持久化、人工介入、长流程状态控制的场景。
二、小白先记住的 8 个核心组件
1)Models:模型
这是“脑子”。
官方 Models 页面强调,模型不只是生成文本,现在常见能力还包括tool calling、structured output、多模态、reasoning。而且 LangChain 推荐用统一方式初始化聊天模型,比如init_chat_model,这样后面切模型比较方便。
你现在先这样理解就够了:
- Chat model:最常用,拿来聊天、问答、摘要、调用工具
- Embedding model:把文本变成向量,用于检索
- 有些模型支持工具调用
- 有些模型支持原生结构化输出
一句话:Chat model 负责“想”,Embedding model 负责“找”。
2)Messages:消息
这是“上下文格式”。
官方把 Messages 定义为与模型交互的基本单位,里面包含角色、内容、元数据。也就是说,你不是简单传一个字符串给模型,而是在传一组消息:system、user、assistant。
你可以这样理解:
SystemMessage:告诉它你是谁、该怎么做HumanMessage:用户输入AIMessage:模型回复- 多轮对话,本质上就是消息列表越来越长
一句话:Messages 决定模型“看到了什么历史”。
3)Prompts:提示词
虽然官方现在很多地方直接围绕 Messages 展开,但本质上 prompt 还是很重要。
你可以把 prompt 理解成:给模型的一套输入模板。官方错误文档里也能看出,prompt template 的变量要严格匹配,否则就会报INVALID_PROMPT_INPUT。
小白阶段你先记住 3 件事:
- prompt 不是“花哨文案”,而是输入结构
- system prompt 比 user prompt 更像“总规则”
- 后面做 Agent 时,prompt 会决定它什么时候用工具、输出什么格式、遵循什么角色
一句话:Prompt 决定模型“怎么想、按什么规则想”。
4)Tools:工具
这是 Agent 真正变强的关键。
官方把 Tools 定义成:让 Agent 能获取实时数据、执行代码、查数据库、调用外部 API、对外做动作的能力,本质上是带有清晰输入输出的可调用函数。模型会根据上下文决定是否调用工具,以及传什么参数。
你可以把 tool 理解成:
- 一个 Python 函数
- 但这个函数要能被模型“看懂”
- 模型不是直接自己查天气,而是决定“要不要调用天气函数”
典型工具:
- 搜索工具
- 数据库查询工具
- 文件读取工具
- 计算器工具
- 业务 API 工具
一句话:Tool 决定模型“能做什么”,不再只是会说。
5)Retrieval:检索
这是做 RAG 的基础。
官方 Retrieval 页面直接指出,大模型有两个天然限制:上下文有限、知识静态;检索就是在运行时把外部知识取回来,这正是 RAG 的基础。
在 LangChain 里,检索这一套通常包括:
- Document:文档对象
- Loader:把文件读进来
- Splitter:切块
- Embeddings:向量化
- Vector Store:存向量
- Retriever:按问题取相关片段
官方的语义搜索教程也是按这个顺序讲的,并且明确这些抽象就是为了支撑 RAG 这类“先取数据、再让模型回答”的应用。
一句话:Retrieval 决定模型“去哪里找依据”。
6)Agents:智能体
这是“会自己决定下一步做什么”的执行者。
官方 Agents 页面里,模型、工具、系统提示、内存、结构化输出、流式输出都被放在 Agent 周边;也就是说 Agent 不是一个单独功能,而是把这些能力组合起来的“控制层”。
你可以这样理解:
- 普通链:流程固定,先 A 后 B
- Agent:流程不完全固定,会自己决定调用哪个工具、调几次、什么时候停止
比如用户问:
帮我查订单,再总结异常原因,并发邮件给主管
如果是固定链,你得提前写死步骤。
如果是 Agent,它会自己判断先查库、再分析、再调用发邮件工具。
一句话:Agent 决定模型“下一步该干什么”。
7)Short-term memory:短期记忆
这不是“永久记忆”,而是会话级状态。
官方短期记忆文档说明:LangChain agent 的短期记忆本质上是 graph state 的一部分,可以通过 checkpointer 持久化,按 thread 维度保存,让同一个会话下次还能接着继续。
小白先别把它想复杂:
- 它不是长期知识库
- 它更像“这个对话线程的历史和状态”
- 比如用户前面说过自己的名字、订单号、当前任务进度,后面还能继续用
一句话:短期记忆解决“这轮和上轮别断片”。
8)Structured output:结构化输出
这是工程里特别重要、但新手容易忽略的一层。
官方 Structured Output 页面强调:与其让模型返回一大段自然语言再自己手搓正则,不如直接要求它输出 JSON、Pydantic 模型或 dataclass,这样应用可以直接消费。create_agent还能自动帮你选择 provider-native 或 tool-based 的策略。
比如你要的不是:
“这是一条待办事项,优先级高……”
而是:
{ "task": "给客户回邮件", "priority": "high", "deadline": "2026-04-03" }一句话:结构化输出解决“模型说得漂亮,但程序接不住”的问题。
三、把这些组件串起来,你就懂 LangChain 了
场景 1:普通问答机器人
流程是:
用户问题 → Messages → Model → 回复
这时你只用到:
- Models
- Messages
- Prompt
场景 2:RAG 知识库问答
流程是:
用户问题 → Retriever 找资料 → 把资料塞进 Messages → Model 生成答案
这时你会用到:
- Document / Loader / Splitter
- Embeddings
- Vector Store
- Retriever
- Model
- Prompt
官方 RAG 教程也正是把流程分成两段:Indexing和Retrieval + Generation。
场景 3:智能体
流程变成:
用户问题 → Agent 判断 → 可能调用 Tool → 看结果 → 再决定是否继续调用 → 最终回答
这时你会用到:
- Model
- Messages
- Tools
- Agent
- Short-term memory
- Structured output
场景 4:复杂工作流 / 多智能体 / 可中断流程
这时你开始碰到:
- 状态机
- 条件分支
- 持久化
- 人工审批
- 长流程恢复
- 多 agent 协作
这就是 LangGraph 更擅长的区域。官方明确说它专注于durable execution、human-in-the-loop、memory、stateful workflow。
四、小白最推荐的学习顺序
第 1 阶段:先学最小闭环
目标:让模型跑起来。
你先学:
- 初始化 chat model
- 传单条字符串 prompt
- 传 messages 列表
- 看 AIMessage 返回内容和元数据
你学完这一段,要能回答 3 个问题:
- 模型怎么初始化
- 普通字符串和 messages 有什么区别
- 为什么多轮对话本质是消息堆叠
第 2 阶段:学工具
目标:让模型不只是“会说”。
你要学:
- 什么是 tool
- 如何把 Python 函数包装成工具
- 模型什么时候会触发工具
- 工具结果怎么回到上下文
官方 Tools 页面和 Agents 页面都强调,tool calling 是现代 agent 的核心基础。
这一阶段你至少做两个小练习:
- 计算器工具
- 天气 / 搜索 / 本地函数查询工具
第 3 阶段:学检索和 RAG
目标:做出“能回答文档问题”的系统。
你要学:
- Document
- Loader
- Splitter
- Embeddings
- Vector Store
- Retriever
- RAG chain / RAG agent
官方的语义搜索教程和 RAG 教程就是最适合你的主线。前者讲检索组件,后者讲完整 RAG。
这一阶段是 LangChain 的第一道门槛,也是最值得下功夫的地方。
第 4 阶段:学 Agent
目标:做出“能自己决定是否查工具”的系统。
你要学:
create_agent- tools + system prompt
- 短期记忆
- 结构化输出
- 中间步骤观察
- 错误处理和限制
官方 Agents 页面把这些都列成核心能力;另外内置 middleware 还能做重试、人工介入、上下文裁剪、摘要压缩、工具选择等,这些都很适合后期增强。
第 5 阶段:学 LangGraph
目标:做真正生产味道的 Agent 系统。
什么时候学?
- 你需要多步骤状态流转
- 你需要中断等待人工确认
- 你需要任务恢复
- 你需要多 Agent 编排
- 你需要复杂的分支控制
官方把 LangGraph 定位成低层 agent orchestration 框架,适合长运行、带状态、可恢复的流程。
五、LangChain 小白最容易混淆的几个概念
1)Chain 和 Agent 的区别
Chain 是固定流程。
你 заранее写好第一步、第二步、第三步。
Agent 是动态流程。
它会自己决定要不要用工具、先用哪个工具、是否继续。
所以:
- 稳定简单任务:Chain 更合适
- 开放任务、工具较多:Agent 更合适
官方哲学页也提到,“chains” 本来就是 LangChain 的核心思路之一,比如 RAG 就是先检索再生成的预定步骤。
2)Retriever 和 Tool 的区别
很多人会混。
- Retriever:专门用来“找相关文本”
- Tool:广义外部能力,能查天气、算数、发请求、执行代码、调用数据库
所以可以理解为:
Retriever 更像一种专用工具,但语义上它专门服务 RAG。
3)Memory 和 Knowledge Base 的区别
- Memory:记住对话中的状态和历史
- Knowledge Base:存外部资料,回答时拿来查
一个解决“你刚刚说过什么”,一个解决“系统外部资料里写了什么”。
官方短期记忆文档说得很明确:它是线程级状态;而 Retrieval 文档讨论的是查询时获取外部知识。
4)LangChain 和 LangGraph 的区别
- LangChain:适合开始做 agent 和通用应用
- LangGraph:适合复杂编排、状态流、可恢复执行
官方甚至直接建议:高级需求才上 LangGraph;如果只是开始做 agent,可以先用 LangChain 的 agents。
六、你应该怎么练,才不会学散
我给你一条最稳的实战路线。
第 1 周:基础组件周
只做这些:
- 模型调用
- messages
- prompt
- tool
- structured output
要求不高,但每个都写一个最小 demo。
学完标准:
- 能做一个“提取联系人信息并输出 JSON”的小工具
- 能做一个“带计算器工具”的问答 demo
第 2 周:RAG 周
只做这些:
- 读 PDF / txt / md
- 切块
- 向量化
- 存进向量库
- 检索
- 生成答案
- 返回引用来源
学完标准:
- 能做一个“校园制度问答”
- 能做一个“产品说明书问答”
第 3 周:Agent 周
只做这些:
create_agent- 给 agent 挂 2 到 4 个工具
- 加短期记忆
- 让 agent 输出结构化结果
- 观察工具调用过程
学完标准:
- 能做一个“个人助理型 Agent”
- 能处理多轮上下文
- 能根据问题选择不同工具
第 4 周:中型项目周
这时候别再刷零散 API 了,直接上项目。
因为只有项目才能把组件真正串起来。
七、一个小白能照着抄的 LangChain 知识框架
你可以直接把下面这套当“脑图”。
LangChain 学习主线 1. 基础调用 - Chat Model - Messages - Prompt 2. 模型增强 - Structured Output - Streaming - Tool Calling 3. RAG - Document - Loader - Splitter - Embeddings - Vector Store - Retriever - RAG Chain - RAG Agent 4. Agent - create_agent - Tools - System Prompt - Short-term Memory - Middleware - Error Handling 5. 复杂编排 - LangGraph - State - Checkpoint - Human-in-the-loop - Multi-agent这套顺序和官方当前文档结构基本一致:先核心组件,再检索、再 agent、再高级能力和多智能体。
八、两个中型项目
下面给你两个“够练手、也够像真实项目”的题目。
项目一:企业制度 / 校园资料 RAG 问答助手
项目目标
上传一批 PDF、Word、Markdown 文档,让系统回答:
- 公司年假制度是什么
- 设备借用流程是什么
- 新生奖学金评定条件有哪些
- 某份制度出处在哪一页
为什么适合你
因为这个项目会把 LangChain 的Retrieval 全家桶全练到:
- Loader
- Splitter
- Embeddings
- Vector Store
- Retriever
- RAG chain / RAG agent
- 来源引用
官方 RAG 教程本身就是围绕“把外部文本拿回来回答问题”展开的,且明确分成索引和检索生成两部分。
核心功能
- 批量导入文档
- 自动切块
- 建立向量索引
- 用户提问
- 检索相关片段
- 生成答案
- 返回引用来源
- 记录问答日志
技术结构
- LangChain
- 向量库:Chroma / FAISS
- Embedding 模型
- Chat model
- 前端:Streamlit 或 Gradio
- 可选:LangSmith 做链路观察
官方也强调 LangSmith 很适合观察复杂多步骤应用的执行过程。
你会练到的能力
- 文档理解
- RAG 全流程
- chunk 参数调优
- 检索质量调优
- 引用来源展示
- prompt 约束回答范围
进阶增强
- 混合检索
- 重排 rerank
- 问题改写
- 多轮会话记忆
- 用户权限隔离
- 敏感词过滤
简历表述参考
企业知识库问答系统(LangChain + Vector DB)
基于 LangChain 搭建企业文档问答系统,实现文档加载、切块、向量检索、答案生成与来源引用展示,支持 PDF/Markdown 等多格式资料问答,提升制度查询与资料检索效率。
项目二:多工具个人事务智能体
项目目标
做一个“数字助理”型 Agent,能完成:
- 查询天气
- 查询待办
- 生成日报
- 查询知识库
- 输出结构化任务清单
- 记住当前会话上下文
为什么适合你
因为这个项目会把 LangChain 的Agent 主线全练到:
- Model
- Messages
- Tools
- Agent
- Short-term memory
- Structured output
- Middleware(可选)
官方 Agents 页面、短期记忆页、结构化输出页正好覆盖这几个核心点。
典型交互
用户说:
帮我看看今天要做什么,再根据天气和我的会议安排,生成一个简洁的日程建议,最后输出成 JSON。
Agent 可能会这样干:
- 读取待办工具
- 读取天气工具
- 读取日历工具
- 综合分析
- 输出结构化结果
这就是 Agent 和普通链的区别:
它不是死流程,而是按问题动态选择工具。
核心功能
- 天气工具
- 待办工具
- 日历工具
- 本地知识查询工具
- 会话级记忆
- 结构化输出
- 工具失败重试
- 可视化日志
技术结构
- LangChain
create_agent - 自定义工具函数
- checkpointer 做短期记忆
- response schema 做 JSON 输出
- 可选中间件:重试、上下文裁剪、人工审批
官方内置 middleware 里已经有工具重试、模型重试、上下文编辑、摘要压缩、人工介入、工具筛选等能力。
你会练到的能力
- 工具设计
- Agent 系统提示设计
- 会话状态管理
- 输出结构约束
- 多工具协同
- 失败处理
进阶增强
- 任务拆解待办列表
- 子智能体
- 人工确认后执行
- 加上企业知识库作为一个工具
- 升级到 LangGraph 做状态流转
官方多智能体文档里有 subagents、handoffs、skills、router、custom workflow 等模式,后面都能自然升级上去。
简历表述参考
多工具事务智能体(LangChain Agent)
基于 LangChain 构建多工具智能助理,集成天气、待办、日历与知识查询工具,实现多轮对话、任务整合、结构化输出与会话级短期记忆,能够根据用户需求动态选择工具完成复合任务。
九、最后给你一个最实用的建议
学 LangChain,不要按“函数清单”学,要按“问题清单”学。
你每学一个组件,都问自己一句:
- Models 解决什么问题?
- Messages 解决什么问题?
- Tools 解决什么问题?
- Retrieval 解决什么问题?
- Agent 解决什么问题?
- Memory 解决什么问题?
- Structured output 解决什么问题?
只要你始终围着“它解决什么实际问题”来学,LangChain 就不会乱。
而且这和官方当前文档组织方式也是一致的:先核心组件,再面向场景的 RAG、SQL agent、多智能体和更高级编排。
你这条路最推荐的顺序就是:
先学: 模型 → 消息 → 工具 → 检索 → RAG 再学: Agent → 短期记忆 → 结构化输出 → 中间件 最后学: LangGraph → 多智能体 → 生产级编排