MemOS 产品更新|知识库检索更精准,记忆更省、更智能

21 阅读6分钟

293b33d01ed0642433bda4d71f3e9bd3.jpg 在 v2.0.2 中,我们围绕「知识库问答效果」与「记忆系统内部机制」两条主线,对检索、工具记忆与事实记忆处理流程进行了进一步优化,同时补充了官方最佳实践文档,帮助开发者更快构建可落地的 MemOS 应用。

本次发布汇总

cba9808e600b8374f532e0a256c5edf3.png

一、优化知识库文档细节召回能力

在本次版本中,我们进一步提升了检索接口对文档内容细节的召回能力,使基于知识库的问答结果更加完整、精准。

具体改进包括:

  • 引入对文档知识内容的独立排序算法;
  • 优化原文引用策略,以增强回答中的细节覆盖。

在「MemOS-开源社区交流群」中运行的客服助手 「客服-小忆」,正是基于 MemOS 构建的知识库问答助手。在本次优化后,「客服-小忆」能够在回答 MemOS 相关问题时,覆盖更多文档细节,减少遗漏。

BEFORE

5896ce8356167e1fc9c1f993bad71504.png

AFTER

fb1d0f98747cb4ac09b34a51be4b6878.png

二、「知识库问答助手」搭建教程发布

本次更新同步发布了 「知识库问答助手」最佳实践文档。教程提供了一个开箱即用的 Demo 流程,完整覆盖:

  • 创建知识库;
  • 上传文档;
  • 行示例代码;
  • 构建基于 MemOS 的知识库问答助手。

在传统 RAG「只检索、不记忆」的基础上,该方案引入了 MemOS 的记忆能力,使问答系统能够在多轮交互中持续积累与利用上下文信息。

教你搭建属于你自己的知识库助手:

memos-docs.openmem.net/cn/usecase/…

如果你想体验「客服-小忆」,欢迎加入「MemOS-开源社区交流群」哦 ~

bf1fe793ca30c1460c32c8a13665da8d_副本.png

三、优化工具记忆机制

在 v2.0.2 中,我们对工具记忆进行了两项关键优化:

  • 增加针对调用轨迹的程序性经验,用于辅助 Agent 更好地完成任务;
  • 对工具 schema 信息进行压缩与去重,避免重复添加 ToolSchemaMemory,优化后 Token 输入压缩率大于 50%。

优化后,一条完整的工具记忆示例如下

{
  "id": "4b208707-991a-481c-9dd6-c7f0577ff371",
"tool_type": "ToolTrajectoryMemory",
"tool_value": "User asked about the current weather in Beijing -> Tool 'get_weather' was called with the parameter 'location' set to 'Beijing' -> The tool returned the weather information: temperature is 7°C and condition is Cloudy.",
"tool_used_status": [
    {
      "used_tool": "get_weather",
      "error_type": "",
      "success_rate": 1.0,
      "tool_experience": "The 'get_weather' tool requires a valid location parameter and provides current weather information for that location." #新增:当前轨迹中该工具的经验。
    }
  ],
"create_time": 1768390489180,
"conversation_id": "demo-conv-id",
"status": "activated",
"update_time": 1768390489181,
"relativity": 0.47883897395535013,
"experience": "when encountering weather inquiry tasks, then ensure to call the 'get_weather' tool with the correct location parameter." #新增:整个轨迹的程序性经验,作为指导任务完成的总体经验。
}

四、优化事实记忆合并与归档机制

在原有记忆写入(add)与召回(recall)链路中,存在以下问题:

  • 新记忆只是对已有事实的重复表述,仍会生成新节点;
  • 召回阶段未强制过滤失效或应归档的记忆。

本次更新通过 “归档重复记忆”机制 对该问题进行了修复。

添加记忆阶段流程

Step 1:LLM 正常抽取候选 memory

Step 2:对候选 memory 做相似 embedding 召回,得到可疑重复集合

Step 3:使用 LLM 判定是否需要合并:

  • 需要:生成更优记忆节点,并在 merged_from 中记录旧记忆
  • 不需要:保持原样

Step 4:将被合并的旧记忆置为归档状态,添加新记忆

检索阶段规则

  • 仅召回 status="activated" 的记忆节点;
  • 已归档(archived)的记忆不再参与召回。

云服务中添加消息示例

# 1) 分别多次添加消息,制造相似/重复内容传入
add_payloads = [
    {
        "user_id": user_id,
        "conversation_id": "001",
        "messages": [
            {"role": "user", "content": "我叫Tom!喜欢吃胡萝卜也喜欢苹果。"},
            {"role": "assistant", "content": "好的收到"}
        ]
    },
    {
        "user_id": user_id,
        "conversation_id": "002",
        "messages": [
            {"role": "user", "content": "我叫Tom!再强调一遍,我喜欢吃胡萝卜也喜欢苹果。"},
            {"role": "assistant", "content": "好的收到"}
        ]
    },
    {
        "user_id": user_id,
        "conversation_id": "003",
        "messages": [
            {"role": "user", "content": "我是Tom,我不喜欢胡萝卜了。"},
            {"role": "assistant", "content": "收到,胡萝卜不喜欢。"}
        ]
    }
]

开源项目中添加消息示例

# 1) 分别多次添加消息,制造相似/重复内容传入
add_payloads = [
    {
        "user_id": user_id,
        "mem_cube_id": cube_id,
        "memory_content": "我叫Tom!喜欢吃胡萝卜也喜欢苹果。",
        "session_id": "conv_001"
    },
    {
        "user_id": user_id,
        "mem_cube_id": cube_id,
        "memory_content": "我叫Tom!再强调一遍,我喜欢吃胡萝卜也喜欢苹果。",
        "session_id": "conv_002"
    },
    {
        "user_id": user_id,
        "mem_cube_id": cube_id,
        "memory_content": "我是Tom,我不喜欢胡萝卜了。",
        "session_id": "conv_003"
    }
]

期望检索结果

# 2) 搜索,查看返回的记忆列表是否有合并/去重效果,其中检索回的最新记忆:
[conv:003] id=49f2eb64-693c-41af-a75e-687e197e5fe2 | memory=用户的名字是Tom,他喜欢吃苹果,不喜欢胡萝卜了。

五、获取记忆接口优化(get/memory)

在 v2.0.2 中,get/memory 接口能力进一步增强:

  • 新增 include_tool_memory 参数,用于控制是否返回工具记忆;
  • 新增 filter 字段,支持返回特定筛选条件下的记忆;
  • 修复 include_preference=False 时的调用错误。

云服务调用示例

data = {
    "user_id": "memos_user_123",
    "page": 1, # 可选,默认值为1
    "size": 10, # 可选,默认值为10
    "include_preference": True, # 可选,默认值为true
    "include_tool_memory": True  # 可选,默认值为true
  }

开源项目调用示例

data = {
    "user_id": "test_user_xxx",
    "mem_cube_id": "test_user_xxx",
    "include_preference": true,
    "include_tool_memory": true
  }

六、开源社区更新

New Features

  • 官方文档更新「基于知识库开发问答助手」最佳实践。

Improvements

  • 工具记忆新增调用轨迹程序性经验;
  • Tool schema 信息压缩与去重,压缩率大于 50%;
  • get_memory 接口支持返回工具记忆;
  • 提升知识库文档细节召回能力。

Bug Fixes

  • 修复 get_memory 在 include_preference=False 时的调用错误;
  • 修复 Local Queue 启用时 Status Tracker Redis 配置失效问题;
  • 修复 Redis 6.2.0 以下版本 XAUTOCLAIM 兼容性问题。


✨ 老规矩!

🚀 一键体验云平台

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

memos-dashboard.openmem.net/quickstart/?entrance=wechat

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

⭐️ Star 🍴 Fork 👀 Watch

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

github.com/MemTensor/MemOS/issues


关于 MemOS

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

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

b9b39df96904608aa55862626fbb5007.jpg转存失败,建议直接上传图片文件