Mémoire persistante (MemoryTool)
Présentation
L'outil de mémoire permet à un agent de stocker, rechercher et retrouver des informations de manière persistante. Contrairement aux messages de conversation qui disparaissent à la fin du flux de travail, les mémoires sont enregistrées en base de données et peuvent être consultées ultérieurement, y compris depuis d'autres flux de travail.
L'outil prend en charge la recherche sémantique : lorsqu'un service de plongements lexicaux est configuré, les mémoires sont indexées sous forme de vecteurs et retrouvées par similarité de sens, pas uniquement par correspondance de mots.
Les quatre types de mémoires
Chaque mémoire appartient à l'un des quatre types suivants, qui déterminent sa portée et sa durée de vie :
- Préférence utilisateur — Choix et habitudes de l'utilisateur. Portée générale, importance élevée, sans expiration.
- Contexte — Information temporaire liée à la session en cours. Portée limitée au flux de travail, importance faible, expire automatiquement après 7 jours.
- Connaissance — Fait, référence ou savoir-faire. Portée générale, importance moyenne, sans expiration.
- Décision — Choix effectué et son raisonnement. Portée limitée au flux de travail, importance élevée, sans expiration.
Portée automatique
La portée d'une mémoire détermine sa visibilité :
- Générale — Accessible depuis tous les flux de travail. Les préférences utilisateur et les connaissances sont automatiquement stockées en portée générale.
- Flux de travail — Accessible uniquement dans le flux de travail où elle a été créée. Les contextes et les décisions sont automatiquement rattachés au flux de travail en cours.
Cette attribution est automatique, mais l'agent peut la modifier explicitement s'il le souhaite.
Opérations disponibles
Décrire
Affiche des statistiques sur les mémoires accessibles : nombre total, répartition par type, étiquettes utilisées, mémoires les plus anciennes et les plus récentes. Permet à l'agent de découvrir ce qui est disponible avant de chercher.
Ajouter
Crée une nouvelle mémoire avec un type, un contenu et des métadonnées optionnelles (étiquettes, source). L'importance et la portée sont attribuées automatiquement selon le type. Si un service de plongements lexicaux est actif, un vecteur est généré pour la recherche sémantique.
Rechercher
Retrouve les mémoires les plus pertinentes par rapport à une requête en langage naturel. La recherche sémantique compare le sens de la requête avec le contenu des mémoires stockées. Si le service de plongements lexicaux n'est pas disponible, une recherche textuelle est utilisée automatiquement.
Le score de pertinence combine trois facteurs :
- Similarité sémantique (70 %)
- Importance de la mémoire (15 %)
- Fraîcheur de la mémoire (15 %)
Lister
Affiche les mémoires avec filtrage optionnel par type et par portée. Un mode compact est disponible pour limiter la quantité de données, en tronquant le contenu à 100 caractères.
Consulter
Récupère le détail complet d'une mémoire à partir de son identifiant.
Supprimer
Supprime définitivement une mémoire par son identifiant.
Vider par type
Supprime toutes les mémoires d'un type donné, avec filtrage optionnel par portée. Opération irréversible.
Recherche sémantique et bascule de secours
Lorsqu'un service de plongements lexicaux est configuré (Mistral ou Ollama), chaque mémoire est convertie en un vecteur de 1 024 dimensions et indexée dans une structure HNSW. La recherche compare alors les vecteurs par similarité cosinus.
Si le service de plongements lexicaux n'est pas disponible ou rencontre une erreur, l'outil bascule automatiquement vers une recherche textuelle par sous-chaîne. L'opération reste fonctionnelle dans tous les cas.
Paramètres communs
- Contenu — Texte de la mémoire, jusqu'à 50 000 caractères
- Seuil — Score minimal pour la recherche (0 à 1, par défaut 0,7)
- Limite — Nombre maximal de résultats (par défaut 10, maximum 100)
- Portée — Filtrage par portée : flux de travail uniquement, générale uniquement, ou les deux
Les quatre types de mémoires
Chaque type détermine automatiquement la portée, l'importance et la durée de vie de la mémoire.
Préférence utilisateur
user_prefChoix et habitudes de l'utilisateur
Contexte
contextInformation temporaire liée à la session
Connaissance
knowledgeFait, référence ou savoir-faire
Décision
decisionChoix effectué et son raisonnement
Portée automatique
La portée détermine la visibilité d'une mémoire. Elle est attribuée automatiquement selon le type.
Portée générale
Accessible depuis tous les flux de travail
Portée flux de travail
Accessible uniquement dans le flux de travail d'origine
Opérations disponibles
L'outil expose sept opérations que l'agent peut appeler selon ses besoins.
Statistiques sur les mémoires accessibles : total, répartition par type, étiquettes
Crée une mémoire avec type, contenu et métadonnées. Vecteur généré automatiquement.
Recherche sémantique par similarité de sens, avec bascule de secours en mode texte
Affiche les mémoires avec filtrage par type et portée. Mode compact disponible.
Récupère le détail complet d'une mémoire par son identifiant
Supprime définitivement une mémoire par identifiant
Supprime toutes les mémoires d'un type donné. Opération irréversible.
Recherche sémantique
Le score de pertinence combine trois facteurs pour classer les résultats.
Proximité de sens entre la requête et le contenu de la mémoire
Poids attribué selon le type de mémoire (0,3 à 0,8)
Décroissance progressive sur 30 jours