2509.00xxxx_MemU: 一个前瞻性很强但尚不成熟的记忆框架¶
主要内容¶
备注
memU 是一个前瞻性很强但尚不成熟的记忆框架。它展示了如何通过多阶段LLM调用实现智能记忆管理,尤其在“心智理论”和记忆结构化方面很有启发性。然而,由于其强依赖LLM响应能力与文件系统存储限制,目前更适合作为研究或轻量级项目使用。
最佳场景:¶
情感陪伴应用:虚拟伴侣、数字人等需要建立情感连接的场景
心理咨询:需要理解用户情感状态和历史的应用
健康管理:长期跟踪用户健康状况和生活习惯的系统
个性化推荐:基于用户偏好和历史行为的推荐系统
核心架构:记忆即文件系统¶
memU 将记忆视为一个自主运行的文件系统,所有记忆内容都被组织成不同的“文件夹”(分类),每个记忆项都是一个“文件”。
当你与AI对话时,memU 会自动:
提取关键信息
更新现有记忆
生成新记忆
链接相关记忆
动态优化存储结构
技术架构¶
自生长文件夹机制:动态创建和组织记忆结构,适应不断变化的对话主题
动态知识图谱:自动识别对话中的实体和关系,构建演进的知识网络
多模式检索:支持语义/混合/上下文感知检索,适应不同查询需求
离线分析引擎:在非交互时段分析记忆数据,生成新洞察并主动更新知识库
两大核心接口¶
memorize(记忆):将对话内容提取并存储为结构化记忆
retrieve(检索):根据上下文快速找回相关记忆
核心处理流程¶
记忆抽取与处理¶
架构图: https://qcn3wi057vzm.feishu.cn/wiki/Qg16wGBFriSWiUkhGq1csnDenth
memU 的核心在于其多阶段、LLM驱动的记忆处理流水线。当你提交一段对话后,它会异步处理、依次执行以下6个关键子过程:
add_activity_memory - 原始对话结构化
目的:将杂乱无章的原始对话转换成一条条结构清晰、自包含的“记忆项”。
做法:使用LLM对原始对话进行理解和重组,将相关的语句组合成一条完整的活动描述(例如,将“我昨天去了公园。公园很漂亮。我看到了很多花。”合并为“用户昨天去了一个漂亮的公园,并看到了很多花。”),并为每条记忆生成唯一ID和嵌入向量。
输出:一组格式规范、可供后续处理的基础记忆单元。
run_theory_of_mind - 心智理论推断
目的:读出用户的“言外之意”,推断出用户未明确表达但可能隐含的信息、情绪或特质。
做法:基于上一步的结构化记忆,让LLM扮演一个“心理学家”,进行推理和分析(例如,用户说“项目终于上线了,累死了”,可以推断出“用户可能对工作成就感到自豪,但同时近期压力很大”)。
输出:一系列带有“可能”、“也许”等模态副词的推断性记忆项,丰富了用户画像的维度。
generate_memory_suggestions - 生成记忆建议
目的:决定哪些信息值得被存入长期的、分类的记忆库中。
做法:综合分析前两步得到的所有记忆项,判断每条信息最适合放入哪个记忆类别(如profile个人档案、event事件、activity活动等),并生成具体的存储建议。
输出:一个针对各个记忆类别的、包含具体内容建议的列表。
update_memory_with_suggestions - 执行记忆更新
目的:根据上一步的建议,实际执行对记忆库的增、删、改、查操作。
做法:再次调用LLM,将其视为一个“数据库管理员”。LLM会对比新建议和记忆库中的现有内容,决定是需要新增一条记忆、更新某条现有记忆、删除过时信息,还是仅刷新一下时间戳(TOUCH)。
输出:一系列具体的操作指令(ADD/UPDATE/DELETE/TOUCH),并最终写入文件系统。
link_related_memories - 链接相关记忆
目的:打破记忆孤岛,在不同记忆之间建立关联网络,模拟人脑的联想式记忆。
做法:首先通过 embedding 向量相似度进行初步筛选,找到内容上可能相关的记忆候选集。然后,可选地使用LLM进行精细过滤,判断这些记忆在语义上是否真正相关(例如,“用户在巴黎旅行”和“用户喜欢法国烘焙”是相关的)。
输出:在记忆项之间建立双向链接,形成一张知识图谱。 s
cluster_memories - 记忆聚类
目的:对记忆库进行宏观管理,自动发现新的主题或分类,优化存储结构。
做法:检查大量的记忆项,通过LLM判断是否可以将某些记忆合并成新的主题类别,或者调整现有的分类结构,使整个记忆系统更加有序和高效。
输出:优化后的记忆分类结构。
memU 优缺点¶
✅ 优点:
记忆提取更准确,格式规范(如时间必须为绝对日期)
自动分类,记忆结构清晰易检索
引入“心智理论”,能推断用户隐含信息
❌ 缺点:
对LLM提示词要求高,部分模型无法正确响应
存储基于文件系统,扩展性差,不适合大规模使用
调用LLM次数多,成本较高
记忆关联性仅存于内容中,重建耗时