

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
<a name="agentic-memory-best-practices"></a>

## Gestione del ciclo di vita della memoria
<a name="agentic-memory-bp-lifecycle"></a>
+ **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
<a name="agentic-memory-bp-index"></a>
+ **Scegli il tipo di indice giusto**: utilizzalo `FLAT` per archivi di memoria più piccoli (meno di 100.000 voci) in cui è possibile una ricerca esatta. Utilizzatelo `HNSW` per 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
<a name="agentic-memory-bp-isolation"></a>
+ **Ambita le memorie in base all'ID utente**: includi sempre un `user_id` parametro 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
<a name="agentic-memory-bp-scale"></a>
+ **Imposta la policy maxmemory**: configura il ElastiCache cluster `maxmemory-policy allkeys-lru` in 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.