MemOS是一个专为大型语言模型(LLMs)设计的操作系统,为LLMs提供强大的长期记忆能力,使其能够高效地存储、检索并管理信息,从而实现更具上下文感知、一致性和个性化的交互。MemOS的主要功能围绕记忆增强生成(MAG)展开,提供统一的API接口,并采用模块化的MemCube架构,支持文本记忆、用于加速LLM推理和上下文复用的激活记忆(KVCacheMemory),以及存储模型适应参数的参数记忆等多种记忆类型。MemOS具备高度可扩展性,便于用户轻松集成和定制各类记忆模块、数据源及LLM集成,其在LOCOMO基准测试中展现出显著的性能优势,尤其在时间推理任务中实现了159%的准确率提升,整体表现较基线提升近39%。
MemOS 1.0:星河(Stellar)状态已发布。在LoCoMo基准测试中,以大语言模型作为评判标准,MemOS在时间推理、多跳推理、开放域、单跳推理任务的平均得分上表现达到最先进水平。
与OpenAI相比,MemOS准确率提升38.97%,令牌使用量减少60.95%。
在多项推理任务中,MemOS的表现显著优于基准记忆解决方案。
| 模型 | 平均得分 | 多跳推理 | 开放域 | 单跳推理 | 时间推理 |
|---|---|---|---|---|---|
| OpenAI | 0.5275 | 0.6028 | 0.3299 | 0.6183 | 0.2825 |
| MemOS | 0.7331 | 0.6430 | 0.5521 | 0.7844 | 0.7321 |
| 提升幅度 | +38.98% | +6.67% | +67.35% | +26.86% | +159.15% |
在时间推理准确率上,MemOS较OpenAI基准提升159%。
在LOCOMO基准的五大任务中,大语言模型评判得分对比显示:MemOS-0630在所有任务类型中持续优于基准方法(LangMem、Zep、OpenAI、Mem0),尤其在多跳推理和时间推理场景中表现突出。
| 类别 | 方法 | 记忆令牌 | chunk/Top-K | 大语言模型评判得分 | F1 | RL | B1 | B2 | METEOR | BERT-F1 | Sim |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 单跳推理 | langmem | 165 | - | 68.21±0.06 | 41.72 | 44.80 | 35.61 | 24.73 | 36.42 | 43.77 | 76.25 |
| openai | 4141 | - | 73.33±0.20 | 47.26 | 51.44 | 40.34 | 30.02 | 43.96 | 48.53 | 76.56 | |
| mem0 | 2320 | 20 | 61.83±0.10 | 32.49 | 35.07 | 30.72 | 22.02 | 35.39 | 40.56 | 66.95 | |
| zep | 1176 | 20 | 50.42±0.29 | 36.96 | 41.45 | 27.38 | 18.81 | 28.49 | 35.26 | 69.84 | |
| memos-0630 | 1600 | 20 | 78.44±0.11 | 45.55 | 51.00 | 38.32 | 28.32 | 44.46 | 47.53 | 74.70 | |
| 多跳推理 | langmem | 185 | - | 56.74±0.29 | 36.03 | 36.32 | 27.22 | 17.03 | 29.14 | 33.03 | 73.05 |
| openai | 3924 | - | 60.28±0.00 | 35.24 | 34.87 | 23.84 | 16.55 | 27.90 | 32.36 | 68.82 | |
| mem0 | 2351 | 20 | 58.75±0.44 | 23.14 | 35.36 | 14.96 | 15.36 | 27.25 | 32.65 | 70.71 | |
| zep | 1163 | 20 | 42.20±0.77 | 33.10 | 24.63 | 25.91 | 8.49 | 17.38 | 25.15 | 64.26 | |
| memos-0630 | 1528 | 20 | 64.30±0.44 | 35.57 | 36.25 | 26.71 | 16.59 | 29.42 | 33.85 | 69.60 | |
| 开放域 | langmem | 209 | - | 49.65±1.30 | 29.79 | 30.54 | 23.17 | 11.72 | 21.03 | 32.27 | 67.34 |
| zep | 2276 | 20 | 32.99±1.30 | 19.76 | 20.62 | 11.04 | 10.59 | 20.33 | 28.38 | 58.59 | |
| openai | 4071 | - | 38.19±0.49 | 17.19 | 28.67 | 13.17 | 5.23 | 12.05 | 21.07 | 63.74 | |
| mem0 | 1141 | 20 | 45.83±0.00 | 27.80 | 15.88 | 20.01 | 6.18 | 14.20 | 19.37 | 57.53 | |
| memos-0630 | 1511 | 20 | 55.21±0.00 | 29.64 | 31.54 | 22.40 | 11.78 | 23.74 | 30.36 | 63.06 | |
| 时间推理 | langmem | 134 | - | 24.09±0.39 | 38.10 | 38.33 | 32.23 | 18.81 | 27.55 | 48.30 | 74.57 |
| zep | 1173 | 20 | 28.25±0.59 | 45.40 | 24.47 | 14.57 | 22.27 | 34.60 | 23.1 | 76.15 | |
| mem0 | 4048 | 20 | 19.11±0.29 | 17.59 | 46.90 | 38.15 | 11.87 | 13.81 | 17.59 | 59.53 | |
| openai | 2295 | - | 52.34±0.25 | 23.90 | 19.03 | 18.25 | 8.11 | 44.59 | 59.38 | - | |
| memos-0630 | 1655 | 20 | 73.21±0.25 | 53.67 | 53.69 | 46.37 | 29.69 | 43.45 | 48.48 | 76.97 | |
| 整体 | langmem | 165 | - | 55.76±0.16 | 39.18 | 41.01 | 32.59 | 21.27 | 32.28 | 42.03 | 74.76 |
| zep | 2318 | 20 | 41.62±0.21 | 26.88 | 28.91 | 21.55 | 13.90 | 22.51 | 28.84 | 64.36 | |
| openai | 4077 | - | 52.75±0.08 | 32.30 | 35.20 | 25.64 | 17.64 | 29.10 | 34.10 | 66.74 | |
| mem0 | 1171 | 20 | 64.57±0.06 | 43.46 | 46.04 | 35.97 | 24.72 | 37.60 | 43.54 | 74.61 | |
| memos-0630 | 1593 | 20 | 73.31±0.05 | 44.42 | 47.65 | 36.88 | 25.43 | 40.20 | 44.15 | 73.51 |
记忆增强生成(MAG):提供统一的记忆操作API,与大语言模型集成,通过上下文记忆检索增强聊天和推理能力。
模块化记忆架构(MemCube):灵活的模块化架构,能轻松集成和管理不同类型的记忆。
多种记忆类型:
• 文本记忆:用于存储和检索非结构化或结构化文本知识。
• 激活记忆:缓存键值对(KVCacheMemory),加速大语言模型推理和上下文重用。
• 参数记忆:存储模型适配参数(如LoRA权重)。
可扩展:能轻松扩展和自定义记忆模块、数据源和大语言模型集成。
以下是创建MemCube、从目录加载、访问记忆并保存的简单示例:
from memos.mem_cube.general import GeneralMemCube
# 从本地目录初始化MemCube
mem_cube = GeneralMemCube.init_from_dir("examples/data/mem_cube_2")
# 访问并打印所有记忆
print("--- 文本记忆 ---")
for item in mem_cube.text_mem.get_all():
print(item)
print("\n--- 激活记忆 ---")
for item in mem_cube.act_mem.get_all():
print(item)
# 将MemCube保存到新目录
mem_cube.dump("tmp/mem_cube")
MOS(记忆操作系统)是更高层次的编排层,管理多个MemCube并提供统一的记忆操作API。以下是使用MOS的简单示例:
from memos.configs.mem_os import MOSConfig
from memos.mem_os.main import MOS
# 初始化MOS
mos_config = MOSConfig.from_json_file("examples/data/config/simple_memos_config.json")
memory = MOS(mos_config)
# 创建用户
user_id = "b41a34d5-5cae-4b46-8c49-d03794d206f5"
memory.create_user(user_id=user_id)
# 为用户注册cube
memory.register_mem_cube("examples/data/mem_cube_2", user_id=user_id)
# 为用户添加记忆
memory.add(
messages=[
{"role": "user", "content": "I like playing football."},
{"role": "assistant", "content": "I like playing football too."},
],
user_id=user_id,
)
# 之后,检索用户的记忆
retrieved_memories = memory.search(query="What do you like?", user_id=user_id)
# 输出文本记忆:I like playing football, act_memories, para_memories
print(f"text_memories: {retrieved_memories['text_mem']}")
注意:目前MemOS主要支持Linux平台。Windows和macOS可能暂时会遇到问题。
pip install MemoryOS
要参与MemOS的开发,可克隆仓库并以可编辑模式安装:
git clone https://github.com/MemTensor/MemOS.git
cd MemOS
make install
要将MemOS与Ollama一起使用,先安装Ollama CLI:
curl -fsSL https://ollama.com/install.sh | sh
要使用基于transformers库的功能,确保已安装PyTorch(推荐使用CUDA版本以实现GPU加速)。
PowerPoint演示文稿智能生成工具 PowerPoint Slides Skill
金融 AI 新工具 FinClaw,免费提供1000+ 金融专属Skills
PPT Agent 演示文稿生成框架
端到端自主AI科研引擎 NanoResearch
CitationClaw 学术论文智能引用画像和分析报告
pi-autoresearch:pi自动化实验优化循环
OpenClaw Control Center:为OpenClaw用户(包括团队和个人)提供统一的监控和管理界面
OpenClaw Dashboard 仪表盘:让OpenClaw管理更简单
PaperBanana-CN 学术配图助手
996.ICU:工作 996, 生病 ICU