Ch15: Memory 与 RAG 边界——何时检索、何时记忆
Part 6: 进阶专题 前置章节:Ch01: 为什么需要 RAG 后续:返回 导读目录 或进入 AI 记忆赛道 返回目录:README
结论先行:RAG 查的是「别人写进文档的知识」;Memory 存的是「Agent 从对话里学到的经验」。两者在「可沉淀的事实」区域重叠——同一句「部署前必须跑 smoke test」可能既在 Wiki 里,也被 Agent 写进 memdir。重复建设会浪费存储、引发答案冲突;清晰边界才能选对 WeKnora vs DB-Agent-Memory。
一、日常类比
- RAG:公司 Confluence / 产品手册——权威、可版本管理、适合全员共享
- Memory:你笔记本上的踩坑记录——个性化、随对话演化、默认不对外发布
重叠区:笔记本里写的 SOP 与 Wiki 上的 SOP 内容一致,但 更新机制不同——Wiki 改一处全员生效;Memory 可能仍是旧习惯。
二、决策树(RAG 读者版)
Agent 需要信息
│
├─ 来源是外部文档/知识库? ──是──→ RAG(WeKnora / Dify…)
│
├─ 来源是与用户的对话且跨 session 有用?
│ ├─ 个性化偏好 → Memory(User Memory)
│ └─ 可沉淀为团队知识 → Memory 写入 + 考虑同步到 RAG 文档
│
└─ 仅当前会话上下文 → Working Memory(不需 RAG 也不需长期 Memory)
完整 Mermaid 版见 AI 记忆赛道 Memory 与 RAG 边界。
三、系统性对比
| 维度 | RAG | Memory |
|---|---|---|
| 数据来源 | 上传的 PDF/Markdown/网页 | 多轮对话提取 |
| 更新方式 | 重索引 / 增量 chunk | 提取-合并-遗忘 pipeline |
| 权威性 | 文档作者为准 | Agent 推断,可能错 |
| 共享范围 | 知识库级别、多用户 | 通常 per-user / per-agent |
| 典型产品 | WeKnora、RAGFlow | DB-Agent-Memory、mem0 |
| 检索信号 | BM25 + 向量 + 图谱 | 向量 + 时间衰减 + 重要性 |
四、腾讯生态中的分工
犀牛鸟 2026 中两个相关项目:
| 项目 | 赛道 | 角色 |
|---|---|---|
| WeKnora | RAG / 知识库 | 文档摄入、三路检索、Wiki 自维护 |
| DB-Agent-Memory | AI Agent 记忆 | 四层记忆金字塔、npm/TS 生态 |
腾讯记忆生态 描述两者如何互补而非互替。WeKnora 的 Memory 与 RAG 冲突(技术挑战 #10):对话中学到的「用户偏好」与文档记载不一致时,应 以文档为准 还是 以最新对话为准——产品策略问题,尚无统一答案。
五、集成模式(三种)
摘自 Agent 与 RAG 集成:
| 模式 | 架构 | 适用 |
|---|---|---|
| RAG 为主 | 先检索文档,Memory 只补 session 偏好 | 企业知识库问答 |
| Memory 为主 | 长期事实进 Memory,RAG 查大库细节 | 个人助理 |
| 双路融合 | 并行检索 + 优先级规则合并 context | Coding Agent、WeKnora+MCP |
伪代码(双路融合):
def fused_context(query, user_id):
doc_hits = weknora.search(query, top_k=5)
mem_hits = memory.recall(user_id, query, top_k=3)
# 规则示例:文档引用优先;Memory 仅补充「用户偏好」类 slot
return merge_with_priority(doc_hits, mem_hits, rules=MERGE_RULES)
六、对 RAG 学习者的行动建议
| 你的目标 | 建议 |
|---|---|
| 只参赛 WeKnora | 读本章建立边界即可;Memory 细节跳至 AI 记忆导读 Ch06 |
| 做 Agent 全栈 | RAG 导读 Ch01–Ch06 + 记忆导读 Ch04–Ch06 |
| 写 proposal 涉及两项目 | 明确「文档层 vs 对话层」分工,避免「两个都做检索」 |
章末自检
- 用一句话区分 RAG 与 User Memory 的数据来源
- 举一个在 RAG 与 Memory 重叠区的例子,并说明更新机制差异
- 画出「双路融合」模式下 query 如何并行走向 WeKnora 与 Memory
- 说明 WeKnora 技术挑战 #10「冲突」为什么难以用纯算法解决
- 若产品要求「Agent 记住用户上次上传的私有文档摘要」,这属于 RAG 还是 Memory?
延伸阅读
- Memory 与 RAG 边界(记忆赛道)
- AI 记忆导读 Ch06
- Agent 与 RAG 集成
- 腾讯记忆生态
- 技术挑战 — Memory 与 RAG 冲突(#10)