Il tutorial presenta la creazione di un agente di ingegneria a stato persistente su Letta, una piattaforma che consente di superare le limitazioni della memoria basata esclusivamente sui prompt. Il processo inizia con la definizione di blocchi di memoria centrale ispezionabili, i quali possono essere modificati autonomamente dall'agente.

Memoria centrale e condivisione dello stato

Una volta creati, i blocchi di memoria vengono esposti per consentire una sincronizzazione programmatica dello stato e un accesso condiviso tra più agenti. Questa architettura permette di trasformare l'agente da una “scatola nera” a un sistema auditabile, dove gli sviluppatori possono verificare, correggere e collaborare su un contesto comune.

Memoria vettoriale d'archivio

Accanto alla memoria centrale, Letta integra una memoria vettoriale d'archivio per la ricerca semantica. Essa viene interrogata solo quando necessario, riducendo il carico di contesto e mantenendo le performance ottimali.

Strumenti personalizzati e streaming

Il tutorial introduce un strumento personalizzato lato server che calcola deterministici valori di rischio, fornendo risultati riproducibili rispetto a un modello di linguaggio puro. Inoltre, Letta supporta un modalità streaming per osservare in tempo reale l'esecuzione dell'agente.

Storico dei messaggi e portabilità

Le conversazioni sono conservate sul server, creando uno storico dei messaggi che evita di dover inviare l'intero contesto ad ogni scambio. Infine, l'agente può essere esportato in formato .af, garantendo la portabilità completa della logica e della memoria.

Dal punto di vista del codice, il tutorial guida nell'installazione del client Python letta-client, nella lettura della chiave API (variabile LETTAAPIKEY o inserimento interattivo) e nella configurazione di un'eventuale URL di base. Successivamente, vengono definite funzioni utilitarie per visualizzare il ragionamento dell'agente, le chiamate agli strumenti e i relativi ritorni, così come il consumo in termini di passaggi e token.

Scelta del modello e embedding

Il modello di generazione è selezionato da una lista di preferenza:

    • openai/gpt-4.1
    • openai/gpt-4o-mini
    • anthropic/claude-sonnet-4-20250514

Un piano di riserva è previsto nel caso in cui nessuno dei modelli sia disponibile. L'agente utilizza inoltre l'embedding openai/text-embedding-3-small per indicizzare i dati nella memoria vettoriale.

Robustezza e evoluzione dell'API

Il tutorial è progettato per resistere a possibili cambiamenti dell'API, includendo varianti di chiamata successive qualora la firma dei metodi venga modificata. Questo approccio riflette la tendenza del settore a rendere la memoria persistente, gli strumenti e la portabilità criteri fondamentali per l'adozione in produzione.

Letta nasce dal progetto di ricerca MemGPT e si ispira ai sistemi operativi, mantenendo una memoria centrale sempre presente nel contesto e una memoria d'archivio consultabile on-demand. Tale design affronta il problema centrale degli agenti conversazionali: la finestra di contesto limitata, che li rende amnesici tra una sessione e l'altra.

Impatto e considerazioni pratiche

Secondo l'analisi di Le Fil IA, la capacità di leggere, correggere e condividere la memoria dell'agente è il punto cruciale per passare da una semplice dimostrazione a una soluzione pronta per la produzione. Altri aspetti, come lo streaming, l'esportazione .af e lo strumento di rischio, sono considerati buoni strumenti di supporto, ma non sufficienti se la memoria non è auditabile.

Rimane comunque una domanda aperta: la soluzione reggerà quando la memoria d'archivio crescerà notevolmente e l'agente inizierà a “scriversi” errori? Solo i test su larga scala potranno confermare la scalabilità e la robustezza di questo approccio.