Skip to main content
大型语言模型 (LLM) 功能强大,但它们有两个关键限制:
  • 有限的上下文 — 它们无法一次摄取整个语料库。
  • 静态知识 — 它们的训练数据冻结在某个时间点。
检索通过在查询时获取相关的外部知识来解决这些问题。这是 检索增强生成 (RAG) 的基础:利用特定上下文的信息增强 LLM 的回答。

构建知识库

知识库 是检索过程中使用的文档或结构化数据的存储库。 如果您需要自定义知识库,可以使用 LangChain 的文档加载器和向量存储从您自己的数据构建一个。
如果您已经有知识库(例如 SQL 数据库、CRM 或内部文档系统),您需要重建它。您可以:
  • 将其作为 Agentic RAG 中代理的 工具 进行连接。
  • 查询它并将检索到的内容作为上下文提供给 LLM (2-Step RAG)
查看以下教程以构建可搜索的知识库和最小的 RAG 工作流:

教程:语义搜索

了解如何使用 LangChain 的文档加载器、嵌入和向量存储从您自己的数据创建可搜索的知识库。 在本教程中,您将构建一个基于 PDF 的搜索引擎,实现与查询相关的段落检索。您还将在此引擎之上实现一个最小的 RAG 工作流,以查看如何将外部知识集成到 LLM 推理中。

从检索到 RAG

检索允许 LLM 在运行时访问相关上下文。但大多数现实世界的应用程序更进一步:它们 将检索与生成集成 以产生有根据的、上下文感知的答案。 这是 检索增强生成 (RAG) 的核心思想。检索管道成为结合搜索与生成的更广泛系统的基础。

检索管道

典型的检索工作流如下所示: 每个组件都是模块化的:您可以交换加载器、分割器、嵌入或向量存储,而无需重写应用程序的逻辑。

构建块

RAG 架构

根据您系统的需求,RAG 可以以多种方式实现。我们在下面的部分中概述每种类型。
架构描述控制灵活性延迟示例用例
2-Step RAG检索总是在生成之前发生。简单且可预测✅ 高❌ 低⚡ 快常见问题解答,文档机器人
Agentic RAGLLM 驱动的代理在推理过程中决定 何时 以及 如何 进行检索❌ 低✅ 高⏳ 可变访问多种工具的研究助理
Hybrid结合两种方法的特点,并增加验证步骤⚖️ 中等⚖️ 中等⏳ 可变具有质量验证的特定领域问答
延迟:在 2-Step RAG 中,延迟通常更 可预测,因为 LLM 调用的最大次数是已知且有上限的。这种可预测性假设 LLM 推理时间是主要因素。然而,现实世界的延迟也可能受到检索步骤性能的影响——例如 API 响应时间、网络延迟或数据库查询——这可能会因使用的工具和基础设施而异。

2-step RAG

2-Step RAG 中,检索步骤总是先于生成步骤执行。这种架构简单明了且可预测,适用于许多应用程序,其中相关文档的检索是生成答案的明确先决条件。

教程:检索增强生成 (RAG)

了解如何构建一个能够使用检索增强生成根据您的数据回答问题的问答聊天机器人。 本教程介绍了两种方法:
  • RAG 代理,使用灵活的工具运行搜索——非常适合通用用途。
  • 2-step RAG 链,每个查询仅需一次 LLM 调用——对于更简单的任务快速且高效。

Agentic RAG

Agentic 检索增强生成 (RAG) 将检索增强生成的优势与基于代理的推理相结合。代理(由 LLM 驱动)不是在回答之前检索文档,而是逐步推理并决定在交互过程中 何时 以及 如何 检索信息。
代理启用 RAG 行为唯一需要的是访问一个或多个可以获取外部知识的 工具 — 例如文档加载器、Web API 或数据库查询。
import { tool, createAgent } from "langchain";

const fetchUrl = tool(
    (url: string) => {
        return `Fetched content from ${url}`;
    },
    { name: "fetch_url", description: "Fetch text content from a URL" }
);

const agent = createAgent({
    model: "claude-sonnet-4-0",
    tools: [fetchUrl],
    systemPrompt,
});

教程:检索增强生成 (RAG)

了解如何构建一个能够使用检索增强生成根据您的数据回答问题的问答聊天机器人。 本教程介绍了两种方法:
  • RAG 代理,使用灵活的工具运行搜索——非常适合通用用途。
  • 2-step RAG 链,每个查询仅需一次 LLM 调用——对于更简单的任务快速且高效。

Hybrid RAG

Hybrid RAG 结合了 2-Step 和 Agentic RAG 的特点。它引入了中间步骤,例如查询预处理、检索验证和生成后检查。这些系统比固定管道提供更大的灵活性,同时保持对执行的一定控制。 典型组件包括:
  • 查询增强:修改输入问题以提高检索质量。这可能涉及重写不清楚的查询、生成多种变体或使用附加上下文扩展查询。
  • 检索验证:评估检索到的文档是否相关且充足。如果不足,系统可能会改进查询并再次检索。
  • 答案验证:检查生成的答案的准确性、完整性以及与源内容的一致性。如果需要,系统可以重新生成或修改答案。
该架构通常支持这些步骤之间的多次迭代: 这种架构适用于:
  • 具有模棱两可或未充分指定查询的应用程序
  • 需要验证或质量控制步骤的系统
  • 涉及多个来源或迭代改进的工作流

教程:具有自我修正功能的 Agentic RAG

一个 Hybrid RAG 的示例,它将代理推理与检索和自我修正相结合。