第 3 章 · 实验教程:用户记忆和知识库 本章对应正文:第 3 章 · 用户记忆和知识库 核心命题:让 Agent 跨会话记住用户、接入外部知识——用户记忆、RAG、结构化索引、知识图谱,把"记忆"做成可工程化的系统。 文本窗口再大也不是记忆。这一章回答两个工程问题:怎么让 Agent 在多次对话之间记住用户的偏好与历史(用户记忆),以及怎么让它在推理时接入它训练时没见过的知识(知识库与 RAG)。从最朴素的"对话历史存库检索",一路走到上下文感知检索、结构化索引、知识图谱,乃至 Agent 主动归纳数据中的决策逻辑。
本章对应正文:第 3 章 · 用户记忆和知识库
核心命题:让 Agent 跨会话记住用户、接入外部知识——用户记忆、RAG、结构化索引、知识图谱,把"记忆"做成可工程化的系统。
文本窗口再大也不是记忆。这一章回答两个工程问题:怎么让 Agent 在多次对话之间记住用户的偏好与历史(用户记忆),以及怎么让它在推理时接入它训练时没见过的知识(知识库与 RAG)。从最朴素的"对话历史存库检索",一路走到上下文感知检索、结构化索引、知识图谱,乃至 Agent 主动归纳数据中的决策逻辑。
本章 14 个实验按"用户记忆 → 检索单元 → 检索流水线 → 结构化索引 → Agentic RAG"层层递进,既有从零实现的 BM25 引擎,也有对照 mem0/Memobase 两大开源框架的实现。建议先读正文理清"记忆与检索的分层",再按主题挑实验:做用户记忆从 user-memory 起步,做检索从 dense/sparse-embedding 入手。
| 实验 | 类型 | 难度 | 说明 |
|---|---|---|---|
| user-memory | ✅ | ★★ | 对话与记忆处理分离的长期用户记忆系统,支持从笔记到高级 JSON 卡片的多种记忆模式 |
| mem0 | ✅ | ★★ | 用 Mem0 框架 + Kimi K3 实现一版用户记忆,在 LOCOMO 长上下文基准上评估 |
| memobase | ✅ | ★★ | 用 Memobase 框架实现对照版用户记忆,演示 Profile 结构化属性 + Event 时间线划分 |
| user-memory-evaluation | ✅ | ★★ | 三层递进复杂度的评测框架,检验 Agent 存储/检索/利用用户信息的准确性 |
| dense-embedding | ✅ | ★ | 基于 BGE-M3 的向量相似度检索服务,对比 ANNOY(树)与 HNSW(图)两种 ANN 算法 |
| sparse-embedding | ✅ | ★ | 从零实现基于 BM25 的稀疏向量检索引擎,倒排索引 + 高级分词,可视化内部机制 |
| retrieval-pipeline | ✅ | ★★ | 稠密 + 稀疏 + 神经重排序的完整混合检索流水线,用测试用例展示互补效果 |
| multimodal-agent | ✅ | ★★ | 对比原生多模态、提取为文本、工具化分析三种策略在保真度/成本/灵活性上的权衡 |
| structured-index | ✅ | ★★★ | 实现并对比 RAPTOR(递归抽象树)与 GraphRAG(知识图谱)两种结构化索引 |
| contextual-retrieval | ✅ | ★★ | 实现 Anthropic 的上下文感知检索,为分块生成前缀摘要,失败率降低 49–67% |
| agentic-rag | ✅ | ★★ | 对比 Non-Agentic 与 Agentic RAG,展示 ReAct 主导的迭代检索在司法问答上的优势 |
| agentic-rag-for-user-memory | ✅ | ★★ | 用 Agentic RAG 管理用户对话历史,长对话分块 + 混合搜索 + 工具调用实现跨会话记忆 |
| contextual-retrieval-for-user-memory | ✅ | ★★★ | 结合 Advanced JSON Cards 与上下文感知 RAG,形成双层记忆结构实现主动服务 |
| structured-knowledge-extraction | ✅ | ★★★ | 以司法判例跑通「因子发现 → 聚类原型 → 对话式建议」四段流水线,让知识库不只是检索仓库 |
| 标记 | 含义 |
|---|---|
| ✅ | 可独立运行:自带完整代码,配好 API Key 即可跑 |
| 📖 | 复现指南:依赖需自行 git clone 的外部仓库 |
| 🚧 | 设计文档:仅含架构方案,可运行代码仍在完善 |
| ★ ~ ★★★ | 从易到难,★ 为入门级、★★★ 为进阶挑战 |
← 返回总目录 · 📖 读本章正文 · 📑 本章索引