Explication de fonctionnalité

Mémoire persistante Hermes Agent

Hermes Agent se souvient de vos préférences, corrections, informations sur l'environnement et conventions de projet d'une session à l'autre — pour que vous n'ayez jamais à vous répéter. La mémoire persistante est ce qui transforme une conversation IA ponctuelle en un assistant auto-améliorant qui devient plus utile chaque fois que vous l'utilisez.

Ce que signifie vraiment la mémoire persistante

La plupart des assistants IA repartent à zéro chaque fois que vous ouvrez une nouvelle conversation. Ils ne se souviennent pas que vous préférez des réponses concises, que votre projet utilise pytest avec des options spécifiques, ou que votre CLI 1Password se trouve à un chemin non standard. Vous finissez par répéter le même contexte encore et encore.

Hermes Agent résout ce problème avec la mémoire persistante : un entrepôt de connaissances local et durable que l'agent écrit et lit automatiquement. Chaque fois que vous corrigez l'agent, partagez une préférence ou lui apprenez quelque chose sur votre environnement, il enregistre ce fait. Lors de votre prochaine session — que ce soit cinq minutes ou cinq semaines plus tard — l'agent sait déjà.

Ce n'est pas un historique de conversation. C'est un ensemble organisé et structuré de faits que l'agent utilise activement pour prendre de meilleures décisions. Pensez-y comme le carnet de notes de l'agent — un carnet qui devient plus utile à chaque entrée.

Comment ça fonctionne

La mémoire persistante est intégrée à la boîte à outils principale de Hermes Agent. L'agent appelle l'outil memory pour enregistrer, mettre à jour ou supprimer des entrées, et chaque entrée est injectée dans l'invite système de l'agent au début de chaque tour. Voici le cycle de vie :

  1. Découverte. L'agent remarque quelque chose qui vaut la peine d'être retenu — une correction que vous avez faite, une particularité d'outil qu'il a découverte, une convention de projet que vous avez mentionnée.
  2. Stockage. L'agent écrit le fait dans l'un de deux entrepôts de mémoire : utilisateur (qui vous êtes, vos préférences, votre style de communication) ou mémoire (informations sur l'environnement, conventions de projet, particularités d'outils, leçons apprises).
  3. Injection. À chaque tour suivant, toutes les entrées enregistrées sont injectées dans le contexte de l'agent. L'agent les lit avant de répondre, donc il sait toujours ce que vous lui avez appris.
  4. Auto-correction. Lorsque vous dites à l'agent quelque chose de nouveau qui contredit une ancienne entrée, il met à jour l'entrée. La mémoire reste précise parce qu'elle est maintenue par l'agent lui-même.

Deux entrepôts de mémoire, deux objectifs

Hermes Agent divise la mémoire en deux entrepôts pour traiter différents types de faits différemment :

Profil utilisateur

Qui vous êtes. Votre nom, rôle, préférences, style de communication, irritants. Des faits sur vous en tant que personne. L'agent les utilise pour adapter son ton, son format et sa profondeur à votre façon de travailler.

Notes de l'agent

Ce que l'agent a appris. Informations sur l'environnement, conventions de projet, particularités d'outils, chemins de logiciels installés, configurations API. Des faits sur votre configuration que l'agent a découverts en travaillant. Cela empêche l'agent de répéter des erreurs ou de redécouvrir des choses qu'il a déjà comprises.

À quoi ressemblent de vraies entrées de mémoire

Voici des exemples réels d'entrées de mémoire, tirés d'une configuration Hermes Agent authentique. Ces entrées résident dans une base de données SQLite locale et sont injectées dans chaque session :

Profil utilisateur — qui est l'utilisateur
L'utilisateur souhaite utiliser Hermes pour l'automatisation locale
d'applications macOS, y compris Apple Notes, et pour connecter
Google Workspace afin que Hermes puisse accéder aux flux de
travail de type Gmail/Agenda/Drive.

L'utilisateur préfère les configurations de routage de modèle
Hermes qui préservent le quota d'abonnement ChatGPT/OpenAI en
déplaçant les tâches auxiliaires ou d'arrière-plan vers des
modèles moins chers ou plus rapides lorsque c'est pratique.

L'utilisateur préfère la collecte de besoins à questions multiples
par petits lots d'environ 5 questions à la fois, parce que les
longues listes de questions sont difficiles à suivre dans le terminal.
Notes de l'agent — faits sur l'environnement et les outils
1Password CLI est installé pour l'utilisateur à ~/.local/bin/op
(version 2.34.0), extrait du paquet macOS universel officiel
parce que Homebrew n'est pas installé.

Google Workspace OAuth est configuré pour l'utilisateur via Hermes
à ~/.hermes/google_token.json et ~/.hermes/google_client_secret.json.
Utilisez le Python de l'environnement virtuel Hermes pour les scripts
google-workspace parce que python3 système macOS est 3.9 et échoue
sur la syntaxe de type Python 3.10+.

Le coffre Obsidian de l'utilisateur est à ~/Documents/Obsidian Vault,
configuré pour Hermes via OBSIDIAN_VAULT_PATH dans ~/.hermes/.env.

Ces entrées signifient que l'agent ne demande jamais « où est installé 1Password? » ou « quel Python dois-je utiliser pour Google Workspace? » Il le sait déjà. Lorsque l'utilisateur dit « écris une note dans Obsidian », l'agent lit le chemin du coffre depuis la mémoire et procède sans aucune question de clarification.

Comment ces entrées influencent le comportement

Parce que la mémoire est injectée avant chaque tour, le comportement de l'agent change sans que l'utilisateur ait jamais à répéter des instructions :

  • Style de codage. « L'utilisateur préfère pytest avec xdist pour les tests parallèles. » → L'agent exécute pytest -n auto au lieu de pytest simple.
  • Chemins d'outils. « Claude Code CLI est à ~/.local/bin/claude mais nécessite claude auth login. » → L'agent connaît l'emplacement du binaire et que l'authentification est en attente.
  • Gestion des secrets. « L'utilisateur préfère la gestion sécurisée des secrets via les références 1Password/CLI plutôt que de coller des mots de passe. » → L'agent utilise les références op read au lieu de demander des clés API.
  • Communication. « L'utilisateur préfère les réponses concises. » → L'agent saute le préambule et va droit à la réponse.
  • Correction continue. L'agent a essayé d'utiliser Python système macOS pour les scripts Google et ça a échoué. Il a enregistré : « Utilisez le Python de l'environnement virtuel Hermes. » → Ne refait plus jamais cette erreur.

Ce qui distingue la mémoire persistante Hermes

Plusieurs choses distinguent la mémoire de Hermes Agent de la mémoire de conversation IA typique ou de la récupération contextuelle vectorielle :

Auto-amélioration au fil du temps

La mémoire n'est pas statique. L'agent met à jour les entrées lorsque vous le corrigez, supprime les faits obsolètes et en ajoute de nouveaux à mesure qu'il les découvre. Chaque session rend l'agent plus intelligent pour la suivante — sans que vous leviez le petit doigt.

Durable, pas éphémère

Les entrées de mémoire survivent aux sessions, aux redémarrages et aux relances de l'agent. Elles résident dans une base de données SQLite locale. Il n'y a pas de dépendance infonuagique, pas d'expiration basée sur des jetons et pas d'oubli après que la fenêtre de contexte est pleine.

Intentionnel, pas approximatif

L'agent choisit ce qu'il faut retenir en fonction de ce qui importe. Il ne déverse pas des transcriptions entières de conversation dans une base de données vectorielle en espérant le meilleur. Chaque entrée est un fait délibéré, lisible par un humain — compact et à signal élevé.

Fonctionne avec les compétences et les tâches planifiées

La mémoire s'intègre aux compétences de Hermes Agent (mémoire procédurale — flux de travail réutilisables pour les types de tâches récurrentes) et aux tâches planifiées (flux de travail programmés qui s'exécutent seuls). Ensemble, ils créent un agent qui non seulement se souvient des faits, mais aussi de comment faire les choses et quand les faire.

Mémoire, compétences et tâches planifiées : trois types de mémoire d'agent

Hermes Agent dispose de trois systèmes de mémoire complémentaires qui fonctionnent ensemble :

Système Ce dont il se souvient Idéal pour
Mémoire persistante Faits, préférences, détails d'environnement « Que doit savoir l'agent avant de commencer? »
Compétences Procédures, flux de travail, savoir-faire « Comment faire X? » — instructions étape par étape réutilisables
Tâches planifiées Planifications, tâches récurrentes, déclencheurs d'automatisation « Quand cela doit-il s'exécuter? » — exécution autonome basée sur le temps

Ensemble, ces trois systèmes signifient que l'agent sait ce que vous aimez (mémoire), comment faire les choses (compétences) et quand agir (tâches planifiées). C'est la différence entre un agent conversationnel utile et un véritable assistant IA.

Confidentialité : où réside votre mémoire

Toute la mémoire persistante est stockée localement sur votre machine. Les entrées de mémoire résident dans une base de données SQLite à l'intérieur de votre répertoire de configuration Hermes (~/.hermes/). Aucune donnée de mémoire n'est envoyée aux serveurs de Hermes Agent, à aucun fournisseur de modèle ni à aucun tiers — à moins que l'agent n'utilise un fait de la mémoire lors d'une conversation avec un fournisseur de modèle infonuagique, auquel cas ce fait spécifique apparaît dans l'invite pour ce tour seulement.

La mémoire est chiffrée au repos si le chiffrement de votre disque est activé (FileVault sur macOS, LUKS sur Linux). Vous pouvez inspecter, modifier ou supprimer n'importe quelle entrée de mémoire à tout moment. Il n'y a pas de conservation cachée, pas de télémétrie et pas de synchronisation de mémoire à distance — ce sont vos données, sur votre machine.

Exemple pratique : une session avec et sans mémoire

Voici à quoi ressemble la même tâche avec et sans mémoire persistante :

Sans mémoire

Première session à chaque fois

Utilisateur : « Configure une tâche planifiée pour exécuter le rapport hebdomadaire tous les lundis à 9 h. »

Agent : « Quel Python dois-je utiliser? Où est le script du rapport? De quels identifiants a-t-il besoin? Quel fuseau horaire? »

L'agent pose 4 questions de clarification parce qu'il ne connaît pas votre environnement.

Avec mémoire

Session 20 — l'agent sait déjà

Utilisateur : « Configure une tâche planifiée pour exécuter le rapport hebdomadaire tous les lundis à 9 h. »

Agent : Lit la mémoire → connaît le Python de l'environnement virtuel Hermes, le chemin du script de rapport, l'emplacement du jeton Google et le fuseau horaire HNE. Configure la tâche en une commande. Terminé.

Quand utiliser la mémoire vs quand utiliser les compétences

Une question courante : « Est-ce que ça devrait être une entrée de mémoire ou une compétence? » Voici la règle générale :

  • La mémoire sert aux faits que l'agent devrait connaître : « Le projet utilise pytest avec xdist », « 1Password CLI est à ~/.local/bin/op », « L'utilisateur préfère les réponses concises. » La mémoire est déclarative — elle décrit l'état des choses.
  • Les compétences servent aux procédures que l'agent devrait suivre : « Comment déployer le site », « Comment exécuter la suite de tests », « Comment configurer une nouvelle connexion OAuth Google Workspace. » Les compétences sont impératives — elles décrivent comment faire les choses.

Si vous vous surprenez à écrire une entrée de mémoire qui commence par « Toujours faire X » ou « Quand Y arrive, faire Z », c'est une compétence, pas une entrée de mémoire. La mémoire dit ce qui est vrai; les compétences disent quoi faire.

Premiers pas avec la mémoire persistante

La mémoire persistante fonctionne automatiquement — vous n'avez rien à configurer. L'agent commence à se souvenir dès votre première session. Voici comment en tirer le meilleur parti :

  1. Corrigez l'agent quand il se trompe. Chaque correction devient une entrée de mémoire qui empêche la même erreur à l'avenir.
  2. Dites à l'agent vos préférences dès le départ. « Je préfère les réponses courtes », « Utilise 1Password pour les secrets », « Mon fuseau horaire est l'Est. » L'agent les enregistre immédiatement.
  3. Laissez l'agent découvrir votre environnement. Quand il trouve votre coffre Obsidian, votre chemin Python ou votre configuration GitHub, il enregistre ces faits. Vous n'avez pas besoin de tout documenter manuellement.
  4. Révisez la mémoire périodiquement. Vous pouvez inspecter les entrées de mémoire à tout moment. Supprimez celles qui sont obsolètes et l'agent apprendra le nouvel état par lui-même.

Foire aux questions

Puis-je voir ce que l'agent a retenu?

Oui. Les entrées de mémoire sont stockées dans une base de données SQLite lisible à ~/.hermes/memory.db. Vous pouvez les inspecter directement ou demander à l'agent : « De quoi te souviens-tu à mon sujet? » Il listera chaque entrée.

La mémoire fonctionne-t-elle sur différents appareils?

La mémoire est locale par défaut. Si vous exécutez Hermes Agent sur deux machines différentes, chacune a son propre entrepôt de mémoire. Pour les configurations multi-appareils, vous pouvez synchroniser le fichier de base de données mémoire avec votre outil de synchronisation préféré, ou utiliser la configuration auto-hébergée avec un volume partagé.

Que se passe-t-il si l'agent se souvient de quelque chose d'incorrect?

Corrigez-le. Dites « Non, ce n'est pas ça — le chemin Python est en fait X. » L'agent met à jour l'entrée. La mémoire est auto-correctrice parce que l'agent traite vos corrections comme ayant une priorité plus élevée que ses propres observations précédentes.

La mémoire est-elle partagée avec les fournisseurs de modèles?

Les entrées de mémoire sont injectées dans l'invite lorsque vous parlez à l'agent, donc le contenu de ces entrées est visible par le fournisseur de modèle pendant ce tour de conversation. Cependant, la base de données de mémoire elle-même ne quitte jamais votre machine. Pour une confidentialité maximale, combinez la mémoire persistante avec un modèle auto-hébergé où aucune donnée ne quitte votre infrastructure.

En quoi est-ce différent de la mémoire de ChatGPT?

La mémoire de ChatGPT est hébergée dans le nuage, gérée par OpenAI et liée à votre compte. La mémoire de Hermes Agent est locale, sous votre contrôle et fonctionne avec le fournisseur de modèle de votre choix. Elle s'intègre également aux compétences et aux tâches planifiées d'une façon que la mémoire de ChatGPT ne fait pas — elle fait partie d'une architecture d'agent plus large, pas d'une fonctionnalité isolée.

Puis-je tout supprimer et recommencer à zéro?

Oui. Supprimez ou renommez ~/.hermes/memory.db et l'agent recommence avec une page blanche. Aucun compte infonuagique à supprimer, aucune politique de conservation à attendre.

Prochaines étapes

La mémoire persistante est l'une des fonctionnalités qui font de Hermes Agent un assistant auto-améliorant. Pour avoir une vue d'ensemble :