Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Bonnes pratiques
Gestion du cycle de vie des mémoires
Utiliser le TTL pour la mémoire à court terme : définissez les valeurs TTL appropriées sur les entrées de mémoire pour faire expirer automatiquement les informations transitoires. Pour le contexte de session, utilisez des TTL de 30 minutes à 24 heures. Pour les préférences utilisateur à long terme, utilisez des TTL plus longs ou persistez indéfiniment.
Implémenter la dégradation de la mémoire — Mem0 fournit des mécanismes de dégradation intégrés qui suppriment les informations non pertinentes au fil du temps. Configurez-les pour éviter toute surcharge de mémoire à mesure que l'agent accumule davantage d'interactions.
Dédupliquer les mémoires — Avant de stocker une nouvelle mémoire, vérifiez si une mémoire similaire existe déjà à l'aide de la recherche par similarité vectorielle. Mettez à jour les mémoires existantes plutôt que de créer des doublons.
Configuration de l'index vectoriel
Choisissez le bon type d'index : à utiliser
FLATpour les petites mémoires (moins de 100 000 entrées) où une recherche précise est possible.HNSWÀ utiliser pour les grands magasins où la recherche approximative du plus proche voisin offre de meilleures performances à grande échelle.Sélectionnez les dimensions appropriées : adaptez les dimensions d'intégration à votre modèle. Amazon Titan Text Embeddings V2 produit des vecteurs à 1024 dimensions. Le text-embedding-3-small d'OpenAI produit des vecteurs de 1536 dimensions.
Utiliser la métrique de distance COSINE : pour les intégrations de texte à partir de modèles tels qu'Amazon Titan et OpenAI, la distance COSINE est généralement la métrique la plus appropriée pour mesurer la similitude sémantique.
Multi-user isolation
Répartissez les mémoires par ID utilisateur : incluez toujours un
user_idparamètre lors du stockage et de la recherche de mémoires afin d'éviter les fuites d'informations entre les utilisateurs.Utilisez des filtres TAG pour une isolation efficace : lorsque vous interrogez l'index vectoriel, utilisez des filtres TAG (par exemple
@user_id:{user_123}) pour préfiltrer les résultats par utilisateur avant d'effectuer une recherche KNN. Cela fonctionne comme une seule opération atomique, fournissant à la fois isolation et performance.# 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", )
Gestion de la mémoire à grande échelle
Définissez la politique de mémoire maximale : configurez
maxmemory-policy allkeys-lruvotre ElastiCache cluster pour expulser automatiquement les entrées de mémoire les moins récemment utilisées lorsque le cluster atteint sa limite de mémoire.Surveillez l'utilisation de la mémoire : utilisez CloudWatch les métriques Amazon pour suivre l'utilisation de la mémoire, les taux de réussite du cache et la latence de recherche vectorielle. Définissez des alarmes en cas d'utilisation élevée de la mémoire afin de gérer la capacité de manière proactive.
Planification de la capacité : chaque entrée de mémoire nécessite généralement environ 4 à 6 Ko (dimensions d'intégration × 4 octets + métadonnées). Une ElastiCache instance de 1 Go peut stocker environ 170 000 à 250 000 entrées de mémoire en fonction de la taille d'intégration et des métadonnées.