当前位置: 首页 > news >正文

【GitHub开源项目专栏】Letta(原MemGPT):让LLM拥有持久记忆的革命性架构

引言

你有没有遇到过这种情况:和AI聊了很久,结果它"失忆"了,之前说的全忘了?

MemGPT(现更名为Letta)正是为了解决这个问题。它借鉴操作系统虚拟内存的思想,让固定上下文窗口的LLM拥有了"无限上下文"的错觉。

项目概览

GitHub: https://github.com/letta-ai/letta
Stars: 12k+
License: Apache-2.0
原名: MemGPT

一、核心问题:LLM的上下文瓶颈

1.1 有限上下文窗口

即使是最先进的LLM,上下文窗口也有物理限制:

  • GPT-4o: 128K tokens
  • Claude 3.5: 200K tokens
  • Gemini 1.5: 1M tokens

但实际场景中可能需要处理无界的历史对话超长文档检索多会话记忆

1.2 传统方案的局限

方案局限
上下文窗口滑动早期信息丢失
摘要压缩细节丢失,不可逆
RAG仅检索,无法主动记忆

二、MemGPT的核心思想

2.1 操作系统启示录

MemGPT的灵感来自操作系统:

LLM上下文窗口 ≈ 计算机RAM 外部向量存储 ≈ 计算机磁盘 分页机制 ≈ MemGPT的记忆管理

就像OS将不常用的数据swap到磁盘,MemGPT让LLM主动管理"上下文内存"与"外部存储"之间的数据流动。

2.2 记忆层级设计

┌─────────────────────────────────────┐ │ 主上下文 (Main Context) │ │ ┌─────────────────────────────────┐│ │ │ 系统指令 (只读) ││ │ │ 工作上下文 (可读写) ││ │ │ FIFO队列 (消息历史) ││ │ └─────────────────────────────────┘│ └─────────────────────────────────────┘ ↑ ↓ 分页 ┌─────────────────────────────────────┐ │ 外部上下文 (External Context) │ │ ┌───────────────┬─────────────────┐│ │ │ 召回存储 │ 归档存储 ││ │ │ (对话历史) │ (长文档/向量) ││ │ └───────────────┴─────────────────┘│ └─────────────────────────────────────┘

三、核心模块解析

3.1 主上下文(Main Context)

系统指令:MemGPT控制流、内存层级用途、函数调用规则(只读)

工作上下文:存储用户关键信息,如:

  • 用户偏好(“我叫张三”)
  • 事实信息(“我在北京工作”)
  • Agent角色信息

FIFO队列:滚动存储消息历史,头部含已淘汰消息的递归摘要

3.2 外部上下文(External Context)

召回存储:消息数据库,存储所有对话历史,支持搜索与重新调入

归档存储:基于向量数据库(如pgvector),存储长文档、用户画像等

3.3 核心功能模块

队列管理器

  • 管理消息的追加、LLM推理触发
  • 上下文溢出控制(70%警告阈值、100%刷新阈值)
  • 触发"内存压力"提示,引导LLM主动管理记忆

函数执行器

  • 解析LLM输出的函数调用
  • 执行记忆管理函数(搜索外部存储、修改工作上下文)
  • 反馈执行结果给LLM

四、快速上手

4.1 安装

pipinstallletta-client

4.2 创建Agent

fromletta_clientimportLetta client=Letta(token="YOUR_API_KEY")# 创建带记忆块的Agentagent_state=client.agents.create(model="openai/gpt-4o-mini",memory_blocks=[{"label":"human","value":"User info here","limit":5000},{"label":"persona","value":"Agent personality","limit":5000}])print(f"Agent ID:{agent_state.id}")

4.3 对话交互

# 开始对话response=client.agents.messages.create(agent_id=agent_state.id,messages=[{"role":"user","content":"你好,我叫张三,在北京工作"}])# 检查记忆更新agent_state=client.agents.get(agent_state.id)print(agent_state.memory)

4.4 用户记忆更新

# 用户纠正信息response=client.user_message(agent_id=agent_id,message="Actually, my name is Charles")# Agent自动通过 tool:update_memory 更新记忆

五、进阶功能

5.1 睡眠模式(Sleep-time Agents)

agent_state=client.agents.create(model="openai/gpt-4o",enable_sleeptime=True# 启用后台整理)

睡眠模式允许Agent在低交互期间后台整理记忆,保持响应速度。

5.2 多Agent共享记忆

# 创建共享内存块shared_block=client.blocks.create(label="organization",description="团队共享信息",value="初始团队数据")# 多个Agent附加到同一内存块manager=client.agents.create(block_ids=[shared_block.id])worker=client.agents.create(block_ids=[shared_block.id])

5.3 文件知识库

# 上传文档folder=client.folders.create(name="产品文档",embedding_config={"provider":"openai","model":"text-embedding-3-small"})job=client.folders.files.upload(folder_id=folder.id,file=open("manual.pdf","rb"))# Agent自动检索相关文档

六、技术架构

6.1 存储后端

存储类型适用场景
PostgreSQL生产环境,多Agent
SQLite开发测试,单Agent
Chroma原型验证

6.2 工具调用流程

用户消息 → 队列管理器 → LLM推理 → 函数调用 ↓ 内存更新 ← 执行结果反馈 ← 函数执行器

6.3 上下文溢出处理

# 阈值触发机制WARNING_THRESHOLD=0.7# 70%上下文REFRESH_THRESHOLD=1.0# 100%上下文# 内存压力时的处理流程1.生成递归摘要2.淘汰部分消息(如50%窗口)3.摘要写入FIFO头部4.原消息移入召回存储

七、适用场景

7.1 典型应用

场景价值
长期对话助手跨会话记忆用户偏好
个人知识库消化海量文档,主动检索
客服机器人理解完整对话上下文
研究助手管理大量文献记忆

7.2 与RAG对比

维度MemGPT传统RAG
信息来源Agent主动管理被动检索
上下文利用智能分层全量注入
长对话原生支持需额外处理
实现复杂度中等较低

八、局限性

  1. 延迟开销:记忆管理增加LLM调用延迟
  2. 存储依赖:需要配置数据库后端
  3. 调试复杂:记忆状态管理不易追踪
  4. 资源消耗:向量索引占用存储空间

总结

Letta(MemGPT)通过虚拟上下文管理的创新思想,让LLM突破了固定上下文窗口的限制:

  1. 分层记忆:主上下文 + 外部存储
  2. 主动管理:LLM自主决定何时swap数据
  3. 无限对话:跨会话持久记忆
  4. RAG增强:超越被动检索的智能知识管理

对于需要长期记忆多会话上下文的应用,Letta提供了一个优雅的解决方案。

参考链接

  • GitHub: https://github.com/letta-ai/letta
  • 论文: https://arxiv.org/abs/2310.08560
  • 文档: https://docs.letta.com

http://www.jsqmd.com/news/725066/

相关文章:

  • 2026权威推荐:雷达液位计五大品牌榜单来袭!优选苏州贝特仪表,技术领先品质可靠 - GrowthUME
  • linux vim命令
  • 百元预算打造专属 Minecraft 联机服务器
  • 高效开发指南:现代Total War模组制作工具的核心功能解析
  • 别再只会用bar3画图了!MATLAB三维柱状图进阶玩法:用‘grouped‘和‘stacked‘样式讲好数据故事
  • 大语言模型与进化算法融合的代码优化实践
  • 终极指南:5分钟掌握JetBrains IDE试用期无限重置的完整解决方案
  • 2026涂塑钢管厂家实测对比| 6家主流企业测评,全品类适配工控基建需求 - 深度智识库
  • Arducam Pi Hawk-eye 64MP相机模块技术解析与应用
  • 量子机器学习中的噪声挑战与纠错技术实践
  • 分析 2026 年口碑良好的螺旋钢管厂家,如何选择适配的供应商 - 深度智识库
  • 如何实现完整网页截图:Chrome扩展的终极解决方案指南
  • 3分钟彻底告别Windows激活烦恼:KMS_VL_ALL_AIO智能激活全攻略
  • 终极游戏模组管理神器:XXMI启动器完整指南
  • 出海企业必看:GDPR、CCPA与中国个人信息保护法,跨境业务合规实操指南(附检查清单)
  • Nesterov动量梯度下降原理与Python实现
  • 国产替代加速,这些半导体展会正成为产业风向标 - 品牌2026
  • 如何快速掌握TegraRcmGUI:Switch玩家的终极图形化注入指南
  • 揭秘Parse12306:如何用C自动化抓取全国高铁时刻表数据
  • Refined Now Playing:如何让网易云音乐播放界面焕然一新
  • 机器学习超参数优化:网格搜索与随机搜索实战指南
  • 2026年河南珍珠棉防震包装材料深度横评与选购指南 - 企业名录优选推荐
  • NormalMap-Online:浏览器本地GPU加速的3D法线贴图生成神器
  • ComfyUI ControlNet Aux预处理器架构演进:从边缘检测到多模态控制的技术突破
  • 基于YY 9706.106-2021标准可用性测试概述
  • 避坑指南:用Docker一键搞定MMAction2环境,再也不用为PyTorch版本发愁了
  • 【2026算法降维打击】哪些降重软件可以同时降低查重率和AIGC疑似率? - nut-king
  • 实时面部动画技术:Blendshape原理与优化实践
  • 从用友NC实施到运维项目经理:我的5年ERP顾问成长路径与避坑指南
  • AI搜索时代的品牌认知重构:2026年八家GEO服务商综合实力观察与选型参考 - 资讯焦点