【大模型记忆-Mem0详解-1】概述
目的和能力
Mem0 通过提供以下功能将无状态 AI 应用程序转换为有状态、支持内存的系统:
- 持久记忆 :跨会话长期保留用户偏好、对话历史记录和上下文信息
- 多级内存 :支持具有自适应个性化的用户级、会话级和代理级内存
- 智能提取 :基于 LLM 的记忆提取,可智能决定要记住和忘记哪些信息
- 语义搜索 :使用向量相似性和上下文理解进行基于相关性的记忆检索
- 成本优化 :与全上下文方法相比,令牌使用量减少 90%,响应速度提高 91%
系统架构概述
Mem0 的架构支持两种主要部署模型:托管平台服务和自托管开源解决方案,两者共享核心内存处理能力。
核心内存系统组件
核心内存系统由几个关键组件组成,这些组件协同工作以提供智能内存功能。
元件 | 目的 | 关键方法 |
---|---|---|
Memory | 核心内存编排 | add()、search()、get()、update()、delete() |
VectorStoreFactory | 矢量数据库实例化 | 提供商选择和配置 |
LlmFactory LLM | 提供商管理 | 模型初始化和切换 |
EmbedderFactory | 嵌入模型管理 | 嵌入提供程序配置 |
GraphStoreFactory | 图数据库管理 | 关系存储配置 |
平台与开源部署模型
Mem0 提供两种不同的部署方法,具有不同的客户端接口和功能。
平台部署(托管服务)
平台客户端使用情况:
from mem0 import MemoryClient
client = MemoryClient()
client.add(messages, user_id="alex")
results = client.search(query, filters=filters)
开源部署(自托管)
from mem0 import Memory
memory = Memory.from_config(config)
memory.add(messages, user_id="alice", metadata={"category": "preferences"})
related_memories = memory.search("query", user_id="alice")
方面 | 平台 | 开源 |
---|---|---|
客户端类 | MemoryClient、AsyncMemoryClient | Memory |
认证 | 需要 API 密钥 | 本地配置 |
基础设施 | 完全托管 | 自托管 |
定制 | 仅限于 API 参数 | 完全提供商控制 |
缩放 | 自动 | 手动配置 |
提供商生态系统和工厂模式
Mem0 使用工厂模式支持不同组件的多个提供者,从而实现灵活的部署配置
配置示例:
config = {"llm": {"provider": "anthropic","config": {"model": "claude-sonnet-4-20250514","temperature": 0.1,"max_tokens": 2000,}}
}
内存类型和功能
Mem0 支持镜像人类记忆系统的不同类型的内存:
内存类型 | 目的 | 存储期限 |
---|---|---|
工作记忆 | 短期会话感知 | 会话范围 |
事实记忆 | 长期结构化知识(偏好、设置 | ) 持续 |
情景记忆 | 过去特定对话的记录 | 持续 |
语义记忆 | 随着时间的推移积累的常识 | 持续 |
主要特征:
- 多级内存 :具有自适应个性化的用户、会话和代理级内存
- 图内存 :存储实体和概念之间的关系
- 智能过滤 :基于 LLM 的内存衰减以防止信息膨胀
- 语义搜索 :基于向量的检索,具有相关性评分
集成环境
Mem0 作为中央内存层,与各种 AI 框架和开发工具集成。