这是一篇手把手教你
为智能体赋予长期记忆的教程
hello,我是梦飞。
最近想要给自己的项目添加长期记忆能力,在多方对比后,我发现了一个记忆的准确度高、速度快、成本低,专门用来适配AI记忆能力的开源项目——memU
他能够帮助我们快速的构建一个记忆库,让AI像人一样拥有长期的记忆能力,让AI能在每一次互动中与用户共同成长。
智能体记忆框架解决方案,在市面上其实已经有了几个,比如memobase、mem0和zep,但是在们的调研和对比后,我选择了memU。
其中,最大也是最核心的差异点就是:memU的记忆模块是一个agent。它能够自主维护用户的“记忆文件系统”,而不是生硬的存取。
在此基础上,memU还有一些自己独特的记忆结构:
-
“文件系统”式的记忆 所有用户交互都会通过一个记忆代理(memory agent)进行处理,该代理会对内容进行索引、分类,并将其转化为结构化的记忆文档
-
链接与知识图谱构建 MemU 将每一条记忆视作更大知识图谱的一部分。它会自动检测跨时间、跨模态的关联,构建一个动态的相关体验网络,就像一个可超链接跳转的文档系统,支持查询与遍历
-
自我反思与演化 在离线时,后台记忆代理会执行分析,以优化和整合记忆簇。这个过程类似于人类的反思:它会合并冗余信息、总结主题、填补知识空白,并推断看似无关经历之间的隐含联系
-
情境化保留与遗忘 并非所有记忆都同等重要。MemU 会根据使用模式与检索情境,持续地对记忆条目进行优先级调整,从而实现自适应的记忆保留与有序遗忘
因为以上特性,让memU与其他项目对比,能够在单跳、多跳、开放域、时序和整体体验等维度指标中均获得了远超其他项目的得分。
所以,memU非常适合在各种需要智能体拥有像人一样记忆能力的场景下使用,比如: AI助手、AI伴侣、AI游戏、AI机器人等等。
memU都可以为他们提供长期记忆的能力,比如:回忆过去的会议、喜爱偏好、朋友、共同故事、情感事件等等内容,从而实现具备上下文感知与持续个性化的能力。
我想我已经介绍清楚了memU。
同时,AI智能体记忆力的重要性不言而喻,对于小伙伴们自然不必啰嗦。
此项目的官方文档是从一个开发者角度去写的纯代码内容。开发能力不足的小伙伴看到源文件肯定会很懵,即使是有AI的辅助,可能也有心无力。
我的粉丝我来宠,本次教程依然是手把手教程。
不仅有完整的本地部署教程,还教你如何把memU接入到coze或者fastgp/dify等一切LLMops平台中,让你能够在熟悉的工作流环境中完整的使用memU提供的强大记忆能力。
如果你现在不方便操作,建议先点赞收藏,防迷路
话不多说,我们开始
项目开源地址:https://github.com/NevaMind-AI/memU
教程共6个步骤,约20分钟完成。
如果你要本地部署memU,需要做前4步:
-
1、准备一台服务器
-
2、安装Docker和Docker Compose
-
3、准备一个LLM的密钥
-
4、部署memU源码。
如果你不需要本地部署,可跳过上述步骤,从第五步开始:
-
5、打开memU页面,配置账号
-
6、把memU接入外部LLMops平台以Coze为例
-
7、完成
对于服务器的购买、宝塔的安装、Docker和Docker Compose的教程我们已经发了很多次了,所以不再赘述,如果有需要的可以前去这篇《保姆级 | Coze开源版本地部署教程,一步一图,小白可用》查看服务器的购买步骤、宝塔安装和模型密钥的获取方式。
我们直接从源码部署开始:
四、memU源码部署
1、打开宝塔,在文件的位置,进入home文件夹下,新建一个memU文件夹。
2、然后去:https://github.com/NevaMind-AI/memU,下载源文件,建议顺手点个Star。
3、把下载好的文件,直接拖入memU文件夹中
4、上传后直接右键解压缩,进入解压后的“memU-main
”文件夹,并找到 env.example
文件。
5、把这个文件重命名为:.env
6、然后打开重命名后的“.env”新文件,找到这四行。
7、我用的是豆包的模型,如果你也用火山的模型,可以跟我一样这样填写,只需要更换你的API key就好了。如果不知道在哪找,依然可以参考《保姆级 | Coze开源版本地部署教程,一步一图,小白可用》的第四步即可。
OPENAI_API_KEY=此处更换为你的api keyMEMU_OPENAI_MODEL=Doubao-Seed-1.6-flashOPENAI_BASE_URL=https://ark.cn-beijing.volces.com/api/v3MEMU_EMBEDDING_MODEL=Doubao-embedding-large
8、填入之后,保存并退出。
打开文件顶部的终端,复制以下命令,粘贴进入,并回车执行。
docker-compose up -d
9、等待构建完成,这个过程需要一些时间,耐心等待即可。
10、在等待过程中可以去开放一下服务器的:8000 端口,在开头购买服务器的时候已经开放过一次,参考原操作即可。
五、打开memU页面,配置账号
到了这一步,接下来的操作都是一样的了。
如果你是本地部署,先使用你的服务器地址登录memU页面确认是否成功部署。
登录地址为:http://用服务器IP替换此文字:/docs#/
比如我的是这样的,如果你看到以下页面,说明你已经部署成功了。
如果你是非本地部署,直接进入:https://app.memu.so/
接下来我使用在线版本的页面进行演示,如何获取官网的memU的API key,本地版本无需获取key:
使用谷歌或GitHub或用你的邮箱注册并登录memU:
登录后是一个十分简洁的页面,直接来到左侧的“钥匙”页卡,来获取你的API key
然后你会发现有一个key,现在先不用动了,放到这里,一会再用。
6、把memU接入外部LLMops平台(以Coze为例)
1、进入coze:https://www.coze.cn/studio
2、进入工作空间创建工作流。
3、添加一个节点,选择“Http”请求
4、按照如下内容来配置这个http插件,这是插件的功能是:获取记忆体。
如果你是非本地部署版本,使用以下网址:posthttps://api.memu.so/api/v1/memory/retrieve/related-memory-items如果你是本地部署版本,需要把以下替换为你的IP地址:http://233.224.37.34(这里替换):8000/api/v1/memory/retrieve/related-memory-items请求头(如果是本地部署版本,则不需要Authorization这一项):AuthorizationBearer xxxxxxxxx这里换成你的memU刚才创建的keyxxxx这里复制的时候不要漏掉Bearer。Content-Typeapplication/json请求体: { "query": "{{block_output_100001.input}}", "user_id": "1", "agent_id": "2", "top_k": 3, "min_similarity": 0.3 }
5、创建一个AI节点,具体配置如下:
提示词:
# 角色你是一个高效的记忆工具助手,能够借助用户过往的记忆信息{{memU}},与用户进行自然流畅的对话,为用户提供准确、有价值的回复。## 技能### 技能 1: 基于记忆对话1. 仔细分析用户输入内容,结合记忆信息{{memU}},理解用户意图。2. 依据对用户的了解和记忆信息,给出贴合用户需求的回复。3. 如果记忆信息不足,通过与用户进一步交流获取更多信息以更好回应。## 限制:- 对话内容需围绕与记忆相关或基于记忆信息展开,拒绝回答无关话题。- 回复要逻辑清晰、简洁明了,符合正常交流语境。
6、然后再加一个HTTP请求节点,按照以下方式填入即可。
如果你是非本地部署版本,使用以下网址:
post
https://api.memu.so/api/v1/memory/memorize
如果你是本地部署版本,需要把以下替换为你的IP地址:
http://233.224.37.34(这里替换):8000/api/v1/memory/memorize
请求头(如果是本地部署版本,则不需要Authorization这一项):
Authorization
Bearer xxxxxxxxx这里换成你的memU刚才创建的keyxxxx这里复制的时候不要漏掉Bearer。
Content-Type
application/json
请求体,直接复制进去:
{
"conversation": [
{
"role": "user",
"content": "{{block_output_100001.input}}"
},
{
"role": "assistant",
"content": "{{block_output_121946.output}}"
}
],
"user_id": "1",
"user_name": "用户",
"agent_id": "2",
"agent_name": "智能助手"
}
7、最后的输出节点,选择大模型的输出。
8、到此,大功告成。
现在,我们来理解一下,为什么这样就拥有了记忆。
看着示意图,就十分清晰好理解了。
memU的原理就是,在你与大模型进行对话前,在“memU记忆提取节点”使用“用户问题”,去memU的记忆库里查找相关的记忆信息。
把查找到的这些记忆信息,放到“大模型节点”的系统提示词里。让模型知道有这些记忆信息。
然后,模型结合记忆信息和用户问题,一起来回复用户。
这样就能够做到,让模型有记忆的回复。
模型回复结束之后,同时把“用户问题”与“AI回复信息”一起在“传入memU节点”传递给memU的存入接口,由memU在后端进行记忆的处理。
如此一来,等到下一轮对话时,就可以再次抽取出来之前的记忆,循环往复,达到记忆的效果。
以上是简单解释,实际的memU的处理逻辑是十分复杂的,但是我们已经无需重点关注,因为memU已经为我们处理好了一切,我们只需要直接使用即可。
通过以上两个一入一出的节点,就可以完美的把memU接入你的工作流中。同理,其他所有的LLMops平台均可通过HTTP节点接入memU。
恭喜你,你已经拥有了为任何智能体赋予长期记忆的能力~
最后,官方还设立了交流群和积分赠送的活动,群聊我已经放在评论区,大家可自行加入~
我是梦飞,我们下次再见~
项目地址:https://github.com/NevaMind-AI/memU/
项目官网:https://memu.pro/
既然看到这里了,请随手点个赞、在看、转发三连吧,感谢你的支持
往期推荐
2、抛砖引玉 | 为什么DeepSeek-R1是推理模型?(万字长文)