
RAG(Retrieval-Augmented Generation,检索增强生成)已经成为现代大语言模型(LLM)生态中最核心的技术之一。 无论是企业知识问答、智能客服,还是 Agent 记忆系统,几乎都离不开它的支持。
本文将系统介绍 RAG 的:

RAG 的概念最早出现在 Facebook AI(Meta AI) 2020 年的论文:
❝Lewis et al., “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” (2020)
他们提出:
❝大语言模型(如 GPT)在知识密集型任务上存在瓶颈 —— 模型参数无法覆盖所有外部知识,且训练数据存在时间限制,导致"幻觉(hallucination)"。
于是,研究者设计了一个混合架构:
这就是 Retrieval-Augmented Generation(检索增强生成) 的雏形。
RAG 之所以重要,在于它让模型:
从结构上看,RAG 是这样一个流程:
查询问题 → 检索相关资料 → 将检索内容输入模型 → 模型生成最终回答
可以理解成:
❝“模型写作文前,先去查一查百度 / 知乎 / 公司文档。”
传统搜索靠“关键词匹配”; RAG 则靠“语义相似度”。
要实现语义搜索,文本必须变成模型能理解的“数字表示”:
❝也就是 向量(Vector)。
举个例子:
文本 | 向量表示(简化) |
|---|---|
"猫" | [0.21, 0.98, 0.13] |
"狗" | [0.25, 0.91, 0.10] |
"冰箱" | [0.02, 0.01, 0.95] |
“猫”和“狗”的向量距离很近,因为它们语义相似; “冰箱”距离远,因为语义差别大。
这种向量化的过程由 Embedding 模型 实现。
RAG 的核心流程分为四步:
用户问题
↓
[1] 向量化(Embedding)
↓
[2] 检索(Retrieval)
↓
[3] 增强(Augmentation)
↓
[4] 生成(Generation)
将查询(query)和知识库(documents)转化为高维向量。 常见模型包括:
text-embedding-3-largebge-large在向量空间中寻找"最相似"的内容。 常见实现:FAISS、Milvus、PGVector 等向量数据库。
语义相似度计算方式通常是 cosine similarity(余弦相似度),也可以使用点积(dot product)或欧氏距离(Euclidean distance)。
把检索到的文档拼接进 prompt(提示词)中,例如:
问题:什么是RAG?
检索到的资料:
[RAG是一种结合检索与生成的技术,用于增强LLM知识能力。]
模型输入:
请根据以下资料回答问题:……
LLM 在增强后的上下文中进行推理和生成回答。 这一步通常由 GPT-4、Claude、Gemini 等商业模型,或 LLaMA、Mistral 等开源模型负责。
数据类型 | 向量化方式 | 示例模型 |
|---|---|---|
文本 | 文本嵌入(Text Embedding) | OpenAI Embeddings、BAAI bge、Sentence-BERT |
图片 | 图像嵌入(Image Embedding) | CLIP、BLIP、ViT |
音频 | 声学特征提取 | Whisper、Wav2Vec |
视频 | 帧特征 + 时间序列向量 | CLIP + Temporal Encoder |
结构化数据 | 模型生成描述后嵌入 | “title + summary” 组合 |
这些不同模态的 embedding,可以统一存入一个多模态向量数据库中(如 Milvus、Weaviate)。
技术 | 原理 | 优点 | 缺点 |
|---|---|---|---|
倒排索引(Inverted Index) | 分词 + 精确匹配 | 快、准、可控 | 不理解语义 |
图索引(Graph Index) | 基于关系节点跳转 | 擅长结构化数据 | 构建复杂 |
向量检索(Vector Search) | 语义相似度搜索 | 语义理解强 | 向量计算成本高 |
一句话总结:
❝倒排索引是“按词搜”; 图索引是“按关系搜”; RAG 是“按意思搜”。
机制 | 数据来源 | 生命周期 | 更新方式 |
|---|---|---|---|
LLM Context | Prompt | 一次性 | 随输入变化 |
RAG | 外部向量库 | 持久化 | 动态添加 |
参数记忆(parametric memory) | 模型参数 | 固定 | 需要再训练 |
因此:
❝RAG 是 "外部持久记忆"; 它扩展了 LLM 的上下文,但不改变模型本身。
模块 | 说明 | 常见实现 |
|---|---|---|
向量数据库 | 存储和检索 embedding 向量 | FAISS、Milvus、Weaviate、PGVector |
Embedding 模型 | 文本向量化 | OpenAI、BAAI bge、Cohere、Microsoft MiniLM |
Chunking 模块 | 文档切块 | LangChain TextSplitter |
Retriever | 检索接口层 | LangChain、LlamaIndex |
Augmenter | 拼接 Prompt 的逻辑层 | LangChain、Haystack |
LLM 模型 | 生成回答 | GPT、Claude、Gemini、Mistral |
Evaluation | 检索评估 | RAGAS、TruLens、BLEU/ROUGE |
随着 Agent 概念兴起,RAG 开始朝着"有意识的记忆系统"方向演化。 代表性技术包括 MemGPT、LangGraph Memory 等,以及结合摘要、反思、遗忘机制的长期记忆系统概念。
系统/概念 | 特点 | 实现思路 |
|---|---|---|
MemGPT(Stanford) | 长期 + 短期记忆系统 | 借鉴操作系统虚拟内存管理思想,实现层次化记忆(working memory 与 external memory)之间的动态交换 |
LangGraph Memory | 有状态工作流记忆图 | Graph-based Memory Store |
长期记忆系统(概念) | RAG + 摘要 + 反思 + 遗忘机制 | 这一概念在 MemGPT 等系统中得到了具体实现,同时 LangChain 等框架也提供了构建此类系统的基础组件 |
AutoGen Memory | 多 Agent 共享记忆 | Microsoft AutoGen |
这些系统在 RAG 的基础上加入了:
简而言之:
❝RAG 让模型"能查资料"; 这些记忆系统让模型"能记得事"。
概念 | 功能 | 本质 |
|---|---|---|
RAG | 检索增强生成 | 外部知识接入 |
倒排索引 | 关键词匹配 | 精确检索 |
图索引 | 关系跳转 | 结构检索 |
记忆系统(MemGPT等) | 主动长期记忆 | 智能反思与记忆演化 |
RAG 让大模型具备了外部记忆与知识访问能力; 而 MemGPT、LangGraph Memory 等新一代系统,正让记忆变得主动、可反思、可演化。
未来的智能体(Agent)将不再只是“查知识”, 而是真正地“拥有经验与认知”。