Salta ai contenuti

MemGPT / Letta - Memoria dell'Agente in Stile OS

MemGPT / Letta - Memoria dell”Agente in Stile OS

MemGPT è la tecnica — e Letta il framework che ne è nato — per dare agli agenti LLM gestione della memoria in stile sistema operativo. L”idea principale: tratta il context window come RAM (veloce ma piccola) e aggiungi “disco” sotto forma di memoria di archiviazione ricercabile. L”agente stesso decide, tramite tool call, cosa mantenere nel contesto principale e cosa scaricare nello storage, permettendogli di mantenere memoria coerente long-term ben oltre il limite di contesto grezzo. (Il progetto è ora sviluppato come Letta.)

Installazione

MetodoComando
pippip install letta
Esegui il serverletta server
Dockerdocker run -p 8283:8283 letta/letta:latest
ADE (UI web)connetti l”Agent Development Environment al server
Verificaletta version

Architettura della Memoria

LivelloAnalogiaContenuti
Contesto principale (memoria core)RAMPersona + fatti chiave sempre nel prompt
Memoria di recallFile recentiCronologia conversazione, ricercabile
Memoria di archiviazioneDiscoFatti long-term arbitrari, ricercabile
L”agenteIl SODecide cosa scaricare dentro/fuori tramite tool

Memoria Core (Sempre Nel Contesto)

BloccoScopo
personaChi è l”agente / come si comporta
humanCosa sa dell”utente
Blocchi personalizzatiFatti sempre-presenti specifici del dominio

L”agente modifica questi blocchi con tool (core_memory_append, core_memory_replace) mentre impara.

Creazione di 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": "Sono un assistente conciso e utile."},
        {"label": "human", "value": "Il nome dell''utente è Nick."},
    ],
    model="openai/gpt-4o",
    embedding="openai/text-embedding-3-small",
)

Messaggistica e Tool di Memoria

response = client.agents.messages.create(
    agent_id=agent.id,
    messages=[{"role": "user", "content": "Ricordami che preferisco la modalità dark."}],
)
Tool (invocato dall”agente)Azione
core_memory_appendAggiungi a un blocco sempre-nel-contesto
core_memory_replaceAggiorna un blocco di memoria core
archival_memory_insertArchivia un fatto in memoria di archiviazione (disco)
archival_memory_searchRecupera dalla memoria di archiviazione
conversation_searchRicerca nella memoria di recall

Memoria di Archiviazione

ComandoDescrizione
client.agents.passages.create(agent_id, text=...)Inserisci una memoria di archiviazione
client.agents.passages.list(agent_id)Elenca i passaggi archiviati
Ricerca dell”agenteL”agente chiama archival_memory_search automaticamente quando pertinente

Persistenza e Stato

FeatureNota
Agenti statefulLo stato dell”agente persiste sul server tra le sessioni
StorageSQLite per default; PostgreSQL per la produzione
Export/importSerializza gli agenti per spostarli tra deployment
Multi-agenteEsegui e coordina diversi agenti stateful

Flussi di Lavoro Comuni

# Un assistente long-running che ricorda tra le sessioni
# 1) crea una volta con blocchi persona/human
# 2) ogni sessione, invia solo messaggi — Letta gestisce il paging della memoria
client.agents.messages.create(agent_id=agent.id,
    messages=[{"role": "user", "content": "Cosa ricordi di me?"}])
# l''agente ricerca recall/archiviazione e risponde con contesto persistente

MemGPT/Letta vs Altra Memoria

AspettoLetta (MemGPT)Mem0Zep
ModelloPaging in stile OS, gestito dall”agenteMulti-tier storeGrafo temporale
StatefulnessAgenti lato serverLibreriaServizio
ControlloL”agente decide il pagingL”app decideIl servizio gestisce
Migliore perAgenti autonomi long-runningPersonalizzazioneFatti temporali

Risorse