Appearance
Memory Hub 架构
短期记忆与长期记忆
Memory Hub 通过 mem0 的 run_id 机制实现短期与长期记忆的隔离。
| 类型 | run_id | 存储位置 | 可见范围 | 生命周期 |
|---|---|---|---|---|
| 长期记忆 | 空 | mem0,按 user_id 索引 | 跨 session,永久可见 | 永久 |
| 短期记忆 | = sessionKey | mem0,按 user_id + run_id 索引 | 仅同一 session 内 | 自动过期清理 |
两种记忆存储在同一个 mem0/qdrant 实例中,无需分开部署。run_id 是命名空间隔离机制。
记忆触发场景
触发时机
| 场景 | run_id | 类型 | 触发者 |
|---|---|---|---|
autoCapture(agent_end hook) | = sessionKey | 短期 | 框架自动 |
memory_store tool,longTerm=true | 无 | 长期 | AI 模型主动 |
memory_store tool,longTerm=false | = sessionKey | 短期 | AI 模型主动 |
autoRecall(before_prompt_build hook) | 两次并行查询 | 长期+短期 | 框架自动 |
多租户映射
mem0-hub 在 mem0 之上增加了一层多租户映射层:
每个用户、组织、全局命名空间都映射到独立的 mem0 user_id,实现记忆隔离与权限控制。
记忆检索流程
当 Agent 需要检索记忆时,Memory Hub 会:
- 根据当前用户身份,确定可访问的记忆范围(个人 + 所属组织 + 全局)
- 并发向 mem0 发起多个搜索请求
- 合并去重后按相关性排序返回
TIP
短期记忆同样经过 LLM 提取和向量化处理,与长期记忆的处理流程完全相同,只是通过 run_id 实现了命名空间隔离。
片段管理 (Episodes)
Memory Hub 支持记忆时间线聚合,将相关记忆按时间和主题组织为「片段」(Episodes),方便用户在 Web 界面中浏览和管理记忆的演变过程。
