摘要
在长程人机交互中,如何让 AI 记住用户,不再是简单的“检索增强(RAG)”就能解决的问题。传统的向量数据库面临“信息信噪比低”、“人格不一致”以及“随着对话无限增长而崩塌”的困境。 MemTensor 团队联合人大提出的Inside Out框架,从认知心理学汲取灵感,提出了一种基于PersonaTree(人格树)的显式记忆进化机制。该方案通过训练一个轻量级的MemListener(使用 DeepSeek-R1 蒸馏数据 + GRPO 强化学习),实现了将非结构化对话流实时压缩为结构化树操作(新增|更新|删除)。这不仅解决了无限对话与有限窗口的矛盾,更设计了“小模型维护记忆,大模型负责生成”的高效协同范式。
1. 核心问题:长程对话中的“记忆饱和”问题
在 LLM 驱动的 Agent 系统中,个性化(Personalization)通常依赖于记忆(Memory)。然而,现有的主流方案在面对长程对话(Long-term Dialogue)时,遭遇了不可调和的矛盾:
- Context Saturation(上下文饱和):用户的对话流是无限的,但模型的 Context Window 是有限的。简单堆砌历史会导致推理速度变慢且成本飙升。
- Noise Accumulation(噪声堆积):基于向量检索(Vector RAG)的记忆系统(如 Mem0, LangMem)往往将记忆视为碎片化的文本片段。随着时间推移,无关的闲聊和过时的信息会淹没关键的用户特征,导致检索的**信噪比(SNR)**急剧下降。
- Persona Inconsistency(人格割裂):碎片化的记忆缺乏整体结构,导致模型对用户的认知是割裂的。例如,模型可能检索到了用户“喜欢吃辣”,却忽略了用户最近“得了胃病被医嘱忌口”的最新状态 update。
Inside Out论文的核心洞察在于:人类的记忆不是碎片堆积,而是围绕“核心人格”构建的结构化岛屿(致敬电影《头脑特工队》)。因此,AI 的记忆也应从无序的流(Stream)进化为有序的树(Tree)。
2. 顶层设计:PersonaTree 与生物心理社会模型
为了定义记忆的边界,论文引入了Biopsychosocial Model(生物-心理-社会模型)作为 Schema 设计的理论基础。这不是一个随意的 JSON 模板,而是跨学科验证的用户画像分类学。
2.1 记忆的骨架:PersonaTree Schema
PersonaTree 将用户特征解构为三个核心维度,形成了记忆树的“树干”:
- Biological(生物属性):如生理状态、年龄、感官偏好等。
- Psychological(心理属性):大五人格、情感模式、认知能力、价值观。
- Social(社会属性):社会身份、人际关系、职业背景、文化习惯。
这种设计确保了记忆的完备性和可解释性。每一个叶子节点(Leaf Node)存储一段压缩后的文本摘要,代表了该维度的当前状态。
2.2 框架全览
Inside Out 框架包含三个关键环节,形成闭环:
- Dynamic Evolution(动态进化):通过MemListener将非结构化对话转化为树操作,实时更新 PersonaTree。
- MemListener Training(记忆监听者训练):利用 SFT 和 Process-Reward RL 训练一个小模型,使其具备精准的记忆编辑能力。
- Adaptive Response(自适应响应):基于 PersonaTree 进行推理,支持快速模式(Fast Mode)和代理模式(Agentic Mode)。
3. 核心创新 I:MemListener 与 动态树进化
这是整个框架工程逻辑最精彩的部分。系统不是简单地将新对话append到数据库,而是执行类似数据库事务的ACID 操作。
3.1 四种原子操作
MemListener(一个轻量级 LLM,如 Qwen-7B)负责“监听”对话流,并输出以下四种结构化指令:
ADD(path, value): 在路径不存在时,写入新的属性。UPDATE(path, value):最关键的操作。当新信息是对旧信息的补充、修正或状态变更时,重写叶子节点的内容。这实现了信息压缩——将多轮对话压缩为一句最新的状态描述。DELETE(path, value): 清除无效或被否定的信息。NO_OP(): 当前对话无有效个人信息,不进行操作。
3.2 冲突消解与状态追踪
在UPDATE操作中,MemListener 必须处理新旧信息的冲突。论文将**冲突解决(Conflict Resolution)**提升到了策略生成阶段:模型在生成 Update 指令时,必须结合旧的 Tree State 和新的 Dialogue,通过推理决定是“覆盖”、“追加”还是“修正”。
逻辑流程图: