MemOS 2.0「星尘 Stardust」正式发布:从知识库到可控的记忆体系
过去一段时间中,MemOS 助力解决了大模型长期、可检索、可复用的记忆问题。
在 MemOS 2.0 · 星尘(Stardust) 版本中,我们迈出了关键一步——让记忆变得可控、可修正,并更自然地融入业务场景、开源部署及 AI 应用中。
MemOS 2.0 · 星尘(Stardust)不仅是能存记忆,更是可控的 AI 记忆系统:
-
支持知识库;
-
记忆可持续更新、可复用;
-
多模态信息统一管理;
-
智能体工具调用、文件与图片均可记忆;
-
调度系统和本地部署性能提升。
正如 “星尘(Stardust)” 寓意,每一次对话、每一次反馈、每一次工具调用,都是 AI 演化过程中的一粒星尘,见微知著,逐渐构建起智能体的长期经验系统。
一、知识库能力上线
我们正式引入 知识库(Knowledge Base)能力,支持开发者将业务文件直接接入 MemOS,形成可检索、可复用的长期知识资产。
亮点
-
支持 上传文件 / URL 自动解析;
-
一个知识库可 被多个项目共享使用;
-
对话持续进行时,记忆可动态更新与修正。
云服务代码示例
Step 1: 创建知识库并上传文件
import jsonimport osimport requests# 直接在这里填写你的 KeyAPI_KEY = "YOUR API KEY"BASE_URL = "https://memos.memtensor.cn/api/openmem/v1"HEADERS = {"Content-Type": "application/json", "Authorization": f"Token {API_KEY}"}# 1) 创建知识库create_payload = {"knowledgebase_name": "财务报销知识库","knowledgebase_description": "本公司所有财务报销相关的知识汇总",}create_resp = requests.post(f"{BASE_URL}/create/knowledgebase", headers=HEADERS, json=create_payload, timeout=15)create_data = create_resp.json()kb_id = (create_data.get("knowledgebase_id")or create_data.get("id")or create_data.get("data", {}).get("knowledgebase_id")or create_data.get("data", {}).get("id"))if not kb_id:raise SystemExit(f"创建知识库失败,返回体: {create_data}")# 2) 上传文件到上面创建的知识库upload_payload = {"knowledgebase_id": kb_id,"file": [{"content": "https://cdn.memtensor.com.cn/file/软件采购报销制度.pdf"}],}upload_resp = requests.post(f"{BASE_URL}/add/knowledgebase-file", headers=HEADERS, json=upload_payload, timeout=30)print("create ->", json.dumps(create_data, ensure_ascii=False))print("upload ->", json.dumps(upload_resp.json(), ensure_ascii=False))
Step 2: 知识库检索
import osimport requestsimport jsonos.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"data = {"user_id": "memos_user_123","conversation_id": "1211","query": "帮我查一下软件采购报销额度。","knowledgebase_ids":["你的知识库ID"]#添加可以访问的知识库id}headers = {"Content-Type": "application/json","Authorization": f"Token {os.environ['MEMOS_API_KEY']}"}url = f"{os.environ['MEMOS_BASE_URL']}/search/memory"res = requests.post(url=url, headers=headers, data=json.dumps(data))json_res = res.json()print(json.dumps(json_res, indent=2, ensure_ascii=False))
开源版本
💡TIPS:
-
仅支持记忆体 ID;
-
鉴权逻辑通过 writable_cube_ids 与 readable_cube_ids 鉴权,原始 mem_cube_id 也可兼容。
代码示例:向某个记忆库中添加文件请求
# 请先进行本地部署,部署文档见:https://docs.openmem.net/cn/open_source/getting_started/rest_api_servercurl --location --request POST 'http://0.0.0.0:8001/product/add'\--header 'Content-Type: application/json' \--data-raw '{"user_id": "memos_user_123","writable_cube_ids": ["demo_add_cube_001"],"messages": [{"type": "file","file": {"file_id": "file_id_001","file_data": "这是文件的纯文本内容...","filename": "xxx.pdf"}}]}'
二、全面升级:多模态与 Agent 记忆能力全面开启
MemOS 2.0 在多模态记忆方面进行了重大升级,使智能体能够同时理解和记忆文本、图片、文件和工具调用等多种信息类型,从而提升复杂任务的处理能力。
核心功能
-
工具记忆(Tool Memory):记录 Agent 工具调用历史并抽取经验,支持任务决策与组合调用。
-
文件与 URL 解析:上传文件或提供 URL,自动解析并切分为可检索记忆块,支持文档问答或摘要生成。
-
图片记忆:对话或文件中的图片可生成视觉记忆,与文本语境自动对齐,可用于图表分析、视觉问答等场景。
特性与优势
云服务代码示例
import osimport requestsimport json# 替换成你的 MemOS API Keyos.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"data = {"user_id": "memos_user_123","conversation_id": "1211","messages": [{"role": "user","content": [{"type": "text","text": "我正在研究MemOS。"},{"type": "image_url","image_url": {"url": "https://cdn.memtensor.com.cn/img/1758706201390_iluj1c_compressed.png"}}]},{"role": "assistant", "content": "好的,需要我为您解答吗?"}]}headers = {"Content-Type": "application/json","Authorization": f"Token {os.environ['MEMOS_API_KEY']}"}url = f"{os.environ['MEMOS_BASE_URL']}/add/message"res = requests.post(url=url, headers=headers, data=json.dumps(data))print(json.dumps(res.json(), indent=2, ensure_ascii=False))
开源代码示例(添加包含文件和图片的对话)
# 请先进行本地部署,部署文档见:https://docs.openmem.net/cn/open_source/getting_started/rest_api_servercurl --location --request POST 'http://0.0.0.0:8001/product/add' \--header 'Content-Type: application/json' \--data-raw '{"user_id": "memos_user_123","writable_cube_ids": ["demo_add_cube_001"],"messages": [{"role": "user","content": [{"type": "text","text": "请同时分析这个报告和图表。"},{"type": "file","file": {"file_id": "file_789","filename": "analysis_report.pdf","file_data": "https://example.com/documents/xxx.pdf"}},{"type": "image_url","image_url": {"url": "https://example.com/xxxxx.png","detail": "auto"}}],"chat_time": "2025-11-24T10:23:00Z","message_id": "mixed-1"}],"info": {"source_type": "report_plus_chart"}}'
三、记忆可控性:反馈修正 & 精准删除
“能记住”之外,记忆必须是可控的。
MemOS 2.0 不仅能记忆,还让记忆可控、可修正:
-
反馈修正(add_feedback):支持自然语言替换、补充或小幅语义调整。
-
删除记忆(delete_memory):可通过 Memory ID 或 File ID 精准删除,避免“脏记忆”影响模型行为。
-
记忆过滤:自定义
tag/info,支持逻辑、比较、集合运算过滤检索结果。
3.1 反馈修正(add_feedback)
用户可对已有记忆进行有效性标注或纠错反馈,e.g.:
“将爱丽丝统一替换为艾丽丝”、 “补充,还会使用在教育场景”、“错误,上个月的报销金额为500元”。
代码示例
云服务
import osimport requestsimport json# 替换成你的 MemOS API Keyos.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"data = {"user_id": "memos_user_123","conversation_id": "1211","feedback_content": "设计类软件的采购上限改为1200元","feedback_time": "2025-12-02 10:10:10","allow_knowledgebase_ids": ["basebXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"] # 知识库 ID}headers = {"Content-Type": "application/json","Authorization": f"Token {os.environ['MEMOS_API_KEY']}"}url = f"{os.environ['MEMOS_BASE_URL']}/add/feedback"res = requests.post(url=url, headers=headers, data=json.dumps(data))print(json.dumps(res.json(), indent=2, ensure_ascii=False))
开源版本
# 请先进行本地部署,部署文档见:https://docs.openmem.net/cn/open_source/getting_started/rest_api_servercurl --location --request POST 'http://0.0.0.0:8001/product/feedback' \--header 'Content-Type: application/json' \--data-raw '{"user_id": "memos_user_123","writable_cube_ids": ["demo_cube_001"],"history": [{"role": "user", "content": "安全与防护类软件采购上限多少元"},{"role": "assistant", "content": "为2333元"}],"feedback_content": "错了,实际上是1000元"}'
3.2 删除记忆(Delete Memory)
支持通过 Memory ID / File ID 精准删除记忆,避免“脏记忆”长期影响模型行为。
亮点
-
支持批量删除知识库中的文件,系统会自动级联删除相关记忆;
-
支持批量删除记忆。
代码示例
云服务
import osimport requestsimport json# 替换成你的 MemOS API Keyos.environ["MEMOS_API_KEY"] = "YOUR_API_KEY"os.environ["MEMOS_BASE_URL"] = "https://memos.memtensor.cn/api/openmem/v1"data = {"user_ids": ["memos_user_123"],"memory_ids":["4a50618f-797d-4c3b-b914-94d7d1246c8d"]}headers = {"Content-Type": "application/json","Authorization": f"Token {os.environ['MEMOS_API_KEY']}"}url = f"{os.environ['MEMOS_BASE_URL']}/delete/memory"res = requests.post(url=url, headers=headers, data=json.dumps(data))print(f"result: {res.json()}")
开源框架
# 请先进行本地部署,部署文档见:https://docs.openmem.net/cn/open_source/getting_started/rest_api_server# 删除指定memory_idscurl -X POST "http://0.0.0.0:8001/product/delete_memory" \-H "Content-Type: application/json" \-d '{"writable_cube_ids": ["xxxxxxxx", "xxxssssa"],"memory_ids": ["e80f02ea-b53c-4166-aa7d-fd171c49b94b"]}'# 删除指定 file_idscurl -X POST "http://0.0.0.0:8001/product/delete_memory" \-H "Content-Type: application/json" \-d '{"writable_cube_ids": ["xxxxxxxx", "xxxssssa"],"file_ids": ["file_id1", "file_id2", "file_id3"]}'
3.3 云服务支持记忆过滤
-
支持添加消息时自定义
tag、info字段,为转化的记忆打上自定义标签; -
检索记忆时可使用
filter参数对检索结果进行过滤,支持比较运算、逻辑运算、集合运算等多种运算符。
代码示例
Step 1: 在添加消息时传入相关可被过滤的字段及值
{"user_id": "memos_user_123","conversation_id": "memos_conversation_123","messages": [{"role": "user","content": "我喜欢看科幻题材的电影,最喜欢的是《星际穿越》。"},{"role": "assistant","content": "这是一个很酷的爱好!要我多帮你推荐几部科幻电影吗?"}],"tags": ["爱好", "电影偏好"],"info": {"keyword": "科幻电影"}}
Step 2: 检索过滤
{"user_id": "memos_user_123","query": "我的爱好是什么?","filter": {"and": [{"keyword": "科幻电影"},{"create_time": {"gt": "2025-01-01"}}]}}
四、开源版本 Chat 接口正式上线
开源版本新增 Chat 接口,支持:
-
非流式 / 流式交互
-
自动结合个人记忆与知识库进行回复
-
单轮对话结束后自动写入记忆
代码示例
#请先进行本地部署,部署文档见:https://docs.openmem.net/cn/open_source/getting_started/rest_api_server# 非流式curl -X POST "http://0.0.0.0:8001/product/chat/complete" \-H "Content-Type: application/json" \-d '{"user_id": "memos_user_123","readable_cube_ids": ["xxx"],"writable_cube_ids": ["xxx"],"query": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?","model_name_or_path": "deepseek-r1","add_message_on_answer": true}'# 流式curl -N -X POST "http://0.0.0.0:8001/product/chat/stream" \-H "Content-Type: application/json" \-d '{"user_id": "memos_user_123","readable_cube_ids": ["xxx"],"writable_cube_ids": ["xxx"],"query": "我暑假定好去广州旅游,住宿的话有哪些连锁酒店可选?","model_name_or_path": "deepseek-r1","add_message_on_answer": true}'
五、开源版本代码更新啦!
在开源版本里,除了以上新增/更新的功能外,我们针对近期发现的 bug 进行了统一修复。
5.1 BUG 修复
5.1.1 记忆调度任务老接口兼容性问题
原因:Memcube 调整为单例模式,旧版记忆更新任务调用老接口时,误读默认记忆数据库,导致返回非当前用户数据。
修复效果:确保用户记忆隔离正确。
5.1.2 记忆更新任务日志打印问题
原因:Memcube 工作记忆接口返回过多条目,掩盖新添加工作记忆,日志无法正确展示。
修复效果:限制接口返回数量,确保新增记忆在日志中正常呈现。
六、MCP 能力升级:记忆即工具
MCP 新增 delete_memory 和 add_feedback 工具:
-
删除特定用户的记忆
-
提交用户反馈,包括 Agent ID、App ID、允许公开或知识库限制等
MCP 配置示例
{"mcpServers": {"memos-api-mcp": {"args": ["-y","@memtensor/memos-api-mcp@latest"],"command": "npx","env": {"MEMOS_API_KEY": "xxxxxx","MEMOS_CHANNEL": "MCP","MEMOS_USER_ID": "xxxxxx"}}}}
Tips:
-
通过控制台申请 MEMOS_API_KEY:
https://memos-dashboard.openmem.net/cn/apikeys/
-
MEMOS_USER_ID: 确定性的用户自定义个人标识符。
-
对于同一用户,该环境变量需要在不同设备/客户端中保持一致;
-
请不要使用随机值、设备ID或聊天会话ID作为用户标识符;
-
推荐使用:个人email地址、姓名全称或员工ID作为用户标识符。
-
七、系统升级与轻量化部署
MemOS 2.0 “星尘”在任务调度和本地部署方面进行了核心升级,提升了多租户环境下的系统稳定性、任务处理公平性以及本地部署的灵活性和效率。
7.1 调度系统升级
我们对 调度与底层存储 进行了深度重构:
-
高并发 API 调用优化;
-
调度系统增强,Pending 任务自动恢复;
-
数据库连接管理优化,支持批量插入(Batch Insert),提升多文件写入效率。
云平台用户在大规模调用场景下,将体验到更快、更稳定的记忆写入与检索性能。
AddMessage 写入速度更快,SearchMemory 检索更稳、更准。
7.2 轻量化部署
-
精简包:去除大型依赖,快速部署
-
全量包:完整依赖镜像,支持生产级部署
-
本地优化:最新启动命令 + env 配置简化,支持快速模式和完整模式
写在最后:为什么叫 星尘(Stardust)?
我们希望通过 星尘(Stardust),更好传达 MemOS 2.0 版本带来的不同状态和感知:
每一条对话、一次反馈、一次工具调用
都会成为 AI 演化过程中的一粒星尘。
MemOS 2.0 不只是“存记忆”,
而是在构建 AI 的长期经验系统。
关于 MemOS
MemOS 为 AGI 构建统一的记忆管理平台,让智能系统如大脑般拥有灵活、可迁移、可共享的长期记忆和即时记忆。
作为记忆张量首次提出“记忆调度”架构的 AI 记忆操作系统,我们希望通过 MemOS 全面重构模型记忆资源的生命周期管理,为智能系统提供高效且灵活的记忆管理能力。
