MemGPT(Letta)记忆管理快速指南:让 AI 智能体拥有长期记忆的实用方法
MemGPTLetta记忆管理快速指南让 AI 智能体拥有长期记忆的实用方法【免费下载链接】MemGPTPlatform for stateful agents: AI with advanced memory that can learn and self-improve over time.项目地址: https://gitcode.com/GitHub_Trending/me/MemGPTMemGPT现名 Letta是一个开源的有状态智能体平台核心能力是 LLM 记忆管理它把智能体的记忆拆成常驻上下文的核心记忆和放在上下文外的归档记忆由 AI 自己决定记什么、怎么查从而让长对话不丢上下文、智能体随时间越来越熟悉你。 痛点场景聊到第三天AI 又要你自我介绍假设你在做一个客服机器人或个人助理。聊到几百轮之后用户说还是上次那个问题AI 却一脸茫然——因为它只看得见当前窗口里的几百条消息更早的内容要么被截断要么被塞进一个越拼越长的 prompt成本飙升还答不准。最直觉的补救是 RAG把历史存进向量库每次检索几条拼进去。但什么信息重要这件事检索管道其实并不懂经常取回一堆无关片段。MemGPT 的思路反其道而行把内存分层管理交给模型自己——就像操作系统用虚拟内存突破物理内存限制它用核心记忆 归档记忆突破上下文窗口限制让模型在对话中主动写入、检索、整理自己的记忆。⏱️ 五分钟跑通装一个 CLI先和带记忆的 AI 说上话先说清现状项目已从 MemGPT 演进为 Letta当前开发主仓是letta-ai/letta-code本文仓库保留落地页和 V1 历史源码。所以别折腾克隆编译直接装 npm 包最快npm install -g letta-ai/letta-code letta需要 Node.js 22.19 以上。第二条命令会在终端里启动一个带记忆的本地智能体直接开聊。想跑一个可被多端访问的 App Server本地或自托管再执行letta server即可。跑起来之后你会发现它和普通聊天机器人的差别对话窗口旁边有一块随时可看的核心记忆面板写着它记得你是谁、它的角色是什么。下面拆开看这是怎么实现的。 它是怎么做到的把上下文当成一种稀缺资源来管理书桌、便签本和档案柜记忆的三层架构MemGPT 把记忆分成三层对应你办公桌上的三种东西核心记忆core memory便签本永远贴在视野里。通常拆成 persona它是谁和 human用户是谁两个区块常驻在 prompt 中模型每轮都看得见、改得动。归档记忆archival memory档案柜放在上下文外面。容量不受窗口限制需要时由模型自己发起检索再读出来。消息历史书桌上的便条最近的对话原文。为什么这样设计因为上下文窗口是每轮都在计费、还会稀释注意力的稀缺资源。最要紧的信息放进窗口内次要的放外面按需取等于用内存分层换来了准无限的记忆容量。模型自己当记忆管理员而不是外部管道关键设计在于写记忆和读记忆都是工具调用。模型对话中会主动调用core_memory_append把用户名字写进 human 区块、conversational_search翻查历史这类工具。上图中智能体判断用户透露了名字这是有价值信息随后自己发起了一次core_memory_append调用——记忆管理是它的自主行为不是你在外面用代码手动塞的。这也是为什么要这样做的答案外部 RAG 管道无法理解这条对话里什么值得记而理解对话语义的模型自己就有这个判断力。对话循环一轮想—做—看的自转循环每轮对话内部是一个循环模型输出 → 解析出工具调用 → 执行 → 结果追加回上下文 → 模型继续。循环跑完才算这轮结束所以一个回合里它可能先查记忆、再改写便签、最后才回话。这套执行逻辑可以在 V1 归档源码的智能体循环和工具系统里看到位于 archive 分支仅作历史参考。️ 拿它干什么三个场景拆解让客服智能体不再反复问请问您的账号是输入用户的新一轮消息 该用户此前积累的记忆区块。项目做了什么智能体先读 human 区块确认用户身份与历史诉求新出现的关键事实如投诉编号当场追加进核心记忆冗长细节归档。得到下一轮对话直接引用上次的问题编号用户不需要复述服务体验连续。让记忆在后台自我整理输入一段时间里持续累积的对话与临时便签。项目做了什么开启 sleeptime 能力后智能体在空闲时执行后台整理——合并重复记忆、修剪过期的 core 区块、把 persona 改写得更符合真实相处状态。得到核心记忆区块不会无限膨胀智能体的人格和对用户的了解随时间演化而不是停在初始化那一段 prompt。一次管理一整组角色智能体输入一组不同角色的智能体客服、医疗助理、工作流自动化等每个有自己的记忆区块。项目做了什么ADE 管理界面统一列出所有本地智能体逐个可打开查看、编辑其 persona/human 区块与工具集。得到多角色部署时记忆配置可视化改一个角色的人设不用翻代码。️ 新手最容易踩的三个坑克隆本仓库就跑结果发现是空壳。这是当前最大的坑本仓库现在是落地页main分支不含可运行的服务器源码旧lettaPython 包和旧 Docker 镜像已退役archive 分支的 V1 源码仅供历史参考、不适用于生产。网上大量旧教程里的pip install letta指的都是 V1照抄会走弯路请以 npm 安装的 Letta Code 为准。模型选小了记忆管理会反过来坏事。记忆管理本质是高频的指令遵循问题模型要正确判断何时写、写哪、写多少。小模型经常把无关废话塞进 core 区块或该检索时不检索。建议用能力较强的大模型。往核心记忆里塞太多。core 区块每轮都占上下文字符数直接等于每轮成本和注意力稀释。把区块当便签用一句话一个事实细节放归档记忆。 想再深一点按你想挖的方向找入口想读懂这套记忆分层的实现去看 archive 分支的 V1 源码记忆区块与归档表定义是不错的起点想动手玩examples/notebooks/下保留了共享记忆、任务队列等示例的素材如shared_memory_system_prompt.txt想自托管旧版服务器看效果仓库根目录的compose.yaml给出了 pgvector 数据库加 V1 服务容器的完整编排同样注意它对应的是归档版本。更前沿的 Agent SDK、桌面端与多渠道接入直接搜 Letta 官方文档和开发者社区即可文档里对 memory block、sleeptime 机制都有专门章节。【免费下载链接】MemGPTPlatform for stateful agents: AI with advanced memory that can learn and self-improve over time.项目地址: https://gitcode.com/GitHub_Trending/me/MemGPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考