| 问题类型 | 说明 | 解决方案 |
| 版本混乱 | 同一主题多版本,无人知道哪份生效 | 分层存储:制度类/流程类/FAQ类/产品类/项目类/聊天记录类 |
| 内容质量差 | PDF扫描识别差、表格乱、会议纪要混在一起 | 定主次:正式制度 > 群聊截图/会议纪要 |
| 元数据缺失 | 不知道谁写的、何时生效、适用范围 | 补元数据:作者、生效时间、适用部门、最新版本标记 |
💡 关键洞察:RAG最怕的不是"没有资料",而是"资料很多但没有治理"。资料混乱会让系统一本正经地答错。
权限在RAG中是底座能力,而非附属能力。一个能上线的RAG至少要做到:
| 能力 | 说明 |
| 检索前过滤 | 先判断"这个人能看哪些文档",再去检索 |
| 片段级控制 | 同一文档不同段落可有不同权限 |
| 答案可追溯 | 回答要能明确引用来源,来源是否在用户权限范围内 |
⚠️ 风险警示:没有权限体系的RAG,演示价值越高,上线风险越大!
用户提问往往不是标准表达,可能省略背景、混用简称、说口语。解决方案:
认知科学视角的三种记忆类型:
| 记忆类型 | 内容性质 | 更新频率 | 存储策略 | 检索方式 |
| 语义记忆 | 通用知识(产品条款、政策规则) | 低 | 共享向量库 | 语义相似度检索 |
| 情节记忆 | 具体事件(用户偏好、历史咨询 | 低 | 按用户ID隔离 | 先过滤用户再匹配 |
| 程序性记忆 | 操作流程/行为规则 | 修改时更新 | 系统Prompt | 直接注 |
短期与长期记忆的双层架构:一个成熟的Agent记忆系统会构建双层架构。
短期记忆:即当前对话的上下文窗口,使用滑动窗口机制管理,负责处理当前会话的连贯性。
长期记忆:将重要信息从短期转入长期存储,并通过提取(Extract)→ 存储(Store)→ 检索(Retrieve)→ 更新/删除(Update/Delete) 的闭环流程进行管理,支持跨会话的用户识别与偏好追踪。
记忆更新的核心挑战:如何处理信息的矛盾与过时,是记忆管理的核心难题。例如,当用户先说自己有两个孩子后又改正为三个孩子时,系统需要有能力判断是覆盖更新还是保留历史,这比简单的追加或检索要复杂得多。
记忆管理的核心问题:
💡 关键点:"要知道怎么查记忆,还要知道怎么管记忆。记忆管理才是Agent可用不可用的分水岭。"
为什么RAG需要向量数据库?如果说知识是RAG的血液,那么向量数据库就是驱动血液高效流动的心脏。
| 对比项 | 暴力搜索 | ANN近似检索 |
| 时间复杂度 | O(n) | 图索引≈O(log n) |
| 100万向量延迟 | 秒级 | 毫秒级 |
| 召回率 | 100% | 95-99% |
| 速度提升 | 基准 | 100-200倍 |
主流向量索引算法对比:
| 算法 | 原理 | 优点 | 缺点 |
| HNSW | 图导航,从小世界网络找最近邻 | 高召回率、低延迟 | 内存占用大、删除成本高 |
| IVFFlat | 聚类划分+倒排索引 | 内存友好、支持批量删除 | 需要重新训练索引 |
| IVFPQ | IVF + 乘积量化 | 内存占用极小 | 召回率有损失 |
生产级必备能力:
┌─────────────────────────────────────────────────────────────────┐
│ RAG 系统设计金字塔 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [生成层] │
│ 模型只是"组织语言的人" │
│ ↑ │
│ [召回层] │
│ 多路召回 | 查询改写 | 多跳检索 │
│ ↑ │
│ [权限层] │
│ 检索前过滤 | 片段级控制 | 答案可追溯 │
│ ↑ │
│ [治理层] │
│ 分层存储 | 主次定级 | 元数据标注 | 版本管理 │
│ ↑ │
│ [基础设施层] │
│ 向量数据库 | ANN索引 | 混合检索 | 多租户隔离 │
│ │
└─────────────────────────────────────────────────────────────────┘
RAG 难落效果不好,很多时候不是"脑子不够聪明",而是"资料没整理好、能看什么没管清、该拿什么没拿对"。
构建一个企业级的RAG系统,需要一种超越“模型中心论”的系统性思路。它更像一个集知识治理、记忆管理、权限管控和高效检索于一体的复杂服务系统。
避开常见误区:
不要将RAG简单等同于“数据 → 检索 → 模型”的线性流程。
不要将权限、数据治理等视为后期可选的“附加项”,它们是系统的“地基”。
需要学会管理Agent的“记忆”,而不仅仅是查询它。
实践路径:一个科学的构建路径应该是自下而上的:
数据层:从治理语料、定义元数据和设计权限体系开始。
索引层:选择合适的向量数据库和索引算法(如HNSW),打造高性能检索。
记忆层:根据业务场景设计多类型、双时效的记忆管理体系。
应用层:在稳固的基础上,再集成和优化大模型,实现上层应用。