Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Best practice
Gestione del ciclo di vita della memoria
Usa TTL per la memoria a breve termine: imposta i valori TTL appropriati sulle voci di memoria per far scadere automaticamente le informazioni transitorie. Per il contesto della sessione, utilizzate TTL da 30 minuti a 24 ore. Per le preferenze utente a lungo termine, utilizza TTL più lunghi o persisti a tempo indeterminato.
Implementa il decadimento della memoria: Mem0 fornisce meccanismi di decadimento integrati che rimuovono le informazioni irrilevanti nel tempo. Configurali per evitare che la memoria si gonfia man mano che l'agente accumula più interazioni.
Deduplica le memorie: prima di archiviare una nuova memoria, controlla se esiste già una memoria simile utilizzando la ricerca per similarità vettoriale. Aggiorna le memorie esistenti anziché creare duplicati.
Configurazione dell'indice vettoriale
Scegli il tipo di indice giusto: utilizzalo
FLATper archivi di memoria più piccoli (meno di 100.000 voci) in cui è possibile una ricerca esatta. UtilizzateloHNSWper negozi di grandi dimensioni, dove la ricerca approssimativa del vicino più prossimo offre prestazioni migliori su larga scala.Seleziona le dimensioni appropriate: abbina le dimensioni di incorporamento al tuo modello. Amazon Titan Text Embeddings V2 produce vettori a 1024 dimensioni. text-embedding-3-small di OpenAI produce vettori a 1536 dimensioni.
Usa la metrica della distanza COSINE: per gli incorporamenti di testo da modelli come Amazon Titan e OpenAI, la distanza COSINE è in genere la metrica più appropriata per misurare la somiglianza semantica.
Multi-user isolamento
Ambita le memorie in base all'ID utente: includi sempre un
user_idparametro durante l'archiviazione e la ricerca nelle memorie per evitare la fuga di informazioni tra gli utenti.Usa i filtri TAG per un isolamento efficiente: quando esegui una query sull'indice vettoriale, usa i filtri TAG (ad esempio
@user_id:{user_123}) per prefiltrare i risultati per utente prima di eseguire la ricerca KNN. Funziona come un'unica operazione atomica, fornendo sia isolamento che prestazioni.# Example: TAG-filtered vector search for user isolation results = client.execute_command( "FT.SEARCH", "agent_memory", f"@user_id:{{{user_id}}}=>[KNN 5 @embedding $query_vec]", "PARAMS", "2", "query_vec", query_vec, "DIALECT", "2", )
Gestione della memoria su larga scala
Imposta la policy maxmemory: configura il ElastiCache cluster
maxmemory-policy allkeys-lruin modo da eliminare automaticamente le voci di memoria utilizzate meno di recente quando il cluster raggiunge il limite di memoria.Monitora l'utilizzo della memoria: utilizza i CloudWatch parametri di Amazon per monitorare l'utilizzo della memoria, le percentuali di accesso alla cache e la latenza della ricerca vettoriale. Imposta allarmi per un utilizzo elevato della memoria per gestire in modo proattivo la capacità.
Piano della capacità: ogni voce di memoria richiede in genere circa 4-6 KB (dimensioni di incorporamento × 4 byte+metadati). Un' ElastiCache istanza da 1 GB può memorizzare circa 170.000-250.000 voci di memoria a seconda delle dimensioni e dei metadati di incorporamento.