
字节开源终身记忆多模态智能体,长时记忆+RL,实测超Gemini‑GPT4o!
嘿,大家好!这里是一个专注于前沿AI和智能体的频道~
字节又偷摸开源了,一个带记忆的Agent。 看起来不稀奇,但是这可能全球首个带终身记忆更新的全多模态智能体。
这玩意儿的核心,是给Agent装上了一个真正意义上的“长期记忆”大脑,能边看边听边记,还能像人一样推理总结。
背后也不是靠堆参数,而是一套全新的关于记忆智能体的架构思想。所以,今天,给家人们分享一下这个工作。
论文: https://arxiv.org/pdf/2508.09736
github: https://github.com/ByteDance-Seed/m3-agent
背景
讲 M3-Agent
之前,得先知道它解决了什么问题。
现在的Agent处理长视频或者长对话,主要靠两种方法:一是超长上下文窗口,简单粗暴;二是传统的RAG,把视频切片描述存起来再检索。但这两种方法都有致命缺陷:
- 身份识别混乱:一个视频里,“穿红衣服的男人”可能在不同时间点被描述成不同的人,Agent没法把他们关联起来。
- 关键细节遗忘:RAG召回的只是文本片段,很多视觉、听觉的细节和它们之间的关系都丢失了。
- 知识无法沉淀:Agent只是被动检索,无法从具体事件中提炼出“小明喜欢喝咖啡”这样的通用知识。
M3-Agent:给AI装上实体记忆图谱
M3-Agent
的解法非常干脆:别再把记忆当成一堆无序的文本了,而是构建一个以实体为中心的多模态记忆图谱(VideoGraph
)。
M3-Agent
的架构包含两个并行工作的流程:
- **Memorization:**持续不断地处理视频流和音频流,提取信息,并构建和更新那个实体记忆图谱。它会同时生成两种记忆:
- 情景记忆 (Episodic Memory):记录具体发生了什么。例如,“
<face_1>
拿起杯子说,‘早上没这个我可不行’”。 - 语义记忆 (Semantic Memory):提炼出通用知识。例如,“
<face_1>
的名字是Alice”,“Alice早上喜欢喝咖啡”。
- Control:当收到用户指令时,它会利RL训练出的策略,自主地进行多轮思考和检索,从记忆图谱里捞取最相关的信息,最终完成任务。
看看代码:记忆系统是如何实现的?
我深入看了看他们开源的代码,
多模态实体对齐
M3-Agent
最硬核的一步,通过一套工具组合,把视频里的人脸和声音真正对应了起来。
-
mmagent/face_processing.py
: 使用RetinaFace
检测人脸,然后聚类,给视频里出现的每个独立角色一个唯一的<face_id>
。 -
mmagent/voice_processing.py
:** 使用pyannote.audio
做说话人分离,用ERes2Net
提取声纹,给每个说话人一个唯一的<voice_id>
。
它会自动挖掘那些只有一个脸和一个声音的“元片段”(meta-clips),高精度地建立 <face_id>
和 <voice_id>
的对应关系。
等价性推理与记忆图谱更新
拿到这些实体后,M3-Agent
会在语义记忆中生成等价记录,比如 Equivalence: <face_1>, <voice_1>
。
在 mmagent/videograph.py
中,它用了一个非常经典的数据结构——并查集 (Union-Find) 来高效地维护这些等价关系。当新的证据进来,比如发现 <face_1>
和 <voice_2>
也可能是同一个人,图谱会通过加权投票的机制来动态更新连接,确保长期的一致性。大概是下图这个感觉:
RL驱动的迭代式检索
传统RAG是一锤子买卖,搜到啥算啥。而 M3-Agent
包含一个控制模块 ,在mmagent/retrieve.py
,是一个会思考的分析模块。
面对一个复杂问题,它会进行最多5轮的迭代检索。比如第一轮搜“Tomasz是谁”,找到ID是<character_4>
;第二轮搜“<character_4>
的性格”,如果没结果,它会推理出新策略,第三轮去搜“<character_4>
作为CTO有哪些创新行为”,通过这种方式层层递进,最终找到答案。
跑分数据很牛
最后
代码开源的,https://github.com/ByteDance-Seed/m3-agent。
整个系统的核心就是构建一个更像人脑、更结构化的、可持续学习的长期记忆系统。本文本文转载自探索AGI,作者:猕猴桃
