Ir al contenido

MemGPT / Letta - Memoria de Agente de Estilo SO

MemGPT / Letta - Memoria de Agente de Estilo SO

MemGPT es la técnica — y Letta el marco que surgió de ella — para dar a los agentes LLM gestión de memoria de estilo sistema operativo. La idea central: trata la ventana de contexto como RAM (rápida pero pequeña) y agrega “disco” en forma de memoria de archivo buscable. El agente en sí decide, a través de llamadas de herramientas, qué mantener en contexto principal y qué paginar al almacenamiento, permitiéndole mantener memoria coherente a largo plazo mucho más allá del límite de contexto sin procesar. (El proyecto ahora se desarrolla como Letta.)

Instalación

MétodoComando
pippip install letta
Ejecutar el servidorletta server
Dockerdocker run -p 8283:8283 letta/letta:latest
ADE (interfaz web)conectar el Agent Development Environment al servidor
Verificarletta version

Arquitectura de Memoria

NivelAnalogíaContenidos
Contexto principal (memoria central)RAMPersona + hechos clave siempre en el prompt
Memoria de recuperaciónArchivos recientesHistorial de conversaciones, buscable
Memoria de archivoDiscoHechos arbitrarios a largo plazo, buscables
El agenteEl SODecide qué paginar dentro/fuera a través de herramientas

Memoria Central (Siempre en Contexto)

BloquePropósito
personaQuién es el agente / cómo se comporta
humanLo que sabe sobre el usuario
Bloques personalizadosHechos específicos del dominio siempre presentes

El agente edita estos bloques con herramientas (core_memory_append, core_memory_replace) a medida que aprende.

Creando un Agente

from letta_client import Letta

client = Letta(base_url="http://localhost:8283")

agent = client.agents.create(
    name="assistant",
    memory_blocks=[
        {"label": "persona", "value": "I am a concise, helpful assistant."},
        {"label": "human", "value": "The user's name is Nick."},
    ],
    model="openai/gpt-4o",
    embedding="openai/text-embedding-3-small",
)

Mensajería y Herramientas de Memoria

response = client.agents.messages.create(
    agent_id=agent.id,
    messages=[{"role": "user", "content": "Remember I prefer dark mode."}],
)
Herramienta (invocada por agente)Acción
core_memory_appendAgregar a un bloque siempre en contexto
core_memory_replaceActualizar un bloque de memoria central
archival_memory_insertAlmacenar un hecho en archivo (disco)
archival_memory_searchRecuperar de memoria de archivo
conversation_searchBuscar memoria de recuperación

Memoria de Archivo

ComandoDescripción
client.agents.passages.create(agent_id, text=...)Insertar una memoria de archivo
client.agents.passages.list(agent_id)Listar pasajes almacenados
Búsqueda de agenteEl agente llama a archival_memory_search automáticamente cuando sea relevante

Persistencia y Estado

CaracterísticaNota
Agentes con estadoEl estado del agente persiste en el servidor a través de sesiones
AlmacenamientoSQLite por defecto; PostgreSQL para producción
Exportar/importarSerializar agentes para moverlos entre despliegues
Multi-agenteEjecutar y coordinar varios agentes con estado

Flujos de Trabajo Comunes

# Un asistente de larga duración que recuerda a través de sesiones
# 1) crear una vez con bloques persona/human
# 2) cada sesión, solo enviar mensajes — Letta gestiona la paginación de memoria
client.agents.messages.create(agent_id=agent.id,
    messages=[{"role": "user", "content": "What do you remember about me?"}])
# el agente busca recuperación/archivo y responde con contexto persistente

MemGPT/Letta vs Otra Memoria

AspectoLetta (MemGPT)Mem0Zep
ModeloPaginación de SO, gestionada por agenteMulti-tiendaGráfico temporal
EstabilidadAgentes del lado del servidorBibliotecaServicio
ControlEl agente decide paginaciónLa aplicación decideEl servicio gestiona
Mejor paraAgentes autónomos de larga duraciónPersonalizaciónHechos temporales

Recursos