架构设计
MemOS 采用模块化设计,各核心组件协同工作,将传统 LLM 升级为具备完整记忆生命周期管理能力的记忆增强系统。
核心模块
MOS (Memory Operating System,记忆操作系统)
MemOS 的编排层——管理跨多种记忆类型(纯文本、激活、参数化)的预测性、异步调度,并编排多用户、多会话记忆工作流。
核心功能
- 统一 API 网关:为所有记忆操作(添加、搜索、更新、传输、回滚)提供一致接口
- 工作流编排:协调 MemCube、MemReader、MemScheduler 等组件的执行流程
- 互操作性支持:通过记忆交换协议 (MIP) 实现跨模型、跨设备的记忆迁移
- 资源调度:智能分配计算资源,平衡实时响应与后台处理需求
MemCube (记忆容器)
MemCube 是 MemOS 的模块化记忆存储单元,可视为一个独立且可移植的“记忆卡”。每个 MemCube 可专门服务于特定用户、智能体或会话,容纳一种或多种记忆类型。
多 Cube 支持 (Multi-Cube):
MemOS 支持通过组合视图 (Composite View) 同时操作多个 MemCube,实现灵活的记忆隔离与共享:
| 操作类型 | 策略 | 应用场景 |
|---|---|---|
| 写入 | 扇出写入 (Fan-out Write) | 将记忆同时写入用户个人 Cube 和项目共享 Cube |
| 读取 | 并行搜索 (Parallel Search) | 同时查询多个 Cube,聚合结果提供全局视图 |
动态管理能力:
- 热插拔支持:可在运行时动态注册、更新或移除 MemCube
- 容器化存储:支持记忆在会话、模型和设备间的安全传输
- 隔离保障:确保不同用户或应用间的记忆数据相互隔离
异步添加机制 (Asynchronous Addition)
为了在高并发场景下保持低延迟,MemOS 提供了异步记忆添加模式 (async_mode),利用 MemScheduler 进行后台调度:
| 记忆类型 | 处理策略 | 优势 |
|---|---|---|
| 文本记忆 | 快速提取 + 异步处理 | API 立即返回基础结果,复杂处理后台执行 |
| 偏好记忆 | 全异步处理 | 最大化减少 API 响应延迟 |
MemScheduler 角色: 作为异步任务调度器,负责:
- 管理后台处理任务的优先级队列
- 协调重索引、图推理等计算密集型操作
- 监控任务状态,确保处理一致性
记忆类型体系
MemOS 支持几种专门的记忆类型以满足不同需求:
1. 参数化记忆(即将推出)
- 特性: 知识固化于模型权重中,推理零延迟
- 应用场景:稳定的领域知识、核心技能
- 生命周期:长期持久,更新成本较高
2. 激活记忆
- 特性:运行时 KV 缓存与隐藏状态,快速复用
- 应用场景:多轮对话上下文、频繁访问的背景信息
- 生命周期:短期有效,会话级保持
3. 明文记忆
结构化或非结构化知识块;可编辑、可追溯,适合快速更新、个性化和多代理共享。
| 记忆子类 | 存储结构 | 核心优势 | 典型应用 |
|---|---|---|---|
| GeneralTextMemory | 向量存储 | 语义检索灵活,支持元数据过滤 | 非结构化文档、聊天记录 |
| TreeTextMemory | 图结构存储 | 层次化组织,支持多跳推理 | 结构化知识库、用户画像 |
起步建议
:从
:随着业务复杂度提升,逐步引入
:从
GeneralTextMemory 开始快速验证概念
演进路径:随着业务复杂度提升,逐步引入
TreeTextMemory 处理结构化知识基础支撑组件
MemOS 的基础模块提供标准化能力,确保系统的可扩展性与一致性:
| 组件类别 | 核心功能 | 实现示例 |
|---|---|---|
| 文本处理 | 智能分块、记忆提取 | Chunkers, MemReaders |
| 向量化 | 文本嵌入生成 | Embedders (bge-m3, text-embedding-3-large) |
| 存储接口 | 多数据库适配 | GraphDBs (Neo4j, Qdrant, PolarDB) |
| 模型连接 | 统一 LLM 接口 | LLMs (OpenAI, Ollama) |
| 质量优化 | 检索结果重排 | Rerankers (bge-reranker-v2-m3) |
代码组织架构
MemOS 项目组织清晰,支持即插即用:
src/memos/
api/ # API 定义
chunkers/ # 文本分块工具
configs/ # 配置模式
context/ # 日志上下文
embedders/ # 嵌入模型
graph_dbs/ # 图数据库后端 (例如,Neo4j)
vec_dbs/ # 向量数据库后端 (例如,Qdrant)
llms/ # LLM 连接器
mem_agent/ # 深度检索
mem_chat/ # 记忆增强聊天逻辑
mem_cube/ # MemCube 管理
mem_feedback # 记忆反馈
mem_os/ # MOS 编排
mem_reader/ # 记忆读取器
mem_scheduler/ # 记忆调度模块
memories/ # 记忆类型实现
multi_mem_cube/# 多视图cube
parsers/ # 解析工具
reranker/ # 重排模块
templates/ # 提示词模板
types/ # 类型定义
专业提示
- 快速实验:使用
examples/目录中的示例快速验证功能 - 深度定制:参考
src/中的模块实现进行二次开发 - 配置管理:所有组件均支持通过
configs/进行灵活配置
可扩展性
MemOS 是模块化设计的。 添加您自己的记忆类型、存储后端或 LLM 连接器,只需最少的更改——这要归功于其统一配置和工厂模式。
专业提示
贡献 一个新的后端或分享您的自定义记忆类型——这很容易插入。
贡献 一个新的后端或分享您的自定义记忆类型——这很容易插入。