记忆与状态17k+ · since 2023 · Python

Letta

by letta-ai

Stateful agents · the MemGPT reference

MemGPT 论文的工业实现,三层记忆架构,为"有状态 agent"定义了参考范式。

主要内容

Letta 不是"给 agent 加个记忆插件",而是把 agent 架构按记忆为中心重新设计。三层记忆:core memory(一直在 context 里,存 persona 和关键用户事实,约 1-2k token)、archival memory(向量库,按需检索历史片段)、recall memory(全对话历史,按时间或 entity 召回)。agent 自己决定什么进入哪一层,因为它们就是 agent 的工具。如果你的产品核心价值是"这个 AI 真的认识我",Letta 的架构思路是当前最成熟的参考。

核心关注点

关心"这个 agent 真的认识我吗",而不是"它这次回答得好不好"。

有状态优先memory-first 设计persona 持久化跨 session 一致agent 自主管理记忆

安装与 hello world

$ pip install letta-client # server 通过 Docker 部署
hello-world.py
from letta_client import Letta
 
client = Letta(base_url="http://localhost:8283")
 
agent = client.agents.create(
    name="my-assistant",
    model="openai/gpt-4o",
    embedding="openai/text-embedding-3-small",
    memory_blocks=[
        {
            "label": "persona",
            "value": "我是一个重视长期关系的助理。",
        },
        {
            "label": "human",
            "value": "用户是一名 CMU 学生,在找 ML 实习。",
        },
    ],
)
 
# agent 会主动把重要信息写入 core memory
response = client.agents.messages.create(
    agent_id=agent.id,
    messages=[{"role": "user", "content": "记一下,我对花生过敏。"}],
)
 
# 下次对话,不管隔多久,memory blocks 一直在 context 里
response = client.agents.messages.create(
    agent_id=agent.id,
    messages=[{"role": "user", "content": "推荐一个晚餐?"}],
)

关键 API / 概念

memory_blocks

core memory 的基本单元,有 label 和 value,agent 可以通过工具读写自己的 blocks。

archival memory

向量库后端(pgvector / chroma),agent 用 archival_memory_search 和 archival_memory_insert 工具操作。

Sleep-time compute

agent 空闲时后台 reflection,整理短期记忆到长期,类似"睡觉巩固记忆"。

ADE(Agent Development Environment)

可视化 GUI,调试 agent 记忆状态、消息流、工具调用。

适用场景

01

陪伴型 / 生活助理 AI

要记得用户几个月前说过什么、偏好什么、有什么禁忌。Letta 的 core memory 专为此设计。

02

长期客户助理

B2C 产品中,每个用户有专属 agent,随着时间积累人格化关系。

03

虚拟角色 / NPC

游戏 / 小说 / 互动剧场里的角色,需要人格一致、记得情节发展。

什么时候别用

  • 无状态任务 agent(一次性 workflow):overkill,用 LangGraph
  • 只是想给现有 agent 加点记忆:用 mem0 接入成本更低

vs 相邻选项

vs mem0

Letta 是"为记忆而生的 agent 架构",mem0 是"可嵌入的记忆层"。定位互补。

vs LangGraph

LangGraph 关心 workflow,Letta 关心 continuity。通常两者可以组合。