十分钟搭建 MemGPT 记忆智能体:从部署到第一次对话
【免费下载链接】MemGPTPlatform for stateful agents: AI with advanced memory that can learn and self-improve over time.项目地址: https://gitcode.com/GitHub_Trending/me/MemGPT
LLM 的上下文窗口有明确上限,多轮对话一长,早期信息就会丢失。MemGPT(现更名 Letta)让记忆智能体具备长期记忆:它用虚拟上下文管理解决 LLM上下文扩展 问题,把智能体状态持久化到数据库。这篇 MemGPT快速入门 带你完成智能体记忆搭建,十分钟跑起第一个能跨会话记住信息的记忆智能体。
虚拟上下文管理:长期记忆从哪来
把模型的上下文窗口当作内存,把数据库当作磁盘,这就是虚拟上下文管理的思路。智能体在运行时自主决定哪些信息常驻上下文(核心记忆),哪些压缩后移入数据库(归档记忆),需要时再检索回上下文。单个智能体能承载的信息量因此不再受一次请求的 token 数限制,跨会话的长期记忆由此成立。
Docker 一键启动 MemGPT 服务器
本机只需要 Docker 和一个大模型的 API 密钥。先创建数据目录,保证容器重启后智能体状态仍然保留;再启动服务器;最后安装 Python 客户端。命令按执行顺序给出:
mkdir -p ~/.letta/.persist/pgdatadocker run \ -v ~/.letta/.persist/pgdata:/var/lib/postgresql/data \ -p 8283:8283 \ -e OPENAI_API_KEY="你的API密钥" \ letta/letta:latest服务器在前台阻塞运行,另开一个终端执行curl http://localhost:8283,看到 Letta Server 的提示即表示启动成功;也可以在浏览器打开http://localhost:8283/v1查看接口文档。客户端安装只需要一条命令:
pip install letta-client创建第一个记忆智能体并发起对话
下面的示例做三件事:连接本地服务器、创建一个带基本人设的智能体、发一条消息。
from letta_client import CreateBlock, Letta, MessageCreate client = Letta(base_url="http://localhost:8283") agent = client.agents.create( memory_blocks=[CreateBlock(label="human", value="姓名:张三")], model="openai/gpt-4o-mini", embedding="openai/text-embedding-3-small", )其中memory_blocks是智能体的核心记忆,label="human"的块会作为模型始终可见的"人物卡"。
拿到agent.id后就可以发消息了,返回结果的messages里最后一条是智能体的回复:
reply = client.agents.messages.create( agent_id=agent.id, messages=[MessageCreate(role="user", content="你好,请介绍一下你自己")], ) print(reply.messages[-1].content)更新与检索智能体的长期记忆
智能体的记忆分两层。核心记忆(memory block)常驻上下文,模型可以在对话中自己改写,也可以由你直接更新:
client.agents.memory.update( agent_id=agent.id, blocks=[CreateBlock(label="human", value="姓名:张三\n职业:数据分析师")], )归档记忆存在数据库里,体量可以很大,用 search 接口按自然语言检索即可:
client.agents.memory.search(agent_id=agent.id, query="职业")进阶方向:自定义工具与 ADE 图形界面
自定义工具:把一个带 docstring 的普通 Python 函数交给client.tools.upsert_from_function,服务器会解析函数签名和文档字符串生成工具描述,创建智能体时通过tool_ids挂上,智能体就能在对话中调用它。
ADE 图形界面:在浏览器打开 ADE 控制台并选择连接本地服务器(localhost:8283),即可在网页里创建智能体、查看和编辑记忆块、测试工具,适合不想写代码的调试场景。
部署与使用中的常见坑
- 8283 端口没有响应——先执行
docker ps确认容器在运行,再确认端口未被其它进程占用;需要改端口时用-p 8284:8283,客户端base_url同步修改。 - 模型调用报 401 或超时——
OPENAI_API_KEY没有传对,检查docker run时的-e参数;换用 vLLM、Ollama 等其它 provider 时,需要在服务端单独配置对应端点。 - 智能体或记忆"消失"——所有状态都在容器的 PostgreSQL 里(挂载到
~/.letta/.persist/pgdata)。容器删了、目录还在,数据就还在;目录被删则全部丢失,建议定期备份该目录。 - 分不清 MemGPT 和 Letta——两者是同一系统:MemGPT 是原名,指智能体的记忆技术;Letta 是服务器与运行时的名称,当前 API 与文档以 Letta 为准。
完整的 API 参考、多智能体与工具配置的细节,Letta 官方文档里有专门章节,遇到具体报错先查那里。下一步可以试多智能体协作、领域专用工具,或把记忆智能体嵌入现有应用。
【免费下载链接】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),仅供参考