YouMind
Accedi

L'archiviazione costa poco. L'attenzione è costosa. Stai usando il sistema che sfrutta questa differenza?

@S_BatMan
INGLESE26 mag 2026
1.3M
305
37
11
179

TL;DR

L'analisi di 19 sistemi di IA rivela che gli agenti più efficaci utilizzano architetture di memoria a livelli per gestire il contesto. Separando i dati caldi, tiepidi e freddi, questi sistemi ottimizzano il recupero e riducono al minimo il rumore.

L'asimmetria che rende il tiering redditizio

Se c'è una cosa da cambiare nel modo in cui progetti la memoria di un agente, è questa: smetti di trattare il costo di archiviazione e il costo di attenzione come se fossero la stessa cosa.

Ho analizzato a fondo questo aspetto in 19 sistemi, e il risultato che continua a emergere è che quelli che gestiscono bene la memoria non sono necessariamente quelli con il recupero più sofisticato. Sono quelli che hanno capito quali memorie devono finire nel prompt. È un problema diverso, e ha una soluzione diversa.

L'archiviazione è economica. L'attenzione è costosa. Un modello con contesto da 128k che legge 110k di contesto mediocre non è, empiricamente, un agente migliore dello stesso modello che legge 8k di contesto accuratamente selezionato. La ricerca su questo è coerente: la qualità del recupero diminuisce man mano che il contesto si riempie di rumore, e il degrado non è lineare. Il modello non si limita a ignorare il materiale irrilevante. Lo elabora, e l'elaborazione soffoca il segnale.

L'archiviazione non ha questa proprietà. Un dato che risiede in un database non costa nulla da mantenere. Il costo arriva solo quando lo recuperi e lo carichi nel prompt. Il che significa che la domanda non è "dovrei archiviarlo?" ma "dovrei recuperarlo e, se sì, quando?"

È questo riformulare il problema che dà origine al tiering. Diversi elementi di memoria hanno diversi modelli di accesso. Alcune cose un agente le serve ogni turno: il nome dell'utente, il suo progetto corrente, le sue preferenze dichiarate. Alcune cose gli servono spesso ma non sempre: decisioni recenti, domande aperte, fatti episodici delle ultime sessioni. Altre cose dovrebbe essere in grado di trovarle quando serve, ma non dovrebbero mai appesantire ogni turno: note di riunione di tre mesi fa, attività completate, trascrizioni grezze, materiale di riferimento occasionale.

Un archivio piatto tratta tutte e tre le categorie in modo identico. Gli elementi caldi pagano il costo di ricerca degli elementi freddi. Gli elementi freddi gonfiano il prompt di rumore. Non esiste un meccanismo per cui gli elementi possano essere promossi man mano che diventano più rilevanti, e non esiste un meccanismo per cui gli elementi possano essere pensionati man mano che diventano meno rilevanti. L'analogia con i sistemi operativi è calzante: le CPU hanno L1, L2, L3, RAM, SSD e disco non perché i byte siano diversi, ma perché la frequenza di accesso varia di ordini di grandezza. Sette dei 19 sistemi che ho analizzato avevano già costruito un tiering esplicito prima che iniziassi a cercare. Due di questi meritano di essere compresi in dettaglio.

MemoryOS come implementazione di riferimento

MemoryOS è l'implementazione più chiara di memoria a livelli tra i 19 sistemi. Tre livelli, ciascuno con una forma di dati distinta, un budget di latenza distinto e un ruolo distinto.

Il livello a breve termine è una deque Python con una lunghezza massima di 10 coppie QA. Niente embeddings, niente indice di ricerca, niente tracciamento del calore. È puro materiale grezzo conversazionale, le ultime dieci interazioni, disponibile con latenza di microsecondi. Quando la deque si riempie, la coppia più vecchia viene scaricata nel livello a medio termine.

Il livello a medio termine contiene fino a 2000 sessioni. Ogni sessione porta con sé un riepilogo, un embedding, un insieme di parole chiave e contatori di calore. Il livello è indicizzato con Faiss e cercato per similarità del coseno. Quando il livello raggiunge la capacità, le sessioni più fredde vengono rimosse. Quando una sessione diventa abbastanza calda, viene promossa al livello a lungo termine.

Il livello a lungo termine è uno schema di psicologia e allineamento a 90 dimensioni, due deque di knowledge-base, una per i fatti dell'utente e una per i fatti dell'assistente, ciascuna con un massimo di 100 voci. Questo è lo strato persistente, quello che sopravvive tra le sessioni e porta il modello durevole dell'utente.

La formula del calore che governa la promozione è dodici righe di Python. Tre segnali: frequenza di visita, un analogo dell'LFU; profondità di interazione, una proxy per il coinvolgimento tematico; e decadimento della recency, esponenziale con un'emivita di 24 ore. Un segmento supera la soglia di promozione a 5.0. Dopo la promozione, i contatori di visita e interazione vengono azzerati e il calore collassa a circa 1.0.

La decisione di design che è facile non notare: il calore controlla la promozione, non il recupero. Il recuperatore è puramente semantico, similarità del coseno sugli embedding del medio termine. Il calore è un segnale di fondo che decide se un segmento dovrebbe passare al livello a lungo termine. Le due questioni sono disaccoppiate, e quel disaccoppiamento è più importante della formula stessa.

Ciò che MemoryOS lascia sul tavolo merita di essere menzionato. I coefficienti sono hardcoded a 1.0, non esiste un meccanismo per apprendere i pesi dai modelli di utilizzo effettivi. Non ci sono percorsi di declassamento; una volta che qualcosa raggiunge il livello a lungo termine, rimane lì. E la formula ottimizza per la frequenza piuttosto che per l'importanza. Un fatto critico ma raro, il nome di un partner, una condizione medica, un vincolo rigido, potrebbe non superare mai la soglia di promozione se emerge solo una volta. Una volta che il livello a medio termine rimuove il segmento, il fatto è perso.

I livelli derivati dalla teoria di Hindsight

Hindsight arriva alla stessa struttura a tre livelli da un punto di partenza completamente diverso. Mentre MemoryOS attinge alla teoria della cache dei sistemi operativi, Hindsight attinge alle scienze cognitive.

I tre livelli sono Mondo, Esperienza e Osservazioni. Mondo contiene affermazioni oggettive sull'universo, verità di base, sempre attive, di lunga durata. Esperienza contiene azioni in prima persona del sistema stesso, il record episodico. Osservazioni contiene credenze consolidate derivate da fatti di Mondo e Esperienza, con ID di memoria sorgente, un conteggio di prove e un campo storico che traccia come la credenza si è evoluta.

Tutti e tre i livelli vivono nella stessa tabella del database, differenziati da un discriminatore di tipo di fatto. Gli indici HNSW parziali sono costruiti per tipo di fatto. Lo schema è unificato; i modelli di accesso no.

La promozione in Hindsight non è guidata da contatori. È un consolidamento guidato da LLM in batch. Quando un nuovo fatto viene scritto, viene accodato in una tabella di operazioni asincrone. Un worker in background recupera i nuovi fatti insieme alle osservazioni sovrapposte esistenti, costruisce un prompt batch e chiede al modello di creare, aggiornare ed eliminare. Le memorie sorgente vengono timbrate con un timestamp consolidated-at per prevenire la rielaborazione. Ogni nuovo fatto, indipendentemente dalla frequenza con cui è stato accesso, viene preso in considerazione per la promozione al livello Osservazioni.

Questa è la differenza fondamentale rispetto a MemoryOS. Legando la promozione al livello superiore al consolidamento piuttosto che al calore, Hindsight evita il punto cieco per i fatti critici ma rari. Un singolo passaggio di consolidamento considera ogni nuovo fatto. La frequenza è irrilevante per decidere se qualcosa viene promosso.

Detto chiaramente: due sistemi, principi primi diversi, linguaggi di implementazione diversi, diversi casi d'uso target, eppure entrambi arrivano a tre livelli con materiale grezzo in fondo, uno strato di lavoro in mezzo e uno strato persistente sintetizzato in cima. Entrambi usano la promozione asincrona. Entrambi portano la provenienza ai livelli inferiori. Questo è l'aspetto dell'evoluzione convergente nell'architettura software, ed è il segnale più forte che conosco del fatto che un pattern sia portante.

Il tiering condizionato dal genere di @supermemory

supermemory opera nella forma di distribuzione API gestita, che cambia l'implementazione senza cambiare l'architettura. I tre livelli sono profilo statico, profilo dinamico e archivio di documenti e chunk.

Il profilo statico contiene fatti stabili a lungo termine, il livello caldo. Viene restituito come un array statico dall'endpoint del profilo, memorizzato nella cache all'edge, con un budget di latenza di circa 50ms. Il profilo dinamico contiene contesto recente ed episodico, il livello tiepido. Molte voci portano un campo forgetAfter che imposta un TTL. L'archivio di documenti e chunk è il livello freddo, interrogato tramite endpoint di ricerca quando necessario.

L'assegnazione del livello avviene al momento della scrittura. Un LLM di estrazione classifica ogni memoria in entrata con un booleano isStatic e opzionalmente un valore forgetAfter. La classificazione è imposta da un prompt di estrazione chiuso, uniforme per tutti i consumatori.

La forma di distribuzione API gestita abilita tre cose che un progettista in-process non può copiare direttamente ma dovrebbe capire. I dati del livello freddo possono risiedere su hardware più economico, object storage per byte grezzi, un archivio relazionale standard per metadati e chunk, con il profilo caldo memorizzato nella cache separatamente all'edge. Il livello caldo ha il proprio endpoint con il proprio SLA, separato dal percorso di ricerca. E il prompt di estrazione è centralizzato, il che significa che l'assegnazione del livello è coerente in un modo che la classificazione per agente raramente è.

I compromessi sono reali. Un livello caldo remoto è veloce solo se la rete è veloce. L'agente non può ignorare la classificazione del livello del motore. Il prompt di estrazione è una scatola nera. Ma il pattern architetturale, livello caldo come proprio endpoint, livello freddo su hardware più economico, assegnazione del livello al momento della scrittura, vale la pena copiarlo anche se la forma di distribuzione non lo è.

Promozione vs. tipologia fissa

mem9 è il caso di contrasto che chiarisce cosa non è il tiering.

mem9 ha una colonna memory-type con tre valori: pinned, insight e digest. Le memorie pinned sono assegnate da percorsi di scrittura espliciti del contenuto, create manualmente, protette dalla riconciliazione LLM. Le insight sono assegnate da ogni scrittura estratta da LLM, mutabili, versionabili, sostituibili. Entrambe partecipano allo stesso richiamo ibrido con lo stesso punteggio RRF. Il campo type è un flag di protezione in scrittura, non un filtro di recupero e non un segnale di livello.

Questa è tipologia, non tiering. La distinzione è importante perché i due concetti sono facili da confondere. La tipologia descrive la governance: chi può mutare questa memoria e a quali condizioni. Il tiering descrive i modelli di accesso: quanto frequentemente è necessaria questa memoria e quale rappresentazione di archiviazione serve al meglio quella frequenza. Un sistema può avere entrambi. isStatic di supermemory è un segnale di livello, mentre un flag isInference separato è più vicino a una classe di governance. Ma confonderli produce la maggior ambiguità nella pratica.

Se ti ritrovi ad aggiungere un campo type alle tue righe di memoria, la domanda da porsi è se il campo descrive un modello di accesso o una classe di governance. Se è un modello di accesso, stai costruendo il tiering. Se è una classe di governance, stai costruendo la tipologia. Entrambi sono utili. Non sono la stessa cosa.

Cosa costa un archivio piatto

Quattro cose concrete derivano dalla gestione di un archivio di memoria piatto.

Il percorso caldo paga il costo di ricerca del percorso freddo. Ogni recupero esegue la scansione dello stesso indice sugli stessi elementi. L'agente che cerca il nome dell'utente paga lo stesso costo di ricerca dell'agente che cerca una nota di riunione di sei mesi fa. Su piccola scala questo è invisibile. Su larga scala è un problema di latenza.

Il percorso freddo gonfia il prompt di rumore. Il recupero restituisce elementi semanticamente vicini, che includono contesto permanente, fatti superati e materiale che è fattualmente corretto ma irrilevante per il turno corrente. Il modello elabora tutto questo. Il rapporto segnale-rumore nella finestra di contesto degrada man mano che l'archivio cresce.

Non esiste un meccanismo per cui gli elementi possano essere promossi. La memoria non è statica. Un fatto episodico fugace dall'inizio di una relazione potrebbe, col tempo, diventare un segnale durevole sulle preferenze o i vincoli dell'utente. Un archivio piatto non fornisce alcun meccanismo per notare questa transizione. L'elemento rimane nella stessa rappresentazione in cui è stato scritto, indipendentemente da come la sua rilevanza sia cambiata.

Non esiste un meccanismo per cui gli elementi possano essere pensionati. Il declassamento non è cancellazione. Un archivio piatto che vuole rimuovere materiale obsoleto deve cancellarlo. Un archivio a livelli può spostarlo in una rappresentazione più fredda, ancora trovabile, senza più appesantire il percorso caldo. L'archivio piatto forza una scelta binaria che l'archivio a livelli non fa.

Il risultato netto

18 dei 19 sistemi implementano il tiering, vi accennano o hanno raccomandazioni esplicite al riguardo. L'eccezione è mem9, che ha uno strato di tipologia che risolve un problema diverso e che trarrebbe beneficio dal tiering sopra di esso.

Se stai costruendo la memoria di un agente da zero, la progressione a cui puntano i 19 sistemi è questa. Identifica ciò di cui l'agente ha bisogno ogni turno, questo è il tuo livello caldo. Identifica ciò di cui ha bisogno spesso ma non sempre, questo è il tuo livello tiepido. Identifica ciò che dovrebbe trovare quando serve ma non dovrebbe mai appesantire ogni turno, questo è il tuo livello freddo. Scegli un meccanismo di promozione: basato sul calore come MemoryOS, basato sul giudizio LLM come Hindsight, o classificazione al momento dell'estrazione come supermemory. Scegli un meccanismo di declassamento: decadimento temporale, TTL o categorie di freschezza. Mantieni separati la promozione e il punteggio di recupero all'inizio, il disaccoppiamento è più facile da aggiungere che da districare in seguito. Tieni traccia della provenienza dai livelli superiori a quelli inferiori, in modo da poter sempre rispondere alla domanda su da dove provenga una credenza sintetizzata.

I 19 sistemi non sono unanimi su molto. Su questo sì: un singolo archivio di memoria piatto è l'impostazione predefinita sbagliata per qualsiasi sistema di memoria per agenti non banale.

L'archiviazione è economica. L'attenzione è costosa. Costruisci il sistema che sfrutta la differenza.

Se hai trovato interessante questo articolo, condividilo

Salva con un clic

Leggi in profondità gli articoli virali con l’AI di YouMind

Salva la fonte, fai domande mirate, riassumi l’argomentazione e trasforma un articolo virale in note riutilizzabili in un unico spazio di lavoro AI.

Scopri YouMind
Per i creator

Trasforma il tuo Markdown in un articolo 𝕏 pulito

Quando pubblichi i tuoi testi lunghi, formattare immagini, tabelle e blocchi di codice per 𝕏 è una seccatura. YouMind trasforma un'intera bozza Markdown in un articolo 𝕏 pulito e pronto da pubblicare.

Prova Markdown verso 𝕏

Altri pattern da decodificare

Articoli virali recenti

Esplora altri articoli virali