MemOS 2.0「星尘 Stardust」正式发布:从知识库到可控的记

41 阅读10分钟

logo动态.jpg

过去一段时间中,MemOS 助力解决了大模型长期、可检索、可复用的记忆问题。

MemOS 2.0 · 星尘(Stardust) 版本中,我们迈出了关键一步——让记忆变得可控、可修正,并更自然地融入业务场景、开源部署及 AI 应用中。

MemOS 2.0 · 星尘(Stardust)不仅是能存记忆,更是可控的 AI 记忆系统:

  • 支持知识库;
  • 记忆可持续更新、可复用;
  • 多模态信息统一管理;
  • 智能体工具调用、文件与图片均可记忆;
  • 调度系统和本地部署性能提升。

正如 “星尘(Stardust)” 寓意,每一次对话、每一次反馈、每一次工具调用,都是 AI 演化过程中的一粒星尘,见微知著,逐渐构建起智能体的长期经验系统。

一、知识库能力上线

我们正式引入 知识库(Knowledge Base)能力,支持开发者将业务文件直接接入 MemOS,形成可检索、可复用的长期知识资产。

亮点

  • 支持 上传文件 / URL 自动解析;
  • 一个知识库可 被多个项目共享使用;
  • 对话持续进行时,记忆可动态更新与修正。
云服务代码示例

Step 1: 创建知识库并上传文件

import json
import os
import requests
# 直接在这里填写你的 Key 
API_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 os
import requests
import json
os.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_server


curl --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,自动解析并切分为可检索记忆块,支持文档问答或摘要生成。
  • 图片记忆:对话或文件中的图片可生成视觉记忆,与文本语境自动对齐,可用于图表分析、视觉问答等场景。
特性与优势

表格.png

云服务代码示例

import os
import requests
import json
# 替换成你的 MemOS API Key
os.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_server


curl --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 os
import requests
import json
# 替换成你的 MemOS API Key
os.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_server


curl --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 os
import requests
import json
# 替换成你的 MemOS API Key
os.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_ids


curl -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_ids
curl -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 云服务支持记忆过滤

  • 支持添加消息时自定义 taginfo 字段,为转化的记忆打上自定义标签;
  • 检索记忆时可使用 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_memoryadd_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: memos-dashboard.openmem.net/cn/apikeys/
  • MEMOS_USER_ID: 确定性的用户自定义个人标识符。
    • 对于同一用户,该环境变量需要在不同设备/客户端中保持一致;
    • 请不要使用随机值、设备 ID 或聊天会话 ID 作为用户标识符;
  • 推荐使用:个人 email 地址、姓名全称或员工 ID 作为用户标识符。

七、系统升级与轻量化部署

MemOS 2.0 “星尘”在任务调度和本地部署方面进行了核心升级,提升了多租户环境下的系统稳定性、任务处理公平性以及本地部署的灵活性和效率。

7.1 调度系统升级

我们对 调度与底层存储 进行了深度重构:

  • 高并发 API 调用优化;
  • 调度系统增强,Pending 任务自动恢复;
  • 数据库连接管理优化,支持批量插入(Batch Insert),提升多文件写入效率。

微信图片_2025-12-26_111329_232.png

云平台用户在大规模调用场景下,将体验到更快、更稳定的记忆写入与检索性能。

AddMessage 写入速度更快,SearchMemory 检索更稳、更准。

7.2 轻量化部署

  • 精简包:去除大型依赖,快速部署
  • 全量包:完整依赖镜像,支持生产级部署
  • 本地优化:最新启动命令 + env 配置简化,支持快速模式和完整模式

640.png

写在最后:为什么叫 星尘(Stardust)?

我们希望通过 星尘(Stardust),更好传达 MemOS 2.0 版本带来的不同状态和感知:

每一条对话、一次反馈、一次工具调用 都会成为 AI 演化过程中的一粒星尘。

MemOS 2.0 不只是“存记忆”, 而是在构建 AI 的长期经验系统。


✨ 老规矩!

🚀 一键体验云平台

立即进入 MemOS 云平台,体验毫秒级记忆与偏好召回能力。

memos-dashboard.openmem.net/

💾 如果你喜欢我们的工作,请一键三连:

⭐️ Star 🍴 Fork 👀 Watch

并欢迎通过 Issue 提交你的使用反馈、优化建议或 Bug 报告。

github.com/MemTensor/MemOS/issues


关于 MemOS

MemOS 为 AGI 构建统一的记忆管理平台,让智能系统如大脑般拥有灵活、可迁移、可共享的长期记忆和即时记忆。

作为记忆张量首次提出“记忆调度”架构的 AI 记忆操作系统,我们希望通过 MemOS 全面重构模型记忆资源的生命周期管理,为智能系统提供高效且灵活的记忆管理能力。