第三章 用户记忆和知识库
2026/9/24 17:47:23 网站建设 项目流程

一、用户记忆与知识库

一句话理解:

用户记忆和知识库都是Agent的外部持久化知识,用于突破单次会话和模型训练数据的限制。

1.1、用户记忆

用户记忆面相单个用户,保存具有长期价值的个性化信息:

  • 用户偏好与习惯
  • 身份与背景信息
  • 历史决策与长期目标
  • 已确认的事实和约束
  • 跨会话任务进度

作用是让Agent在不同会话中保持连续性和个性化。

1.2、知识库

知识库面向多个用户或整个组织,保存可共享的领域知识:

  • 企业制度与业务流程
  • 产品、技术和操作文档
  • 法规、标准与行业资料
  • 经过整理的结构化事实
  • 可供检索的历史案例

作用是为Agent提供训练数据之外的是有、专业和可更新知识。

1.3、两者的区别

维度用户记忆知识库
服务范围单个用户团队、组织或所有用户
主要内容偏好、经历、目标和状态文档、规则、事实和领域知识
权限要求强用户隔离按组织和角色授权
更新来源用户交互与明确确认文档、业务系统和人工维护

1.4、工作方式

用户记忆和知识库通常不会直接改变模型参数,而是在需要时检索相关内容并注入当前上下文:

持久化存储 → 相关信息检索 → 可信性与权限过滤 → 注入上下文 → 模型决策

两者可以共用向量检索、结构化索引、摘要压缩和RAG等技术。

1.5、核心问题

  • 哪些信息值得长期保存
  • 如何准确检索相关内容
  • 如何处理重复、冲突和过期信息
  • 如何验证信息来源与可信度
  • 如何保护隐私并实施访问控制
  • 如何允许用户查看、修改和删除记忆

注意:

记忆系统不是“保存的越多越好”。错误、过期或越权的记忆可能比没有记忆更危险。

核心结论:

用户记忆让Agent持续理解“你是谁”,知识库让Agent准确掌握“这个领域知道什么”;两者都必须经过检索才能进入当前上下文并影响决策。

二、用户记忆系统

一句话理解:

用户记忆系统从历史交互中提取对未来有价值的信息,并可更新、可检索的形式跨会话保存。

它不是保存全部对话,而是完成一个持续循环:

交互记录 → 记忆提取 → 审查与存储 → 相关记忆检索 → 注入当前上下文

2.1、记忆写入原则

值得长期保存的信息应满足:

  • 有长期价值:未来任务仍可能使用
  • 经过抽象:从一次行为中提炼稳定事实或偏好
  • 结构清晰:包含主题、属性、时间和来源
  • 可以更新:新信息能够修正旧信息
  • 获得授权:敏感信息需用户同意并限制用途

临时任务细节、模型推测和未经确认的信息,不应直接写入长期记忆。

2.2、记忆层次

  • 轨迹:当前会话的原始事件记录,用于追溯和审计
  • 工作记忆:从轨迹和长期记忆中筛选出的当前任务信息
  • 长期记忆:跨会话保存的用户事实、偏好和经历
  • 业务状态:由系统维护的确定性任务阶段

其中,轨迹是原始证据,长期记忆是从证据中提炼出的派生信息。

2.3、记忆内容

长期记忆可以分为:

  • 情景记忆:用户曾经发生过的具体事件
  • 语义记忆:用户相对稳定的事实和偏好
  • 程序记忆:用户习惯采用的流程或行为模式

例如:

  • 上周预定了东京航班“属于情景记忆”;
  • “偏好靠窗座位”属于语义记忆;
  • “订票时先看直飞,再比较价格”属于程序记忆。

2.4、存储方式

记忆表示可以从简单事实逐渐省纪委架构化档案;

  • 原子事实:成本低,适合明确且独立的信息
  • 上下文笔记:保留语义关系,但更新和去重较复杂
  • 结构化卡片:支持字段更新、过滤和权限控制
  • 带来源的实体卡片:记录任务关系、时间、证据和适用场景
  • 类型化状态:将统计、冲突检测和约束检查交给确定性程序

实际系统通常采用混合方案:

普通事实使用轻量存储,重要身份、关系和高风险信息使用带来源于版本的结构化表示。

2.5、更新与冲突处理

记忆更新有两种主要策略:

  • 写入时合并:立即更新或删除旧记忆,查询简单,但错误修改可能丢失历史
  • 仅追加写入:保留新旧事实及时间信息,在检索时判断当前有效版本

更稳健的设计是:

保留不可变事件日志作为证据,再从日志生成可重建的用户画像和当前状态。

这样既能支持审计和纠错,也能避免一次错误更新造成不可逆的信息损失。

2.6、记忆能力评估

可以分为三个层次:

  • 基础回忆:准确保存和取回明确事实
  • 跨会话理解:关联不同时间、人物和事件,并处理冲突
  • 主动服务:综合多条记忆提前发现需求或风险

主动服务必须考虑用户授权、置信度和操作风险,不能把模型推测当成用户意图。

2.7、压缩与隐私

随着记忆增长,需要进行:

  • 去重与聚类
  • 时间和有效期管理
  • 从事件中抽象稳定规律
  • 将旧记录归档而非直接删除
  • 过滤低价值或已失效信息

隐私保护至少包括:

  • 数据最小化
  • 用户知情与授权
  • 加密和访问隔离
  • 敏感信息脱敏
  • 查看、修改和删除机制
  • 来源、用途和访问记录审计

核心结论:

  • 好的记忆系统不是“记住的最多”,而是能够基于可信证据,正确保存、及时更新、准确检索,并让用户始终拥有控制权。

三、RAG知识获取管道

一句话理解:

RAG通过检索外部知识并将相关内容注入上下文,让模型基于可更新、可追溯的信息生成答案。

基本流程:

用户问题 → 检索相关内容 → 排序与筛选 → 注入上下文 → 模型生成答案

RAG不会修改模型参数,而是在推理时为模型补充知识。

3.1、文档处理

文档进入知识库前通常需要:

  • 解析并清晰原始内容
  • 按语义和结构进行分块
  • 添加标题、来源、时间和权限等元数据
  • 生成向量或关键词索引
  • 保存原文与索引之间的映射

分块的核心权衡:

  • 块太小:语义和上下文不完整
  • 块太大:主题混杂、检索不精确、浪费上下文
  • 重叠过多:增加存储和重复召回
  • 重叠过少:容易切断跨边界信息

生产系统通常优先采用结构感知分块,再根据真实检索效果调整块大小和重叠比例。

3.2、检索方式

稠密检索:

将问题和文档映射为向量,通过语义相似度召回内容。

优势是理解同义表达和语义关联、局限是可能遗漏型号、代码、姓名等需要精确匹配的信息。

稀疏检索:

使用BM25等方法,根据关键词、词频和稀有程度进行匹配。

优势是精确、可解释,适合专有名词和技术代码;局限是难以理解同义词和语义改写。

3.3、混合检索与重排序

生产级检索通常采用:

稠密召回 + 稀疏召回 → 结果融合 → 神经重排序

其中:

  • 稠密检索负责语义召回
  • 稀疏检索负责关键词匹配
  • RRF等方法负责合并不同检索结果
    -重排序器负责对候选文档进行更精确的相关性判断

检索用于从海量文档中快速缩小范围,重排序用于对少量候选进行精排。后者通常更准确,但会增加延迟和计算成本。

注意:
混合检索不是固定答案。是否需要稀疏检索、重排序以及各自权重,应根据真实查询集进行测评。

3.4、检索质量评估

常用指标包括:

  • Recall@k:相关文档是否进入前k个结果
  • MRR:第一个相关文档是否足够靠前
  • nDCG:整个排序列表的相关性质量
  • 检索失败率:正确内容是否完全没有被召回

除了检索指标,还应评估:

  • 答案是否忠于检索内容
  • 引用能否追溯到原始文档
  • 是否检索到无权限或过期内容
  • 无可靠证据时模型是否拒绝猜测

3.5、工程边界

RAG只能提高模型获得正确证据的概率,不能自动保证答案正确。

可靠的RAG还需要:

  • 文档版本与时效管理
  • 检索前的权限过滤
  • 来源和引用追踪
  • 冲突信息处理
  • 上下文去重与压缩
  • 生成后的事实一致性验证

核心结论:

RAG的关键不是把更多文档交给模型,而是准确找出当前问题所需的可信证据,并以可验证的方式注入上下文。

四、知识组织与高级检索

一句话理解:

高质量知识库不仅要“找到相似文本”,还要提前提炼知识的层次、关系、边界和时效性。

扁平文本块的主要问题:

  • 分块会切断原始上下文
  • Top-k检索无法保证覆盖全部案例
  • 零散案例难以表达统计结论和规则边界
  • 孤立片段难以支持跨文档、多跳推理
  • 模型无法判断检索结果是否完整

因此,知识库需要从“文档存储”升级为“知识建模”。

4.1、结构化索引

a. PAPTOR

将文本块逐层聚类和摘要,形成从具体内容到高层概念的知识树。

适合:

  • 宏观总结;
  • 多粒度检索;
  • 从整体概念逐步深入细节。

b. GraphRAG

将知识表示为实体、关系和社区组成的图结构。

适合:

  • 多跳关系查询;
  • 跨文档关联;
  • 实体消歧;
  • “谁与谁有什么关系”类问题。

注意:
知识图谱会压缩自然语言中的条件、时序和语气,不能完全替代原始文本。更稳妥的方式是:

保留完整原文作为证据,使用树或图作为辅助索引。

普通混合检索能够解决时,不应过早引入复杂的结构化索引。

4.2、文件系统式知识组织

文件系统范式通过目录、文件、摘要和链接组织知识:

  • 摘要用于快速判断相关性
  • 概览用于规划和理解主题
  • 全文仅在需要时加载
  • 链接和索引页用于连接相关知识
  • 版本控制用于审查、回滚和追溯

它体现了与Skills相同的渐进式披露思想:

摘要 → 概览 → 全文

注意:
文件系统本身不会自动形成知识网络。缺少链接、元数据和索引时,只会得到一堆难以检索的孤立文件。

4.3、知识更新机制

知识库需要同时支持:

  • 增量更新:新证据出现后,及时修改局部知识。
  • 定期整理:从全局视角去重、合并、纠错和调整结构。

推荐分为三层:

原始证据层 → 审核知识层 → 检索服务层

  • 原始证据只增不改,支持追溯
  • 知识层保存经过审核的规则、摘要和结构化事实
  • 服务层保存可以从知识版本重新生成的索引

每条知识应记录:

  • 来源证据
  • 生效与失效时间
  • 适用对象和条件
  • 版本及审核状态
  • 权限与租户范围

可以使用提倡者——审核者流程管理更新,但审核者不一定必须是另一个Agent。独立证据、权限隔离和人工审批比“使用两个模型”更重要。

4.4、智能体化RAG

一句话理解:

智能体化RAG将检索变成Agent可反复调用的工具,而不是一次性的固定前置步骤。

基本循环:

问题分解 → 检索 → 评估证据 → 改写查询 → 再次检索 → 综合回答

适合:

  • 多跳问题
  • 查询目标不明确的问题
  • 需要交叉验证的专业问题
  • 首次检索结果不完整的任务

简单事实查询通常使用普通RAG更快、更便宜。智能体化RAG应设置检索预算、证据充分条件和停止条件,避免无限循环。

4.5、上下文感知检索

一句话理解:

在索引文本块之前,为其补充所属文档、章节、实体、时间和主题等背景,使孤立片段重新获得语义身份。

例如,将:

“该公司第二季度收入增加了3%。”

增强为:

“本段来自ACME公司2025年第二季度财报的关键业绩章节:该公司第二季度收入增长了3%。”

这种方式可以同时改善关键词检索和向量检索。

优先使用原始文档中已有的标题、时间和元数据;使用LLM生成上下文时,应保留原始片段和来源,避免错误摘要污染索引。

4.6、双层记忆架构

高级用户记忆可以采用:

  • 结构化概览层:保存少量重要事实、关系和当前状态
  • 原始细节检索层:按序检索历史对话和原始证据

结构化概览提供全局视野,RAG提供精确细节:

全局概览 + 按序细节 = 跨会话理解与主动服务

仅保留概览会损失细节,仅依赖检索又难以发现跨记忆的隐藏关系。

4.7、从检索到知识发现

面对大量结构化案例数据,可以进一步:

  • 将案例转换为统一Schema
  • 统计和聚类相似案例
  • 识别影响结果的重要因素
  • 提炼可查询的模式和决策依据
  • 用真实案例验证提炼出的规律

但统计关联不等于因果规则。医疗、法律等高风险场景必须保留证据、验证偏差,并由专业人员审核。

4.8、多模态记忆

图片、声音和视频可以通过以下方式保存:

  • 原始多模态数据 + 文本描述
  • 原始数据 + 多模态向量索引
  • 支持专用记忆机制的模型内部表示

通常应把原始数据和嵌入存放在外部受控存储中,按序检索。将嵌入直接写入上下文或模型参数依赖特定模型架构、不能视为通用能力。

核心结论:

生产级知识系统应保留原始证据,用结构化索引提高发现能力,用版本化知识表达当前结论,再通过普通或智能体化RAG按需取回;知识的组织质量,往往比单纯更换检索模型更重要。

五、实验

实验参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询