MemGPT快速入门:5分钟搭建你的第一个记忆智能体
还在为LLM的上下文限制而烦恼?MemGPT(现更名为Letta)为你带来革命性的记忆管理解决方案,让AI智能体拥有真正的长期记忆能力!
🚀 什么是MemGPT?
MemGPT(Memory-GPT)是一个开源的智能体框架,专门为大型语言模型(LLM)设计记忆管理系统。它通过创新的虚拟上下文管理技术,让AI智能体能够:
- ✅ 突破上下文限制:处理远超模型原生限制的长对话
- ✅ 长期记忆存储:智能体能够记住过去的对话和经历
- ✅ 状态持久化:智能体状态保存在数据库中,支持无限期运行
- ✅ 透明记忆操作:提供完整的记忆读写和管理工具
📦 环境准备:Docker一键部署
步骤1:安装Docker
确保你的系统已安装Docker,如果没有安装,请参考Docker官方安装指南。
步骤2:启动MemGPT服务器
# 创建数据持久化目录
mkdir -p ~/.letta/.persist/pgdata
# 启动MemGPT服务器(需要OpenAI API密钥)
docker run \
-v ~/.letta/.persist/pgdata:/var/lib/postgresql/data \
-p 8283:8283 \
-e OPENAI_API_KEY="你的OpenAI_API密钥" \
letta/letta:latest
步骤3:验证服务器运行
打开浏览器访问 http://localhost:8283/v1,如果看到API响应,说明服务器已成功启动。
🎯 创建你的第一个记忆智能体
安装Python客户端
pip install letta-client
基础智能体示例
from letta_client import CreateBlock, Letta, MessageCreate
# 连接到本地MemGPT服务器
client = Letta(base_url="http://localhost:8283")
# 创建新智能体
agent_state = client.agents.create(
memory_blocks=[
CreateBlock(
label="human",
value="姓名:张三",
),
],
model="openai/gpt-4o-mini",
embedding="openai/text-embedding-3-small",
)
print(f"智能体创建成功!名称:{agent_state.name},ID:{agent_state.id}")
# 发送消息
response = client.agents.messages.create(
agent_id=agent_state.id,
messages=[
MessageCreate(
role="user",
content="你好,请介绍一下你自己",
)
],
)
print("对话响应:", response.messages[-1].content)
🔧 高级配置:定制化智能体
完整智能体配置示例
from letta_client import CreateBlock, Letta, MessageCreate
from letta.prompts import gpt_system
client = Letta(base_url="http://localhost:8283")
# 创建定制化智能体
agent_state = client.agents.create(
name="我的个人助理",
memory_blocks=[
CreateBlock(
label="human",
value="姓名:李四\n职业:软件工程师\n兴趣:编程、阅读、旅行",
),
CreateBlock(
label="persona",
value="你是一个热情友好的AI助手,喜欢用表情符号,擅长技术问题解答",
),
],
model="openai/gpt-4o-mini",
context_window_limit=16000, # 扩展上下文窗口
embedding="openai/text-embedding-3-small",
system=gpt_system.get_system_text("memgpt_chat"),
include_base_tools=True,
)
print(f"高级智能体创建完成:{agent_state.name}")
🛠️ 添加自定义工具
MemGPT支持为智能体添加自定义功能工具:
from letta_client import CreateBlock, Letta, MessageCreate
from letta_client.types import TerminalToolRule
client = Letta(base_url="http://localhost:8283")
# 定义自定义工具函数
def get_current_time() -> str:
"""
获取当前时间
返回当前系统的日期和时间信息
Returns:
str: 格式化的时间字符串
"""
from datetime import datetime
return f"当前时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
# 创建工具
time_tool = client.tools.upsert_from_function(func=get_current_time)
# 创建带自定义工具的智能体
agent_state = client.agents.create(
memory_blocks=[
CreateBlock(
label="human",
value="姓名:王五",
),
],
model="openai/gpt-4o-mini",
embedding="openai/text-embedding-3-small",
tool_ids=[time_tool.id],
tool_rules=[
TerminalToolRule(tool_name=time_tool.name),
TerminalToolRule(tool_name="send_message"),
]
)
# 测试工具调用
response = client.agents.messages.create(
agent_id=agent_state.id,
messages=[
MessageCreate(
role="user",
content="现在几点了?",
)
],
)
print("工具调用结果:", response.messages[-1].content)
📊 MemGPT核心功能对比
| 功能特性 | 传统LLM | MemGPT智能体 |
|---|---|---|
| 上下文长度 | 有限(4K-128K) | 理论上无限 |
| 记忆持久化 | 会话级 | 数据库持久化 |
| 记忆管理 | 无 | 完整的CRUD操作 |
| 工具扩展 | 有限 | 无限自定义工具 |
| 状态保持 | 无 | 长期状态维护 |
🔍 记忆管理操作
MemGPT提供丰富的记忆操作功能:
# 查看智能体记忆
agent_details = client.agents.retrieve(agent_id=agent_state.id)
print("核心记忆:", agent_details.core_memory)
# 更新记忆
client.agents.memory.update(
agent_id=agent_state.id,
blocks=[
CreateBlock(
label="human",
value="姓名:王五\n年龄:28\n职业:数据分析师",
)
]
)
# 搜索归档记忆
search_response = client.agents.memory.search(
agent_id=agent_state.id,
query="职业信息"
)
🌐 使用ADE图形界面
MemGPT提供强大的Agent Development Environment(ADE)图形界面:
- 确保服务器运行在
localhost:8283 - 访问 https://app.letta.com
- 选择"Local server"连接本地服务器
- 在图形界面中创建、管理和与智能体交互
ADE提供以下功能:
- 📝 智能体创建和管理
- 💬 实时聊天界面
- 🧠 记忆查看和编辑
- 🔧 工具配置和测试
- 📊 使用统计和监控
🚨 常见问题解答
Q: MemGPT和Letta是什么关系?
A: MemGPT是项目原名,现已更名为Letta。MemGPT指代智能体技术,Letta指代完整的API服务器和运行时环境。
Q: 数据存储在哪里?
A: 使用Docker部署时,数据默认存储在PostgreSQL数据库中,位置为 ~/.letta/.persist/pgdata。
Q: 支持哪些LLM提供商?
A: 支持OpenAI、Anthropic、vLLM、Ollama等多种LLM服务提供商。
Q: 如何备份智能体数据?
A: 备份 ~/.letta/.persist/pgdata 目录即可完整保存所有智能体数据。
📈 性能优化建议
优化建议:
- 数据库优化:使用SSD存储提升数据库性能
- 网络优化:选择距离近的LLM服务端点
- 内存配置:为Docker分配足够的内存资源
- 缓存策略:合理配置记忆检索的缓存机制
🎉 下一步学习路径
完成基础入门后,建议继续探索:
- 多智能体系统:创建协作的智能体网络
- 自定义工具开发:构建专业领域的专用工具
- 记忆优化策略:设计高效的记忆管理方案
- 生产环境部署:将MemGPT部署到云服务器
- API集成开发:将MemGPT集成到现有应用中
💡 实践挑战
尝试完成以下任务来巩固学习:
- 创建一个记住用户偏好的个性化助手
- 开发一个天气查询工具并集成到智能体中
- 构建一个多轮对话的场景演示
- 实现智能体的记忆导出和导入功能
MemGPT为LLM应用开发带来了全新的可能性,通过有效的记忆管理,你可以构建出真正智能、有记忆的AI助手。开始你的MemGPT之旅吧!
提示:记得定期检查 MemGPT官方文档 获取最新功能和最佳实践。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



