https://docs.mem0.ai/openmemory/overview
Mem0这边推出了一个用来管理memory的MCP server,应该是希望通过这套接口统一一下Memory相关场景的接口。
文档中写了他的特点:
* Cross-Client Memory Access
* Store context in Cursor and retrieve it later in Claude or Windsurf without repeating yourself.
* Fully Local Memory Store
* All memory is stored on your machine. Nothing goes to the cloud. You maintain full ownership and control.
* Unified Memory UI
* The built-in OpenMemory dashboard provides a central view of everything stored. Add, browse, delete and control memory access to clients directly from the dashboard.
从他提出的这一套接口来看,其实和上面的特性关联不大:
* 跨越应用使用memory其实是MCP的易用性带来的
* fully local是实现相关
* unified memory ui更像是凑数的
接口具体包括:
* add_memories: Store new memory objects
* search_memory: Retrieve relevant memories
* list_memories: View all stored memory
* delete_all_memories: Clear memory entirely
有几个点可以看看:
* 接口比较简单,基本上大部分Memory相关的产品都可以囊括进去
* Letta这个不太行,因为那边有一套常驻在context window的memory。不过这里应该是融合而非替代关系
* memobase的是针对用户做profile的,也无法融入进去
* 其实不看删除的话,基本上就是search, list最近的memory,以及增加相关memory
代码实现在这里:https://github.com/mem0ai/mem0/tree/main/openmemory
里面除了有一套mcp的接口,其实在对应的http server上还提供了一些别的memory相关的操作。不过基本上也都是对memory的增删改查,带了一些更高级的功能,可能也是mem0夹带私货之类的,文档中并没有介绍这块相关的接口。
* 多了对memory的更新,以及一些高级的查询操作。
实现上是复用了mem0的代码。
* 不过这里外面还套了一个db用来保存访问相关的操作,以及处理一些访问权限相关的。
* 权限这块可能是因为mem0内部没有做权限相关的控制,所以放到了外面做。
* 在访问memory的时候,会判断这个client能够读取当前user的那些数据。比如我在chatgpt里的对话,不能让cursor全都访问了,可能只去访问code相关的
* 这里会在mem0内部vector search的时候,加上一个vector search的filter,用来过滤memory
* 在把memory写入数据库之后,还会做一下分类,记录某一个类别下都有哪些memory。这里在mcp这一层没有直接用到,而是在另一套接口中。可以根据类别做filter。
差不多就这些
* 我个人感觉目前这套接口用处不大,主要是memory场景相对来说更加定制化一些,相比于通用的RAG的话,可能会多一些用户画像之类的接口。并且现在这套接口的search也比较简单,不一定能满足大众的需求,不够灵活。
* 至少我作为开发者如果希望使用memory的话,可能还是会看一下自己的场景,然后可以直接针对mem0去包一个mcp。
* 跨越应用的memory,这个可能确实有这样的需求:
* 针对用户画像相关的。相当于在多个地方聊天,去组合用户画像,是下面历史事件的一个子集了。比较依赖基础模型提供商,看他们愿不愿意暴露memory。
* 针对历史事件,这个对接起来可能还有点难度,不过如果能够做好的话可能确实是有受众的。
* agent类的可能有一点,我直观想到的就是agent根据memory,知道我都知道什么,那么解释的时候就可以有针对性,关注我不知道的内容去详细解释。
* 比如,在解释一篇paper的时候,就可以说,这篇paper的思路和你之前看过的xxx类似,在xxx地方有一些改动。
* 根据对方掌握的上下文去聊天,对一个人来说也是一个比较关键的能力。
* 上面我的看法把画像(用户偏好)和知识分离开了,只是想到哪里就写到哪里了,没有做很严谨的思考。
文章评论