J’ai réussi à créer un plugin et un outil personnalisé qui permettent une mémoire persistante pour les personas de Discourse AI. Cela fonctionne bien d’après mes tests limités, et je voulais le partager si quelqu’un le trouve utile.
Ce que cela fait
Cette solution permet aux personas d’IA de se souvenir des informations spécifiques à l’utilisateur à travers les conversations.
Exemple : un utilisateur peut dire « Souviens-toi que je préfère le mode sombre » et l’IA stockera et rappellera cette préférence lors des interactions futures.
Composants
Ce système comporte trois parties :
- Plugin (
discourse-ai-persistent-memory)
Fournit le stockage en arrière-plan et une interface utilisateur de préférences où les utilisateurs peuvent visualiser, ajouter ou supprimer leurs souvenirs. - Outil IA personnalisé
Un outil JavaScript qui donne aux personas l’accès aux fonctions de mémoire :
memory.set,memory.get,memory.list,memory.delete - Prompt Système du Persona
Instructions qui indiquent à l’IA quand et comment utiliser l’outil de mémoire.
Comment cela fonctionne
- Les souvenirs sont stockés sous forme de paires clé/valeur dans le
PluginStore, avec un espace de noms par utilisateur. - Le plugin injecte les fonctions de mémoire dans le
ToolRunnervia un prépending de module (module prepend). - Les utilisateurs peuvent gérer leurs souvenirs à l’adresse :
/u/{username}/preferences/interface - L’IA charge tous les souvenirs dans le contexte (pas de récupération sélective).
Dépôt GitHub
https://github.com/BrianCraword/discourse-ai-persistent-memory
Recherche de commentaires
J’apprécierais vos commentaires sur :
- L’approche consistant à utiliser le prépending (
prepend) pour injecter dansToolRunner - Si le chargement de tous les souvenirs par rapport à la récupération sélective est pertinent
- Toutes les considérations de sécurité que j’aurais pu négliger
- Les améliorations générales de la qualité du code
Avertissement
Je ne suis pas programmeur — ceci a été construit avec l’aide de l’IA. Je ne suis pas en mesure de fournir un support, mais tout le monde est libre de l’utiliser, de le forker ou de l’améliorer. Utilisez à vos propres risques.
PROMPT :
## Système de mémoire
Vous disposez d'un système de mémoire persistante via l'outil user_memory. Utilisez-le pour mémoriser les faits importants concernant chaque utilisateur.
### Quand SAUVEGARDER les souvenirs :
* L'utilisateur mentionne des préférences (style de communication, sujets d'intérêt, préférences de format)
* L'utilisateur partage des détails personnels (profession, localisation, passe-temps)
* L'utilisateur mentionne des projets ou des objectifs en cours
* L'utilisateur vous demande explicitement de vous souvenir de quelque chose
### Quand RAPPELER les souvenirs :
* Au début d'une nouvelle conversation, appelez user_memory avec l'action "list" pour voir ce que vous savez
* Lors de la discussion de sujets susceptibles d'être liés à des conversations précédentes
### Conventions de clé de mémoire :
* preference_style, preference_topics, preference_format
* personal_profession, personal_location, personal_interests
* project_AAAA_MM (ex: project_2026_01)
* goal_[sujet] (ex: goal_learning_python)
### Exemple d'utilisation :
* Pour sauvegarder : `{ action: "save", key: "preference_style", value: "concise responses" }`
* Pour rappeler : `{ action: "recall", key: "personal_profession" }`
* Pour lister tout : `{ action: "list" }`
* Pour oublier : `{ action: "forget", key: "old_key" }`
Saluez toujours les utilisateurs de retour en vérifiant d'abord leurs souvenirs.
---
La définition de l'outil elle-même n'a pas besoin de changements car elle est déjà générique — mettez simplement à jour l'exemple du paramètre description si vous le souhaitez :
**Description du paramètre (key) :** La clé de mémoire (ex: preference_style, current_project)
Souhaitez-vous que j'ajuste le ton ou que j'ajoute/supprime des cas d'utilisation spécifiques ?
OUTIL :
Nom : Mémoire Utilisateur
Nom de l'outil : user_memory
Description : Un système de mémoire qui permet à l'IA de sauvegarder, rappeler, lister et oublier des faits sur les utilisateurs. Les souvenirs persistent à travers les conversations.
Résumé :
Stocker et rappeler des faits persistants sur l'utilisateur
Paramètres :
- action (string) [REQUIS]
L'action à effectuer : save, recall, list, ou forget
- key (string) [optionnel]
La clé de mémoire (ex: preference_style, current_project)
- value (string) [optionnel]
La valeur à stocker (nécessaire uniquement pour l'action save)
