MemOS(Memory Operating System)是目前(2025–2026年)最有代表性的“把记忆当作操作系统级资源”来管理的开源框架之一。它把传统LLM的“无状态+外挂RAG”模式升级为有状态、可治理、可演化的记忆系统,非常适合用来给Agent赋予高效、持久、结构化的记忆能力。
核心思想一句话总结:
把“记忆”从LLM的上下文附件/向量数据库外挂,升级为像操作系统管理“内存+磁盘+缓存”一样的第一类资源,实现统一调度、按需换入换出、动态更新、版本控制、遗忘机制。
MemOS 的典型分层架构(主流版本2025年底–2026年初)
大多数实现(包括MemTensor/MemOS开源项目和几篇核心论文)都采用类似的三层或四层结构:
| 层级 | 对应传统OS概念 | 主要职责 | 存储介质/形式典型实现 | 访问延迟 / 成本 |
|---|---|---|---|---|
| Working Memory | 寄存器 + L1/L2缓存 | 当前思考/推理的即时工作区 | 上下文窗口、KV-cache、激活状态 | 极低 |
| Short-term / Active Memory | 主存(RAM) | 最近几小时~几天的高频交互记忆 | MemCube(内存中)、向量索引(Faiss/…)、图结构 | 低 |
| Long-term / Semantic Memory | 硬盘 + 页面缓存 | 跨会话、跨天、用户画像、知识沉淀 | 结构化知识图谱 + 向量数据库 + 元数据表 | 中~高 |
| (可选) Parametric Memory | 模型权重(SSD/模型文件) | 真正“刻进模型”的知识(LoRA/Adapter) | 微调权重、MoE路由、记忆参数化模块 | 极高(更新慢) |
如何基于MemOS架构给Agent加上高效记忆(工程实践路径)
1. 最推荐的快速起步方式(2026年初主流做法)
使用已比较成熟的开源实现:
- https://github.com/MemTensor/MemOS (最接近原始论文的参考实现)
- Mem0.ai (更偏产品化、易集成,内存自优化能力强)
- OpenMem / Stardust版MemOS 2.0 (国内社区活跃,支持多模态+Agent工具记忆)
极简集成步骤(以MemTensor/MemOS为例):
# 安装(假设已支持pip)
pip install memos # 或从github克隆最新版
from memos import MemOS, MemCube, MemScheduler
from memos.storage import VectorStore, GraphStore
from langchain_openai import ChatOpenAI # 或 deepseek / qwen 等
# 初始化MemOS实例(可持久化到磁盘或redis)
memory_system = MemOS(
working_backend="redis", # 或 duckdb / postgres
vector_store="qdrant", # 或 chromadb, milvus
graph_store="neo4j", # 可选,用于语义关系
llm=ChatOpenAI(model="gpt-4o-mini") # 也支持deepseek等
)
# 创建一个Agent时绑定memory
agent = ReActAgent(
llm=llm,
tools=[...],
memory=memory_system.create_memory_layer(
user_id="user_重阳_vegas",
memory_types=["working", "short", "long", "semantic"]
)
)
2. 核心记忆操作接口(几乎所有MemOS实现都类似)
# 1. 主动记住(会自动提取关键事实、关系、偏好)
memory_system.remember(
content="用户重阳喜欢拉斯维加斯凌晨去Downtown吃牛排,讨厌甜食",
type="semantic", # 或 "event", "preference", "fact"
importance=0.85,
timestamp=now(),
metadata={"location":"Las Vegas", "mood":"positive"}
)
# 2. 查询(支持多模态检索:向量+图+关键字+时序)
memories = memory_system.retrieve(
query="重阳对食物的偏好",
user_id="user_重阳_vegas",
top_k=8,
filters={"time": "last_30_days", "importance>0.6"}
)
# 3. 更新 / 遗忘 / 冲突解决
memory_system.update(
memory_id="mem_abc123",
new_content="现在也接受少量甜食了,但前提是抹茶味",
conflict_strategy="merge_highest_confidence"
)
memory_system.forget_low_importance(threshold=0.3) # 自动遗忘
3. 让Agent“像人一样”使用记忆的Prompt模板(很有效)
你拥有一个长期记忆系统(MemOS),可以随时调用以下接口:
- remember(key_facts, importance=0~1)
- recall(query) → 返回最相关的3~8条记忆
- update_memory(id, new_info)
- forget(id) 如果信息已过期或错误
现在是 {current_time},我在拉斯维加斯。
请先调用 recall() 看看关于我的历史偏好,然后再决定如何回复。
不要一次性输出所有记忆,只在必要时引用。
4. 进阶能力(真正发挥MemOS价值的地方)
- MemCube动态形态切换:同一条记忆可在 text ↔ embedding ↔ graph node ↔ LoRA适配器 之间转换
- 预测性预加载(Predictive Paging):根据当前任务预测接下来最可能需要的记忆块,提前加载到working memory
- 记忆冲突治理:时间线冲突、事实矛盾时用LLM裁判或置信度投票
- 跨Agent共享记忆:团队Agent、家庭Agent、公司多Agent系统用同一MemOS后端
- 可控遗忘与隐私:用户可手动删除/暂停某段记忆,支持GDPR类合规
快速对比表:MemOS vs 常见记忆方案
| 方案 | 长期记忆质量 | 上下文成本 | 可治理性 | 演化能力 | 推荐场景 |
|---|---|---|---|---|---|
| 纯Context | ★☆☆☆☆ | ★★★★★ | ★☆☆☆☆ | ★☆☆☆☆ | 一次性对话 |
| RAG + VectorDB | ★★★☆☆ | ★★★☆☆ | ★★☆☆☆ | ★★☆☆☆ | 知识问答 |
| Mem0 | ★★★★☆ | ★★★★☆ | ★★★★☆ | ★★★☆☆ | 个人化聊天产品 |
| MemOS (完整) | ★★★★★ | ★★★★☆ | ★★★★★ | ★★★★★ | 复杂任务Agent、长期伴侣型AI |
一句话结论:
想让Agent真正“记住你是谁、喜欢什么、讨厌什么、以前答应过什么、正在做的事情进展到哪一步”,目前最系统、最有未来感的做法就是引入MemOS风格的分层、可调度、可治理记忆操作系统。
如果你想在DeepSeek + ClickHouse的场景下结合MemOS(比如把长期记忆存在ClickHouse里做高速时序+向量混合查询),可以告诉我更具体的应用场景,我可以给你更针对性的代码结构和表设计建议。