尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

智能体应当遗忘什么——存储内容与使用内容的解耦

智能体应当遗忘什么——存储内容与使用内容的解耦 智能体应当遗忘什么——存储内容与使用内容的解耦论文arXiv原文:[https://arxiv.org/html/2609.10263v1]摘要持久化语言智能体需要长期保存历史经验,用于跨会话任务;但针对每一次用户提问,只应当使用和当前问题匹配的证据。现实场景存在一类矛盾事实:过时事实会误导当前回答,但该旧事实在查询历史场景时又是不可或缺的。本文提出R(\mathcal{D})-Forget,一套无需微调的记忆框架,核心思想:把智能体「存储的信息」和「推理时使用的信息」做解耦。完整源档案(source archive)永久保留全部观测记录,永不物理删除;基于查询条件动态生成记忆视图(memory view),控制哪些记忆参与本轮回答;使用冻结大模型作为记忆策展器,提取证据,将事实分组到语义槽位,维护多跳推理所需的关联关系;同槽替换链路抑制当前上下文里的过期事实;基于意图的检索机制,在需要时重新启用历史证据;采用率失真(rate-distortion)优化,在token预算约束下构建回答时的记忆视图。实验覆盖五大任务场景:对话记忆、知识更新、事实合并、长上下文推理、个性化问答。结果证明:准确回答依赖两点——构建和查询匹配的证据集 + 对过时备选事实做可控屏蔽。不具备遗忘机制、无查询条件视图的基线存在巨大性能损失;槽位分组、历史访问、关系保留三者提供互补增益。保留完整历史、按需控制使用范围,是处理动态变化事实、应对未来未知查询的可行方案。1 引言长期语言智能体(个人助手、任务Agent)会持续积累大量事实。传统记忆方案有两种极端:全部保留:上下文膨胀,过期事实干扰当前答案;直接删除旧事实:旧事实永久丢失,后续如果用户查询历史场景则无法回答。例如:用户之前写“我的邮箱是a@test.com”,后来更新为“我的邮箱是b@test.com”。当前提问“你的邮箱是什么?”,模型应当使用b,屏蔽a;如果用户后续提问“去年我登记的邮箱是什么?”,模型又需要调取旧邮箱a。直接删除旧信息无法处理第二类查询;全部保留不加控制则会混淆当前事实。现有RAG、记忆数据库大多缺少这种查询感知的选择性遗忘能力。本文核心贡献R(\mathcal{D})-Forget框架,解耦「存储」和「使用」:原始观测永久归档,仅在推理视图层面临时屏蔽过期事实,而非物理删除;语义槽位(semantic slot)事实分组机制,维护事实间关系,支持多跳推理;同槽替换链路,自动压制过时取值;率失真目标函数,在token预算约束下优化查询条件记忆视图;训练零成本,不需要微调底层大模型;在5类记忆任务上开展完整评测,开源记忆处理脚本、评测数据集、基线复现代码。2 相关工作2.1 智能体记忆与RAG检索增强RAG从知识库检索相关片段送入上下文;但传统RAG对冲突事实、时序更新处理能力弱,无法区分“当前有效事实”和“历史过时事实”。记忆数据库(向量库、图记忆)常采用永久删除、FIFO淘汰,一旦删除,历史信息永久丢失。2.2 模型遗忘与知识编辑知识编辑(Knowledge Editing)修改模型权重,擦除模型内部知识。缺点:需要微调,成本高;是全局修改,一旦擦除旧事实,任何场景都无法再访问;R(\mathcal{D})-Forget不修改模型权重,不在底层模型删知识,只在检索视图层面控制可见性。2.3 上下文过滤与记忆选择部分工作做上下文过滤,筛选相关片段送入prompt,但缺少语义槽建模,无法识别同一实体的新旧冲突事实,也不支持“按需恢复历史证据”。R(\mathcal{D})-Forget增加语义槽、意图感知检索、率失真约束。3 R(\mathcal{D})-Forget 方法3.1 整体架构三大核心组件:Source Archive 源档案存储层永久保存全部原始观测文本,不做删除。所有历史对话、事实、日志完整存档,作为底层数据源。Curator(冻结LLM记忆策展器)输入原始观测,输出结构化记忆:提取事实三元组;按语义槽分组:同一实体同一属性归为一个slot,例如user.email;记录事实之间的关联,用于多跳推理;标记事实时间戳、替换关系:当新事实写入同一slot,建立同槽替换链路。Curator模型冻结,不需要训练,只做结构化解析。Query-conditioned Memory View 查询条件记忆视图收到用户查询,基于:查询意图;语义槽替换链路;token预算(率失真优化);动态筛选:本轮回答能看到哪些事实。规则:当前状态查询:同槽旧事实被抑制,优先使用最新事实;历史回溯查询:意图识别后,解除抑制,旧事实重新纳入上下文。3.2 语义槽 同槽替换链路语义槽格式示例:slot_id:
返回列表