MemGPT快速入门:5分钟搭建你的第一个记忆智能体

MemGPT快速入门:5分钟搭建你的第一个记忆智能体

【免费下载链接】MemGPT Teaching LLMs memory management for unbounded context 📚🦙 【免费下载链接】MemGPT 项目地址: https://gitcode.com/GitHub_Trending/me/MemGPT

还在为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核心功能对比

功能特性传统LLMMemGPT智能体
上下文长度有限(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)图形界面:

  1. 确保服务器运行在 localhost:8283
  2. 访问 https://app.letta.com
  3. 选择"Local server"连接本地服务器
  4. 在图形界面中创建、管理和与智能体交互

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 目录即可完整保存所有智能体数据。

📈 性能优化建议

mermaid

优化建议:

  1. 数据库优化:使用SSD存储提升数据库性能
  2. 网络优化:选择距离近的LLM服务端点
  3. 内存配置:为Docker分配足够的内存资源
  4. 缓存策略:合理配置记忆检索的缓存机制

🎉 下一步学习路径

完成基础入门后,建议继续探索:

  1. 多智能体系统:创建协作的智能体网络
  2. 自定义工具开发:构建专业领域的专用工具
  3. 记忆优化策略:设计高效的记忆管理方案
  4. 生产环境部署:将MemGPT部署到云服务器
  5. API集成开发:将MemGPT集成到现有应用中

💡 实践挑战

尝试完成以下任务来巩固学习:

  1. 创建一个记住用户偏好的个性化助手
  2. 开发一个天气查询工具并集成到智能体中
  3. 构建一个多轮对话的场景演示
  4. 实现智能体的记忆导出和导入功能

MemGPT为LLM应用开发带来了全新的可能性,通过有效的记忆管理,你可以构建出真正智能、有记忆的AI助手。开始你的MemGPT之旅吧!

提示:记得定期检查 MemGPT官方文档 获取最新功能和最佳实践。

【免费下载链接】MemGPT Teaching LLMs memory management for unbounded context 📚🦙 【免费下载链接】MemGPT 项目地址: https://gitcode.com/GitHub_Trending/me/MemGPT

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值