Tu demandes à Hermes de retenir une information. Il répond « c’est noté », puis semble l’avoir oubliée à la conversation suivante. Avant d’ajouter un système de mémoire, il faut comprendre ce qui a été enregistré, dans quel profil, et comment cette information revient au modèle.
La mémoire native, les sessions, les profils et les providers externes répondent à des besoins différents. Ce ne sont pas quatre étages à installer l’un après l’autre. Nous allons les distinguer avec un seul exemple, puis vérifier une petite note de bout en bout.
1. Partir de ce que tu veux retrouver
Prenons un projet fictif : l’atelier Azur-62. Tu prépares des fiches, tu discutes de leurs variantes et tu souhaites retrouver le travail plus tard. Selon ce que tu veux conserver, le bon mécanisme change.
| Ton besoin | Le mécanisme adapté |
|---|---|
| Garder une convention de fiche | Mémoire native : une courte note chargée au début d’une session |
| Retrouver une comparaison passée | Historique : les messages à reprendre ou à rechercher |
| Séparer l’atelier de tes usages personnels | Profil distinct : un état Hermes séparé |
| Rechercher dans un corpus plus riche | Provider externe : un stockage et un rappel supplémentaires |
La note native est chargée si cette mémoire est activée ; les fonctions d’un provider dépendent du fournisseur choisi. Une même activité peut utiliser plusieurs de ces mécanismes. Par exemple, la convention reste dans la mémoire native tandis que le détail d’une comparaison reste dans l’historique. Un provider externe n’est pas nécessaire pour cet exemple.
2. Repérer le profil et ses mémoires
Il te faut un Hermes installé, un modèle qui répond et sait appeler les outils, et un terminal sur la machine qui conserve les données d’Hermes. Si ce point n’est pas acquis, commence par l’installation et les premiers outils utiles.
Nous utiliserons le profil default. Si tu en choisis un autre, remplace ce nom dans toutes les commandes. Vérifie d’abord son emplacement :
hermes profile show default
Note le répertoire indiqué. Dans une installation standard, le profil par défaut utilise ~/.hermes ; un profil nommé possède son propre répertoire. Ne déduis pas cet emplacement du dossier de travail du terminal : ce sont deux réglages différents.
La mémoire native utilise deux fichiers dans le sous-dossier memories du profil :
| Fichier | Contenu adapté |
|---|---|
MEMORY.md | Conventions de projet, faits d’environnement, notes utiles à l’agent |
USER.md | Préférences de communication et informations durables sur l’utilisateur |
Ces notes restent compactes. Lorsqu’elles sont activées, Hermes les charge dans le prompt système au début de la session. Une modification peut être écrite sur disque pendant la conversation, mais le bloc initial reste un instantané : la nouvelle note sera chargée au prochain démarrage de session. Le résultat de l’outil peut, lui, montrer immédiatement l’état mis à jour.
Pour isoler le rappel natif, utilise un profil sans provider externe actif : vérifie sa configuration avec hermes -p default memory status. Un provider peut injecter du contexte automatiquement, même sans appel d’outil visible. S’il est actif, prépare un profil d’essai sans provider en suivant le tuto sur les profils, plutôt que de modifier ton usage habituel.
Pour suivre l’essai, ferme les autres conversations actives du même profil. Si un gateway ou un autre agent travaille déjà avec ce profil, utilise un profil d’essai distinct plutôt que de faire écrire deux processus dans le même état.
3. Enregistrer une note et contrôler l’écriture
Ouvre une conversation dans le profil choisi :
hermes -p default chat
L’exemple qui suit est fictif et sera retiré après l’essai. Si tu as déjà une entrée contenant Azur-62, choisis un autre repère pour ne pas toucher à une note existante.
Observe l’appel à l’outil memory et son résultat. Une phrase comme « je m’en souviendrai » ne suffit pas. Si une approbation est demandée, lis la note proposée avant de l’accepter. Une écriture en attente n’est pas encore une note enregistrée.
Vérifie ensuite le fichier memories/MEMORY.md du répertoire de profil observé à l’étape 2, avec ton éditeur ou un lecteur de fichiers. Tu dois y retrouver la convention, sans perte des autres notes. Ne partage pas le fichier complet : il peut contenir d’autres informations de ton environnement.
memory sont activés. Si la capacité est atteinte, ne supprime pas d’anciennes notes au hasard : arrête l’exercice et relis-les séparément. Si ta configuration impose une validation, consulte les demandes avec /memory pending dans Hermes et traite uniquement celle de cet essai.4. Tester le rappel dans une nouvelle session
Une réponse correcte dans la même conversation ne prouve pas la persistance : la consigne est encore dans le contexte. Dans Hermes, envoie la commande suivante, seule, pour ouvrir une nouvelle session :
Pose ensuite la question sans répéter la convention :
Compare à la note contrôlée sur disque. Observe aussi les outils utilisés : si Hermes recherche l’ancienne conversation ou relit le fichier, il a retrouvé l’information par un autre chemin. Ce n’est pas le rappel natif que nous cherchons à isoler. La consigne ne désactive pas techniquement ces outils ; elle permet d’exprimer l’essai et d’en contrôler le déroulement.
Sur une messagerie, fermer l’application ou redémarrer la machine ne crée pas nécessairement une nouvelle session. Utilise une vraie frontière de conversation, comme /new, pour ce test.
5. Retrouver l’échange dans l’historique
La note compacte n’explique pas toute la discussion qui l’a produite. L’historique sert à retrouver ces messages, tant qu’ils sont conservés et accessibles dans le profil.
Pour voir la différence, demande maintenant à Hermes de rechercher l’échange d’origine :
Contrôle l’appel session_search, l’identifiant retourné et l’extrait. Notre question mentionne elle aussi Azur-62 : retrouver uniquement cette question ne suffit pas. Il faut retrouver le message d’enregistrement de l’étape 3.
Pour consulter les sessions depuis le terminal, quitte d’abord la conversation Hermes, puis lance :
hermes -p default sessions list
Si tu veux reprendre une session, remplace ID_OBSERVE ci-dessous par un identifiant réellement affiché, en conservant les guillemets :
hermes -p default --resume "ID_OBSERVE"
Reprendre un échange et démarrer une nouvelle session sont deux actions différentes. Pour une tâche interrompue, poursuis avec le tuto de reprise de mission : une conversation retrouvée ne prouve pas que les fichiers ou les processus sont encore dans le même état.
6. Retirer la note d’essai et choisir la suite
Dans une conversation du même profil, retire uniquement notre entrée fictive :
Vérifie le résultat et l’absence de cette entrée dans le même fichier. Si tu avais changé le repère, adapte la consigne. La suppression de la note ne supprime pas la conversation enregistrée, ni une éventuelle copie détenue par un provider externe. Elle ne retire pas non plus le texte déjà chargé dans une session en cours.
Séparer les usages avec un profil
Si ton besoin est de séparer l’atelier de tes autres activités, un profil distinct est le bon sujet à examiner. Il possède ses propres mémoires natives et son historique. Ce découpage de l’état Hermes n’est pas une isolation des permissions système : les outils gardent les accès de leur environnement.
Attention au clonage : dans la documentation actuelle, hermes profile create <nom> --clone copie notamment MEMORY.md et USER.md. Ne pars donc pas du principe qu’un clone commence sans mémoire. Une configuration externe copiée peut aussi viser le même stockage distant. Le tuto sur les profils développe ce choix ; vérifie toujours le contenu et la destination avant d’utiliser un nouveau profil.
Ajouter un provider seulement pour un besoin identifié
Un provider mémoire est un composant supplémentaire de stockage et de rappel. Selon le fournisseur, il peut apporter une recherche sémantique, une structuration des faits ou une extraction automatique. Ces possibilités, leur coût et l’emplacement des données dépendent du provider choisi.
Pour voir la configuration externe du profil sans en activer une :
hermes -p default memory status
Les commandes memory setup et memory off concernent le provider externe. off ne vide pas les fichiers de mémoire native et ne doit pas être pris pour une suppression des données chez le fournisseur. L’activation d’un provider ne remplace pas à elle seule les mémoires natives ; celles-ci peuvent être activées ou désactivées par leurs propres réglages.
Tu peux rester avec la mémoire native et l’historique tant qu’ils répondent à ton besoin. Si tu as un corpus plus important à retrouver, consulte la documentation des providers avant d’en connecter un.
Retrouver la cause d’un oubli
| Ce que tu observes | Ce que tu vérifies d’abord |
|---|---|
| Hermes dit avoir enregistré, mais la note est absente | Appel réel à memory, résultat, approbation éventuelle et bon fichier |
| La note existe, mais n’est pas rappelée | Même profil, mémoire activée, nouvelle session et absence d’erreur de chargement |
| Le résultat semble juste, mais un outil a été appelé | Le chemin réellement utilisé : mémoire chargée, lecture de fichier ou historique |
| Une ancienne discussion est introuvable | Profil, identifiant, termes recherchés, conservation et accès aux sessions |
| Une note supprimée revient dans une réponse | Contexte déjà chargé, historique ou provider externe : la note n’était pas l’unique source |
| Un clone connaît déjà d’anciennes conventions | Les mémoires copiées lors du clonage et les éventuels stockages externes partagés |
La suite logique
Garde dans la mémoire native ce qui est court, durable et utile à plusieurs conversations. Retrouve le détail dans les sessions. Si ce que tu veux conserver est une méthode à appliquer, plutôt qu’un fait, le tuto pour transformer une méthode en skill sera plus adapté.
Parcours proposé pour être reproduit ; aucun essai de mémoire Hermes n’a été exécuté pour cet article. Sources officielles vérifiées le 8 novembre 2026 : mémoire native, sessions, profils et providers mémoire.