RAG(检索增强生成) 上下文与记忆
别名:
检索增强
先检索相关知识、再让模型基于它们生成的范式,用于给没有长期记忆的模型补充外部事实。本章把它拆成最小实现:注入式 embedding + 余弦相似度 + 暴力检索。见[第 11 章](/chapters/11-memory-retrieval/)。
它是什么
RAG(Retrieval-Augmented Generation,检索增强生成)是一种给模型补外部知识的范式:先用检索从知识库中召回与问题相关的片段,再把它们拼进 prompt,最后让模型基于这些上下文生成答案。它解决的是「模型只学过训练截止日之前的数据、且不知道你的私有资料」这一根本局限——不改权重、不重训练,只在推理时把「该知道的」喂给模型。
与长上下文的区别
把整个知识库塞进 prompt 是 RAG 的一种退化形态:资料总量小于上下文窗口时,「整库注入」确实可行且更简单;一旦知识库变大,就必须走「先检索、再注入」的两段式——这正是 RAG 存在的意义。所以 RAG 的本质是用检索来替代无限大的上下文。
在本教程的位置
第 11 章把它拆成最小实现:注入式 embedding + 余弦相似度 + 暴力检索(embed 查询 → 逐条比对 → 阈值过滤 → top-k 排序),不装向量库。这一步做完,RAG 的骨架就在手上了:先检索、再注入、后生成的三段式,与长期记忆(long-term-memory)共用同一套召回机制。
小结
一句话:RAG = 外部知识 × 检索 × 生成。它把「模型不知道」变成「检索告诉它」,是记忆系统、企业知识问答等一切「给 Agent 补知识」方案的地基。