首页/新闻资讯/正文详情

MemOS 记忆删除接口(Delete Memory)深度解析:Cube 级物理清理与多维删除实战

发布时间:2026/9/23 23:23:20 来源:云帆数科 栏目:资讯中心
MemOS 记忆删除接口(Delete Memory)深度解析:Cube 级物理清理与多维删除实战
人工智能大模型Agent 记忆AI AgentRAG知识图谱dsh-plugin【免费下载链接】MemOSSelf-evolving memory OS for LLM AI Agents: ultra-persistent memory, hybrid-retrieval, and cross-task skill reuse, with 35.24% token savings and DeepSeek Harness support.项目地址https://gitcode.com/gh_mirrors/memos/MemOS点击查看免费下载本篇技术指南围绕 MemOS 开源仓库中POST /product/delete_memory接口展开讲解如何通过该接口在向量数据库与图数据库中同步执行记忆的物理删除以维护记忆库的准确性与合规性。读完本文你将掌握writable_cube_ids作用域隔离、按记忆 ID / 文件 ID / Filter 过滤器三种删除模式、MemoryHandler底层清理链路以及基于MemOSClient的实战调用写法。1. 接口概览维护记忆库准确性与合规性的核心入口接口路径POST /product/delete_memory功能描述本接口用于维护记忆库的准确性与合规性。当用户要求遗忘特定信息、数据过时或需要清理特定的上传文件时可以通过此接口在向量数据库与图数据库中同步执行物理删除。在 MemOS 中记忆不是孤立存在的一条记忆既会写入向量索引供相似度召回也可能在图数据库中沉淀为实体节点与关系。如果只清理其中一侧后续检索就可能召回“幽灵记忆”或矛盾事实。因此删除接口要求向量索引与图数据库的实体节点同步移除从源头上防止召回“幻觉”。从源码结构看该接口由 server_router.py 中路由/delete_memory绑定到memory_handler.handle_delete_memories随后统一委托给naive_mem_cube的文本记忆组件执行底层抹除形成「路由 → Handler → MemCube → 存储层」的完整调用链。2. 核心机理Cube 级物理清理在开源版中删除操作遵循严格的MemCube隔离逻辑作用域限制通过writable_cube_ids参数删除操作被严格锁定在指定的记忆体中绝不会误删其他 Cube 的内容。这与写入、检索接口共用同一套 Cube 权限模型保证“写到哪里、删到哪里”的边界一致。多维删除支持按记忆 ID精确、文件 ID关联删除以及Filter 过滤器条件逻辑三种维度并发执行清理。原子性同步删除操作由MemoryHandler触发确保底层向量索引与图数据库中的实体节点同步移除防止召回“幻觉”。需要特别说明的是仓库中handle_delete_memories的实现注释明确写着Now unified to delete from text_mem only (includes preferences)即删除逻辑统一收敛到文本记忆层text_mem偏好类记忆pref_mem仅在 Filter 模式下同步联动清理见 memory_handler.py。3. 关键接口参数核心参数定义如下参数名类型必填说明writable_cube_idslist[str]是指定执行删除操作的目标 Cube 列表。memory_idslist[str]否待删除的记忆唯一标识符列表UUID。file_idslist[str]否待删除的原始文件标识符列表将同步清理该文件产生的全部记忆事实记忆与摘要。filterobject否逻辑过滤器。支持按标签、元信息或时间戳批量删除符合条件的记忆。在 product_models.py 的DeleteMemoryRequest模型中还定义了三个进阶字段用于精细化删除user_id快速删除条件按user_id移除该用户全部记忆session_id快速删除条件按会话移除记忆同时提供conversation_id作为向后兼容的别名两者同时设置且不一致时会抛出ValueError见模型校验器normalize_session_aliasauto_cleanup_working内部参数默认False按memory_ids删除时是否根据元数据中的working_binding自动连带清理相关的 WorkingMemory 节点。3.1 删除模式的互斥约束源码对三种删除模式做了严格的互斥校验memory_handler.pymemory_ids、file_ids、filter/user_id/session_id三种模式有且只能提供一种否则返回失败响应Exactly one delete mode must be provided: memory_ids, file_ids, or filter/user_id/session_id.同时若传入了filter但内容为空对象且没有附带user_id/session_id快速条件也会被拒绝filter cannot be empty. Provide a non-empty filter or user_id/session_id.这是实际使用中最容易踩的坑不要同时传memory_ids和filter也不要传空filter。4. 工作原理MemoryHandler 调用链4.1 权限与路由系统通过user_id校验操作权限并将请求路由至MemoryHandler。HTTP 层由 server_router.py 的/delete_memory路由接管转交handle_delete_memories。4.2 定位存储根据writable_cube_ids定位底层的naive_mem_cube组件删除任务最终落在其text_mem文本记忆与pref_mem偏好记忆之上。4.3 分发清理任务handle_delete_memoriesmemory_handler.py内部按模式分发按 ID 清理直接调用naive_mem_cube.text_mem.delete_by_memory_ids(memory_ids)根据 UUID 在主数据库和向量库中执行记录抹除按文件清理调用text_mem.delete_by_filter(writable_cube_ids..., file_ids...)溯源该文件解析出的全部记忆按 Filter 清理先通过_merge_delete_filter合并用户过滤器与快速删除条件user_id/session_id再检索出符合条件的记忆 ID 集合执行批量物理移除若pref_mem存在还会同步pref_mem.delete_by_filter清理偏好记忆见 preference.py。底层实现方面文本记忆树组件提供了delete_by_memory_ids与delete_by_filter两个核心方法见 tree.py负责与向量库、图数据库对接执行真正的物理删除。4.4 状态反馈操作完成后返回成功状态相关内容将立即从检索接口的召回范围中消失。成功响应示例message: Memories deleted successfully, data: {status: success}失败响应示例message: Failed to delete memories, data: {status: failure}5. 快速上手示例使用MemOSClient执行不同维度的删除操作。以下代码可直接复制到你的 Python 环境中运行# 初始化客户端 client MemOSClient(api_key..., base_url...) # 场景一精确删除单条已知的错误记忆 client.delete_memory( writable_cube_ids[user_01_private], memory_ids[2f40be8f-736c-4a5f-aada-9489037769e0] ) # 场景二批量清理某一特定标签下的所有过时记忆 client.delete_memory( writable_cube_ids[kb_finance_2026], filter{tags: {contains: deprecated_policy}} )在仓库的 client.py 中MemOSClient.delete_memory还会在客户端侧做一次模式互斥校验exactly one delete condition is required只有memory_ids、user_id、agent_id、filter恰好命中一个时才允许发起请求进一步降低误删风险。6. 注意事项不可恢复性删除操作是物理删除。一旦执行成功该记忆将无法再通过检索接口召回。生产环境建议先通过检索/查询接口确认目标 ID 无误后再执行删除。文件关联性通过file_ids删除时系统会自动溯源并清理该文件解析出的事实记忆和摘要无需手动逐条枚举。模式互斥memory_ids、file_ids、filter三种模式只能选其一filter不能为空对象。作用域边界务必显式传入writable_cube_ids将删除锁定在目标 Cube 内避免越权清理。会话/用户级快速清理若需要按user_id或session_id快速删除可直接使用DeleteMemoryRequest中的快速删除条件字段无需构造复杂 Filter。7. 延伸阅读添加记忆接口记忆检索接口按 ID 查询记忆查询记忆集合删除接口实现memory_handler.py请求模型定义product_models.py路由注册server_router.py底层删除方法tree.py、preference.py赞分享人工智能大模型Agent 记忆AI AgentRAG知识图谱dsh-plugin【免费下载链接】MemOSSelf-evolving memory OS for LLM AI Agents: ultra-persistent memory, hybrid-retrieval, and cross-task skill reuse, with 35.24% token savings and DeepSeek Harness support.项目地址https://gitcode.com/gh_mirrors/memos/MemOS点击查看免费下载相关推荐MemOS 删除记忆接口Delete Memory完全指南MemCube 隔离下的物理删除、过滤批量清理与向量/图谱同步机制MemOS 删除记忆接口Delete Memory完全指南MemCube 隔离下的物理删除、过滤批量清理与向量/图谱同步机制 导读 本指南围绕 MemOS人工智能大模型Agent 记忆AI AgentRAG知识图谱dsh-pluginok-ww 鸣潮自动化助手实操指南后台战斗、一键日常与声骸托管ok ww 鸣潮自动化助手实操指南后台战斗、一键日常与声骸托管 ok ww 是一款基于图像识别的开源鸣潮自动化助手通过界面模拟完成后台自动战斗、一键日常和声GUI 自动化计算机视觉RPA人工智能OpenClaw 记忆溯源与删除机制用 memory forget 精确清除可追溯的记忆产物OpenClaw 记忆溯源与删除机制用 memory forget 精确清除可追溯的记忆产物 OpenClaw 的内置记忆系统 memory core 插件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Word页眉页脚删除失败?真正原因是节与链接机制
Word页眉页脚删除失败?真正原因是节与链接机制

1. 项目概述:为什么一个看似简单的操作,却让90%的Word用户反复踩坑?“删除Word文档中的页眉页脚”——这行字看起来平平无奇,甚至有点过时。但如果你最近处理过一份从PDF转来的投标书、一份带单位红头的公文扫描件、或者一份学生交… · 2026/9/23 23:23:13

AI PLC落地指南:存量设备改造与智能升级路径解析
AI PLC落地指南:存量设备改造与智能升级路径解析

前两个月,我在现场给一条老产线做节拍优化,甲方仪表工程师拿着七八个功能块问我这几个PID回路能不能联动降波动。我看了一眼,还是老掉牙的梯形图,注释早就丢光了。换在以前,我得抱着几百页程序慢慢捋寄存器地址&#x… · 2026/9/23 23:23:13

在 Laradock 上使用 Docker 运行 Kanboard:从本地到生产的完整指南
在 Laradock 上使用 Docker 运行 Kanboard:从本地到生产的完整指南

在 Laradock 上使用 Docker 运行 Kanboard:从本地到生产的完整指南 【免费下载链接】laradock Full PHP development environment for Docker. Run Laravel, Symfony, CodeIgniter, Phalcon, WordPress, Drupal, Magento, Moodle, or any PHP project with 70 pre-c… · 2026/9/23 23:22:48

JavaWeb购物车系统实现:基于Session存储的完整工程示例
JavaWeb购物车系统实现:基于Session存储的完整工程示例

简介:这是一份面向Java Web初学者的简易购物车系统案例,完整演示了基于Servlet与Tomcat的商品选购流程;案例来自课程设计或实验场景,需求中要求设计商品展示页面,点击“添加到购物车”超链接后进入Servlet记录选购信息… · 2026/9/24 0:01:28

面向对象综合训练:从图书管理系统掌握封装、继承与多态
面向对象综合训练:从图书管理系统掌握封装、继承与多态

面向对象学完语法之后,最尴尬的阶段就是“懂的都懂,一写就懵”。day09这个综合训练,说白了就是把前面封装、继承、多态、抽象这些概念,从“背概念”切换到“用概念”。这篇我把自己的练习过程完整拆开,从选题思路到代码… · 2026/9/24 0:01:16

JSP+JDBC+MySQL+Servlet图书管理系统实战:从源码部署到性能优化
JSP+JDBC+MySQL+Servlet图书管理系统实战:从源码部署到性能优化

简介:面向Java Web初学者,这份图书管理项目源码以图书信息增删改查为主线,完整整合了JSP、JDBC、MySQL与Servlet技术栈,演示了从页面展示、请求处理到数据库读写的基本路径,适合用来理解MVC分层与原生Web开发流程。压缩… · 2026/9/24 0:01:10

Lombok与JDK版本冲突引发NoSuchFieldError:根因排查与修复指南
Lombok与JDK版本冲突引发NoSuchFieldError:根因排查与修复指南

如果你在某个平平无奇的下午执行mvn clean package,看到编译进度条卡在注解处理阶段,随之蹦出这么一行:java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ...基本可以确认一件事&… · 2026/9/24 0:01:09

性能优化:为什么先优化结构比调参数更有效?N+1查询实战
性能优化:为什么先优化结构比调参数更有效?N+1查询实战

最近在做性能优化的时候,有个特别深的感触:大家遇到系统变慢,第一反应永远是加缓存、换SSD、调JVM参数、上更快的硬件,这些操作不是没用,但往往治标不治本。我之前接手过一个老项目,线上接口平均响应时间80… · 2026/9/24 0:01:03

Flutter数值映射库num_remap在鸿蒙开发中的应用与优化
Flutter数值映射库num_remap在鸿蒙开发中的应用与优化

1. Flutter 三方库 num_remap 鸿蒙适配实战指南在 OpenHarmony 生态中开发动态交互应用时,数值范围映射是个高频需求场景。无论是处理传感器数据、手势操作还是动画效果,都需要将原始数据转换为适合 UI 展示的数值范围。传统的手写映射代码不仅冗长难维护… · 2026/9/24 0:01:03

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码