一、用户记忆与知识库
一句话理解:
用户记忆和知识库都是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按需取回;知识的组织质量,往往比单纯更换检索模型更重要。
五、实验
实验参考