Aller au contenu principal

Hermes Agent

TL;DR

EngramHermes Agent
PhilosophieProtocole axé sur les fichiers, appartenant à l'humain (automatisation facultative)Mémoire autonome toujours active
StockageFichiers Markdown typés dans .agents/.engram/MEMORY.md + USER.md (limites strictes de caractères)
Modèle d'écritureApprouvé par l'humain par défaut (validation A/B/C ; automatisable via des règles)L'agent écrit de manière autonome
RappelÀ la demande : engram load "<task>" injecte les fichiers pertinentsToujours actif : fichiers essentiels figés dans le system prompt à chaque session
Recherche vectorielleSqlite-vec local facultatif (déterministe, non basé sur les embeddings)Via fournisseur externe (par exemple, agentmemory — BM25 + vector)
Multi-agentTout agent lisant les fichiers peut consommer la mémoire EngramLe noyau de Hermes est mono-agent ; multi-agent via le plugin agentmemory
PortabilitéNatif de Git, hors ligne d'abord, Markdown brutFichiers locaux ; les fournisseurs externes peuvent imposer un verrouillage cloud
SurchargePas de démon, nécessite une discipline d'enregistrement (sauf si automatisé)Processus serveur + visualiseur UI, API REST, serveur MCP

Formats de stockage

Engram stocke chaque mémoire sous forme de fichier Markdown typé avec un frontmatter YAML, des vérifications d'intégrité de hash et un graphe de dépendance facultatif (depends_on). Un index JSON, un graphe et un sidecar sqlite-vec agissent comme des couches d'accélération — Markdown est la source de vérité.

Hermes compresse toute la mémoire persistante dans deux fichiers limités :

  • ~/.hermes/memories/MEMORY.md — notes de l'agent, limitées à 2 200 caractères
  • ~/.hermes/memories/USER.md — profil utilisateur, limité à 1 375 caractères

Les limites strictes de caractères obligent l'agent à organiser plutôt qu'à accumuler. L'historique des sessions est interrogeable via SQLite FTS5.

Modèle d'écriture

Engram — validation humaine explicite par défaut. Les agents proposent des candidats ; un humain doit approuver avant que quoi que ce soit ne soit écrit sur le disque. L'analyse des secrets et des injections de prompt a lieu au moment de l'enregistrement. Les utilisateurs peuvent choisir d'automatiser ce processus en enregistrant une règle pour enregistrer automatiquement les nouvelles mémoires proposées lorsqu'une réponse est terminée.

Hermes — autonome. L'agent décide quoi écrire et quand, contraint uniquement par les limites de caractères. Pas d'approbation humaine dans la boucle principale.

Modèle de rappel

Engram — routage à la demande. engram load "<task>" reclasse les candidats par balises, type, récence, graphe et signaux vectoriels facultatifs, puis injecte un package compact (par défaut : 8 fichiers) dans le contexte.

Hermes — injection toujours active. Les fichiers essentiels sont figés dans le system prompt au début de la session. Un fournisseur externe facultatif (par exemple, agentmemory) exécute une pré-lecture (prefetch) avant chaque tour de LLM et se synchronise après.

Quand utiliser lequel

Utilisez Engram lorsque vous avez besoin d'une mémoire auditable et révisée par des humains ; partage d'équipe via Git ; garanties de confidentialité ; ou portabilité indépendante de l'agent à travers les outils (avec l'option d'automatiser les enregistrements via des règles personnalisées).

Utilisez Hermes lorsque vous souhaitez une mémoire qui s'accumule automatiquement sans discipline d'enregistrement, une injection de contexte toujours active, ou un environnement d'écriture/visualisation plus riche avec des visualiseurs, une API REST et des backends vectoriels connectables.

Étapes suivantes