LangChain实战36讲:从RAG到AI Agent的完整学习路线
2026/9/1 12:10:31 网站建设 项目流程

LangChain 是目前学习 RAG 和 AI Agent 绕不开的框架。最近看到一套 LangChain 实战 36 讲的学习路线,标题标签很直接:B站最强AI Agent教程。我不评价这个“最强”能不能成立,单看内容,它确实把从 0 到 1 构建 RAG 和智能代理这条链路拆成了 36 个可练习的小关卡。对于想亲手搭建知识库问答系统或智能代理的人来说,这套路线真正有价值的,不是某一个炫酷功能,而是“先跑通一条完整链路,再逐步加能力”的学习顺序。下面我按自己实际跑项目的经验,把链路里最重要的知识点、参数取舍和常见坑点拆一遍。

1. 学 LangChain 之前,先搞清楚 RAG 和 Agent 到底解决什么问题

1.1 RAG 不是向量数据库,是“检索+生成”的组合链路

很多人第一次接触 RAG,以为装一个向量数据库就完成了知识库。这个理解偏差很大。RAG 的全称是 Retrieval-Augmented Generation,翻译过来是“检索增强生成”。它的核心不是“存”,而是“先检索,再生成”。

一条标准的 RAG 链路由多个独立环节组成:文档加载、文本拆分、Embedding 向量化、向量存储、相似度检索、组装 Prompt、调用大模型生成答案。任何一个环节出问题,最终答案都会受影响。比如文档加载时 PDF 扫出来的是一张图片,后面直接跳到向量化,检索结果一定是乱的。再比如文本拆分时把一句话从中间切断,检索到的片段可能只有半句话,模型再怎么生成也补不回来。

所以学习 RAG 的关键,不是把某个向量库的 API 背熟,而是建立“链路思维”。每次回答变差,先判断是哪一段出了问题,而不是一上来就换模型。我在调试知识库问题时,最重要的原则是:把整条链路拆成独立环节,先看数据,再看检索,最后才看生成。

1.2 Agent 不是聊天机器人,是有工具调用能力的决策循环

Agent 这个词现在被用得很泛。很多人以为接了大模型 API 就是 Agent,其实不是。普通聊天机器人是“问题进来,答案出去”,模型只需要生成文本。而 Agent 的核心是多了一个决策循环:模型根据用户问题判断需要做什么,决定是否调用工具,把工具返回的结果放进上下文,再判断是否需要继续调用其他工具,最后生成回答。

这个循环里最关键的是“工具”。工具是 Agent 对外部世界的操作接口,可以是一个查询函数、一个 API、一个数据库操作,也可以是一段脚本。模型本身不具备实时数据能力,但它可以通过工具获得数据。

因此,在入门 Agent 时,我建议先不要学太复杂的概念,先做一个最简单的人工循环:写一个工具函数,让模型决定是否调用它,观察模型怎么选择参数、怎么处理返回值。这一步跑通之后,再考虑用框架自动完成这些循环。

1.3 为什么 LangChain 适合新手,又为什么容易劝退

LangChain 的最大价值是把 RAG 和 Agent 里常用的组件都抽象成了统一接口。文档加载有 Loader,文本拆分有 Splitter,向量存储有 VectorStore,模型调用有 ChatModel,Agent 有 Tool 和 AgentExecutor。新手不需要从零实现一个拆分器,也不需要关心不同向量库之间的 API 差异,拼积木一样就能搭出流水线。

但这也是它容易劝退的地方。抽象层多,意味着报错信息非常长,而且很多报错并不是真正的问题源。比如一个 ModuleNotFoundError,原因可能只是 langchain-community 没有安装;一个返回空结果的问题,可能不是模型不行,而是 Prompt 里没有把检索结果拼接进去。初学者很容易被这些外部错误干扰,误以为框架很难。

我的建议是:不要试图第一次就把所有概念弄懂。先跑通一个最小闭环,哪怕只是“加载一个文本文件,问一个简单问题”,然后再逐步加入向量检索、工具调用、记忆等能力。每加一个能力,就验证一次输出,这样排错范围会小很多。

2. 环境准备和 LangChain 版本判断:别让第一步卡住

2.1 Python 环境、虚拟环境和依赖安装

LangChain 是一个 Python 生态项目,第一步是准备 Python 环境。我建议使用 Python 3.10 或更高版本,因为新版本对类型标注和异步支持更好。实际项目里不建议直接使用系统 Python,最好用 venv 或 conda 隔离一个虚拟环境,避免和别的项目相互污染依赖版本。

安装 LangChain 时要注意,新版已经拆成了多个包。常见的有 langchain、langchain-community、langchain-openai、langchain-core 等。只执行 pip install langchain 并不会把所有集成包都装好。正确做法是根据自己实际用到的功能按需安装。

python -m venv .venv source .venv/bin/activate pip install langchain langchain-community langchain-openai

如果要用本地向量库和文档加载器,还要额外装对应的依赖。Chroma、FAISS、PyPDF 等都属于第三方集成,很多需要单独安装。安装完成后,先跑一个最简单的导入测试,确认每个包都能正常 import,再进入下一步。

2.2 LangChain 版本差异与 OpenAI/Ollama 接口选择

LangChain 演进速度很快,早期版本和当前稳定版的类路径变化非常大。网上很多教程拿到现在跑会直接报 ModuleNotFoundError,原因就是把 langchain.llms.OpenAI 当成了标准路径,而这个类早就挪到 langchain_openai 包下面了。

遇到这种情况,不要急着怀疑教程,也不要急着折腾模型。先确认三件事:

  • Python 是多少版本。
  • LangChain 相关包是什么版本。
  • 教程里的 import 路径是不是当前包支持路径。

接口方面,我推荐优先使用 OpenAI 兼容接口。现在很多模型服务都提供 OpenAI 风格接口,参数保持一致,这样切换模型时只需要改 base_url 和 model_name。配置方式一般是环境变量:

export OPENAI_API_KEY="your key" export OPENAI_BASE_URL="https://api.example.com/v1"

Ollama 本地模型也提供 OpenAI 兼容端点。启动 ollama serve 后,可以把 base_url 指到 http://localhost:11434/v1,用同样的 ChatOpenAI 方式调用本地模型。这个组合对学习阶段非常友好:不用申请 key,数据留在本机,还能实际感受本地模型和云端模型的差异。

2.3 本地模型和 API 模型怎么选

学习阶段,API 模型更省心,因为不需要关注显存、内存和模型下载,调用就能看到结果。缺点是可能涉及费用和网络问题,不过现在很多平台有免费额度,用于个人学习足够。

本地模型适合隐私要求高或网络不稳定的场景,但代价是硬件门槛。模型体积越大,占用显存越高,推理速度越慢。如果你的显存只有 8GB,优先选择量化后的小参数模型;如果只有 CPU,能跑但速度会比较慢。低配置能跑通一次演示,不代表适合做批量导出或生产服务。批量任务对显存和内存的稳定占用要求远高于单条测试。

我的建议是两条腿走路:先用 API 模型跑通整个流程,理解 RAG 和 Agent 的链路;再换成本地模型重新跑一遍,体会资源限制对参数和并发的约束。两种都试过之后,你会知道很多“不生效”是模型问题还是链路问题。

2.4 最小可运行示例:跑通一个 Chain

环境准备好之后,第一件事不是直接上向量库,而是写一个最小 Chain。这里不需要复杂功能,只验证“模型能不能调用”。

from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate llm = ChatOpenAI( model="你的模型名", temperature=0 ) prompt = ChatPromptTemplate.from_template( "用一句话解释{concept}" ) chain = prompt | llm result = chain.invoke({"concept": "RAG"}) print(result)

这个例子的判断标准只有一个:能正常输出中文结果。如果这一步都不行,先检查 API Key、

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询