Skip to content

Omni-SimpleMem 自主研究发现的终身多模态记忆

这篇笔记整理论文「Omni-SimpleMem: Autoresearch-Guided Discovery of Lifelong Multimodal Agent Memory」及 YouTube 频道「wow」的深度解读。核心亮点:用 AI 自动做科研来发现 AI 记忆系统的最优架构——72 小时 50 次实验,从纯文本记忆扩展到四模态,完全由 AutoResearchClaw 自主完成。

目录


背景:AI Agent 的记忆困境

核心矛盾

当前 AI Agent 在长期使用中面临一个根本问题:记忆越多,推理越差

记忆量 ↑
  │
  ├─ 简单方案:存原始对话
  │   → Token 膨胀,推理成本暴增,噪音干扰
  │
  ├─ 改进方案:存压缩摘要
  │   → 丢失细节,跨时间推理能力下降
  │
  └─ 理想方案:有损压缩但语义无损
        → "断舍离"式记忆管理

三种退化模式

模式 表现 原因
健忘症 早期经验被后期覆盖 上下文窗口有限
信息过载 检索结果太多,无法有效利用 缺乏选择性过滤
模态割裂 文本记忆好但无法关联图像/音频 记忆系统只支持单模态

AutoResearchClaw:AI 自己搞科研

什么是 AutoResearchClaw

AutoResearchClaw 是一个全自主 AI 科研系统,能在无人类干预的情况下完成完整的科研流程:

研究目标设定(人类设定方向)
  │
  └─→ AutoResearchClaw 自主执行
        │
        ├─ 文献调研
        ├─ 假设生成
        ├─ 代码实现
        ├─ 实验运行(50 次)
        ├─ Bug 修复(自主修)
        ├─ 结果分析
        └─ 论文撰写

关键数字

  • 72 小时内完成全部实验
  • 50 次实验迭代
  • 从 SimpleMem(纯文本)自主扩展到 Omni-SimpleMem(四模态)
  • Bug 修复和架构变动的贡献超过所有超参调优的总和

自主研究的六大发现类型

发现类型 示例
架构发现 Selective Ingestion(选择性摄入)
策略发现 Progressive Retrieval(渐进检索)
组件发现 Knowledge Graph Augmentation(知识图谱增强)
超参发现 最优 chunk size、top-k 值
Bug 修复 自主发现并修复代码中的错误
跨域迁移 在一个 benchmark 上发现的配置迁移到另一个

多模态记忆特别适合自主研究的四大特性

  1. 可组合性 — 文本/图像/音频/视频的处理模块可以独立替换
  2. 可度量性 — 标准化 benchmark(LoCoMo、Mem-Gallery)可自动评估
  3. 迭代反馈快 — 每次实验运行分钟级出结果
  4. 失败信号清晰 — 不像基础研究,metric 下降就说明方向错了

SimpleMem:文本记忆三阶段管线

SimpleMem 是 Omni-SimpleMem 的前身,专注于纯文本记忆,性能已经很强(LoCoMo F1 +26.4%,推理 token 减少 ~30x)。

三阶段流程

原始对话
  │
  ▼
┌─────────────────────────────────────────┐
│ Stage 1: Semantic Structured Compression │
│ 语义结构化压缩                            │
│ • 提取自包含的事实单元                    │
│ • 解决共指消解 (he/she → 具体人名)         │
│ • 添加绝对时间戳                          │
│ • 多索引互补视图                           │
└─────────────────┬───────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────┐
│ Stage 2: Online Semantic Synthesis       │
│ 在线语义合成                              │
│ • 会话内合并相关上下文                    │
│ • 在记忆构建时就去冗余(不是查询时)       │
│ • 生成统一抽象                            │
└─────────────────┬───────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────┐
│ Stage 3: Intent-Aware Retrieval Planning │
│ 意图感知检索规划                          │
│ • 推断搜索意图                            │
│ • 决定检索什么内容                        │
│ • 组装精确、紧凑的上下文                  │
└─────────────────────────────────────────┘

Omni-SimpleMem:三大设计原则

AutoResearchClaw 在 50 次实验中自主收敛到三个核心原则:

原则 1: Selective Ingestion(选择性摄入)

不是所有信息都值得记住。"断舍离"——只存高信息量的内容。

多模态输入(文本/图像/音频/视频)
  │
  ▼
信息熵计算
  │
  ├─ 高熵(信息量大)→ 存入记忆
  └─ 低熵(冗余/噪音)→ 丢弃

为什么重要:多模态数据量爆炸式增长,不加过滤会导致记忆库迅速膨胀,检索质量下降。

原则 2: Progressive Retrieval(渐进检索)

不一次性返回所有相关记忆,而是逐步扩展搜索范围

查询请求
  │
  ├─ Round 1: FAISS 语义搜索(少量结果)
  │     → 不够?→ Round 2
  │
  ├─ Round 2: + BM25 关键词搜索
  │     → 不够?→ Round 3
  │
  └─ Round 3: 扩大 token budget
        → 返回更多结果

混合检索策略(Hybrid):FAISS(语义)+ BM25(关键词),金字塔式 token 预算扩展。

原则 3: Knowledge Graph Augmentation(知识图谱增强)

用知识图谱实现跨模态推理

文本记忆节点 ───── 图像记忆节点
      │                  │
      │     KG 连接      │
      │   ──────────    │
      │                  │
音频记忆节点 ───── 视频记忆节点

多跳跨模态推理:从文本问题出发,通过知识图谱边找到相关图像/音频/视频记忆。

示例:问"用户上次提到的那个蛋糕长什么样?"→ 文本记忆找到"蛋糕"→ KG 边→ 图像记忆找到蛋糕照片。


架构对比:SimpleMem vs Omni-SimpleMem

特性 SimpleMem Omni-SimpleMem
支持模态 文本 文本 + 图像 + 音频 + 视频
摄入策略 全量压缩 Selective Ingestion(熵过滤)
检索策略 意图感知 Progressive Retrieval(渐进式)
推理能力 单模态语义 KG 多跳跨模态推理
索引方式 多视图互补 FAISS + BM25 混合
自适应 EvolveMem 自进化
研究方式 人工设计 AutoResearchClaw 自主发现

实验结果

LoCoMo Benchmark

系统 F1 Score 提升
Mem0 (baseline) 基准
MemGPT 中等提升
SimpleMem +26.4% (vs prior SOTA)
Omni-SimpleMem +57% (vs Mem0)

关键发现

  • Bug 修复和架构变动的贡献 超过所有超参调优的总和
  • 在 LoCoMo 和 Mem-Gallery 两个 benchmark 上均达到 SOTA
  • 配置具有跨 benchmark 迁移能力

EvolveMem:自进化检索

Omni-SimpleMem 还包含一个 EvolveMem 模块,解决"存储内容在变,但检索策略不变"的盲区。

闭环进化循环

┌─→ Evaluate (评估当前检索质量)
│     │
│     ▼
│   Diagnose (诊断每个问题的失败原因)
│     │
│     ▼
│   Propose (提出配置变更)
│     │
│     ▼
│   Guard (自动回滚检测)
│     │
│     ├─ 回归?→ 回滚到上一个配置
│     └─ 正常?→ 部署新配置
│     │
│     └─→ Repeat
└─────┘

自主发现的新检索维度

维度 说明
Query Decomposition 将复杂查询拆成子查询
Entity-Swap 替换实体验证答案一致性
Answer Verification 交叉验证答案正确性

这些检索策略不在原始设计中,是 EvolveMem 自主发现的。

性能

  • LoCoMo 上相对提升 25.7%
  • 配置可跨 benchmark 迁移

如何使用

安装

pip install simplemem

代码示例

from simplemem import SimpleMem

mem = SimpleMem()  # auto mode

# 文本记忆
mem.add_dialogue("Alice", "Bob, let's meet at Starbucks tomorrow at 2pm", "2025-11-15T14:30:00")
mem.add_dialogue("Bob", "Sure, I'll bring the market analysis report", "2025-11-15T14:31:00")
mem.finalize()
answer = mem.ask("When and where will Alice and Bob meet?")
# → "16 November 2025 at 2:00 PM at Starbucks"
# 多模态记忆
mem = SimpleMem()  # auto mode

mem.add_text("User loves hiking in the Rocky Mountains.", tags=["session_id:D1"])
mem.add_image("photo.jpg", tags=["session_id:D1"])
mem.add_audio("voice_note.wav", tags=["session_id:D1"])

result = mem.query("What does the user enjoy?", top_k=5)
for item in result.items:
    print(item["summary"])

mem.close()

MCP Server 支持

  • 云端:mcp.simplemem.cloud
  • Docker 自托管
  • 支持任何 MCP 客户端(Claude Desktop、Cursor 等)

参考资料