分析时间: 2026-03-24
分析维度: 召回策略 | 排序机制 | 上下文注入 | 多阶段召回
召回机制总览
召回模式分类
| 模式 | 代表项目 | 特点 |
|---|---|---|
| 单路召回 | MemGPT, Memori | 向量检索或关键词匹配 |
| 多路召回 | mem0, ReMe | 向量 + 图遍历 |
| 三层召回 | SimpleMem | 语义 + 词汇 + 符号 |
| 画像驱动 | Memobase | 用户画像 + 事件时间线 |
| 认知分层 | OpenMemory | 5种认知类型 + Waypoint图 |
召回流程对比
1 | ┌─────────────────────────────────────────────────────────────────────────────┐ |
各项目召回机制详解
1. MemGPT - 简洁双路召回
MemGPT 提供两种独立的召回方式:
1 | # ========== Recall Memory (对话历史) ========== |
特点:
- ✅ 简洁明了,易于理解
- ✅ Recall 支持文本和日期两种检索
- ✅ Archival 纯向量检索
- ⚠️ 缺少重排序机制
2. mem0 - 向量+图双引擎召回
1 | def search(self, query, user_id, limit=100, threshold=None, rerank=True): |
高级过滤支持:
1 | filters = { |
特点:
- ✅ 并行执行向量+图检索
- ✅ 丰富的过滤操作符
- ✅ 可选重排序
- ✅ 返回关系图谱
3. OpenMemory - HSG 认知分层召回
1 | async function query(query_text: string, top_k: number) { |
扇区分类规则:
1 | const sector_patterns = { |
特点:
- ✅ 5种认知类型自动分类
- ✅ 多因素综合评分 (5个维度)
- ✅ Waypoint 图扩展
- ✅ 记忆强化机制
4. SimpleMem - 三层混合召回 + 反思
1 | class HybridRetriever: |
查询分析示例:
1 | # 输入: "上周我和张三在北京讨论了什么项目?" |
特点:
- ✅ 三层召回 (语义/词汇/符号)
- ✅ 智能规划 + 反思补充
- ✅ 复杂度感知动态深度
- ✅ 最高 F1 分数 (43.24%)
5. Memobase - 画像驱动召回
1 | class MemobaseSearch: |
服务端 context 实现:
1 | async def get_user_context(user_id, chats, max_token_size, event_threshold): |
返回的上下文格式:
1 | { |
特点:
- ✅ 结构化用户画像
- ✅ 事件时间线
- ✅ Token 预算控制
- ✅ 超低延迟 (<100ms)
6. ReMe - 模块化召回流水线
1 | # ReMe 使用操作符模式构建召回流水线 |
流水线操作符:
| 操作符 | 功能 |
|---|---|
| SetQueryOp | 设置查询 |
| RetrieveMemoryOp | 向量检索 |
| SemanticRankOp | 语义重排 |
| FuseRerankOp | 融合重排 |
| PrintMemoryOp | 格式化输出 |
| ExtractTimeOp | 时间提取 |
特点:
- ✅ 操作符模式,可组合
- ✅ 支持多种记忆类型
- ✅ 内置去重和阈值过滤
7. LangMem - LangGraph 原生召回
1 | def create_search_memory_tool(namespace, store=None): |
命名空间配置:
1 | # 用户级隔离 |
特点:
- ✅ LangGraph 原生集成
- ✅ 命名空间隔离
- ✅ 支持 create/update/delete 操作
召回策略对比
单路 vs 多路召回
| 策略 | 项目 | 优点 | 缺点 |
|---|---|---|---|
| 单路向量 | MemGPT | 简单高效 | 召回不全 |
| 向量+图 | mem0 | 关系推理 | 复杂度高 |
| 三层混合 | SimpleMem | 召回全面 | 计算量大 |
| 画像驱动 | Memobase | 个性化强 | 依赖画像质量 |
粗排 vs 精排
| 项目 | 粗排 | 精排 | 特点 |
|---|---|---|---|
| mem0 | 向量相似度 | Reranker 模型 | 可选精排 |
| OpenMemory | 扇区匹配 | 5因素综合评分 | 内置精排 |
| SimpleMem | 三层召回 | 反思式补充 | 多轮精排 |
| ReMe | 向量检索 | SemanticRankOp | 流水线精排 |
上下文注入策略
1. MemGPT - Core Memory 注入
1 | # Core Memory 始终在上下文中 |
2. mem0 - 格式化注入
1 | def format_for_prompt(memories): |
3. Memobase - Token 预算控制
1 | # 预算控制注入 |
性能对比
LoCoMo 基准测试
| 项目 | F1 Score | 检索时间 | 总时间 |
|---|---|---|---|
| SimpleMem | 43.24% | 388.3s | 480.9s |
| mem0 | 34.20% | 583.4s | 1934.3s |
| A-Mem | 32.58% | 796.7s | 5937.2s |
| LightMem | 24.63% | 577.1s | 675.9s |
延迟对比
| 项目 | 延迟 | 说明 |
|---|---|---|
| Memobase | <100ms | 画像预加载 + 事件索引 |
| mem0 | ~200ms | 向量检索 + 图遍历 |
| SimpleMem | ~300ms | 三层召回 + 反思 |
选型建议
按召回需求选型
| 需求 | 推荐 | 理由 |
|---|---|---|
| 简单高效 | MemGPT | 单路向量检索 |
| 关系推理 | mem0 | 向量 + 图遍历 |
| 召回全面 | SimpleMem | 三层混合 + 反思 |
| 个性化 | Memobase | 画像驱动 |
| 认知模拟 | OpenMemory | 5种认知类型 |
| 可组合 | ReMe | 操作符流水线 |
按性能需求选型
| 指标 | 最佳 | 数据 |
|---|---|---|
| 最高 F1 | SimpleMem | 43.24% |
| 最低延迟 | Memobase | <100ms |
| 最全面 | OpenMemory | 5因素评分 |
总结
核心洞察
- 向量检索是基础: 所有项目都使用向量相似度作为核心召回
- 多路召回是趋势: 三层召回、向量+图等混合策略越来越普遍
- 重排序很重要: 精排能显著提升召回质量
- 反思机制创新: SimpleMem 的反思式召回是亮点
- Token 预算控制: 生产环境必需的上下文管理
技术演进
1 | 单路向量 → 向量+图 → 三层混合 → 反思式召回 → 画像驱动 |
最佳实践
- 简单场景: MemGPT 单路向量
- 生产环境: mem0 或 Memobase
- 高召回质量: SimpleMem 三层 + 反思
- 认知研究: OpenMemory HSG 架构
报告生成时间: 2026-03-24