Podemos dedicar bastante tiempo a explicar un proyecto, definir objetivos, corregir errores y establecer una forma concreta de trabajar, pero al comenzar una nueva sesión parte de ese contexto puede haber desaparecido.
Sin memoria, cada conversación se parece demasiado a empezar desde cero.
Hay que volver a explicar quiénes somos, en qué proyecto estamos trabajando, qué decisiones se tomaron y qué preferencias debería respetar el agente. Esto consume tiempo, reduce la coherencia de las respuestas y aumenta la posibilidad de repetir errores que ya habíamos corregido.
La memoria persistente de Hermes Agent intenta resolver precisamente ese problema. Permite conservar información en el disco y recuperarla en conversaciones posteriores, incluso después de cerrar una sesión o reiniciar el servidor.

Ahora bien, recordar no significa necesariamente guardar todos los mensajes. Para mí, una buena memoria no es la que almacena más información, sino la que sabe qué merece conservarse, cuándo debe recuperarlo y cómo actualizarlo cuando deja de ser válido.
En esta guía voy a explicar cómo funciona la memoria de Hermes Agent, cómo configurarla, dónde se almacena, cómo comprobar que realmente sobrevive entre sesiones y qué medidas conviene aplicar para evitar recuerdos incorrectos, duplicados o sensibles.
La parte técnica toma como referencia una instalación de Hermes v0.17.0 documentada sobre Ubuntu 22.04, utilizando el instalador de Nous Research y el directorio local ~/.hermes/. Los comandos, rutas o comportamientos pueden cambiar en versiones posteriores, por lo que conviene comprobar la versión instalada antes de modificar archivos. ambia cuando Hermes Agent puede recordar entre sesiones
El problema de empezar cada conversación desde cero
Un modelo de lenguaje puede seguir una conversación mientras los mensajes anteriores permanecen dentro de su ventana de contexto. El problema aparece cuando iniciamos otra sesión, reiniciamos el servicio o utilizamos el agente desde un canal diferente.
En ese momento, el asistente puede dejar de disponer de la información que habíamos compartido.
Esto resulta especialmente incómodo cuando estamos trabajando en:
- Un desarrollo que se prolonga durante varias semanas.
- La administración de un servidor.
- Una estrategia de contenidos.
- Una investigación con múltiples fuentes.
- La documentación de una incidencia.
- Un flujo de trabajo con decisiones acumuladas.
Imagina que durante una sesión explicamos la arquitectura de una aplicación, descartamos una biblioteca porque causaba errores y decidimos emplear otra solución. Si Hermes no conserva esa decisión, en la siguiente conversación podría volver a recomendar la biblioteca descartada.
El problema no es solo tener que repetir información. También se pierde parte del aprendizaje generado durante el trabajo.
Qué puede aportar la continuidad a un proyecto real
Con memoria persistente, Hermes puede conservar determinados hechos, preferencias o decisiones y recuperarlos cuando vuelvan a ser relevantes.
Por ejemplo, podría recordar que:
- El proyecto utiliza WordPress.
- El servidor funciona con Ubuntu.
- Una aplicación determinada no debe actualizarse todavía.
- Los artículos deben escribirse en español.
- Antes de modificar una configuración hay que crear una copia de seguridad.
- Ya se probó una solución y no funcionó.
- Una decisión técnica debe revisarse en una fecha concreta.
Cuando un proyecto se alarga durante varios días, lo útil no es que Hermes reproduzca toda la conversación anterior. Lo importante es que recuerde qué se decidió, qué salió mal y desde qué punto debemos continuar.
Esta continuidad convierte la memoria en algo más que una función cómoda. Puede reducir trabajo repetido, evitar contradicciones y ayudar a mantener procedimientos coherentes.
Memoria persistente no significa guardar todo el historial
Es fácil imaginar la memoria como un registro infinito en el que se almacenan todos los mensajes. Sin embargo, acumular conversaciones completas sin ningún criterio puede empeorar el sistema.
Cuanto mayor sea el volumen de información irrelevante, más difícil resultará encontrar el dato correcto.
Una memoria útil debería diferenciar entre:
- Información temporal necesaria durante una tarea.
- Hechos que seguirán siendo útiles en el futuro.
- Decisiones asociadas a un proyecto.
- Preferencias relativamente estables.
- Procedimientos que deben repetirse.
- Datos que han caducado y deben eliminarse.
Hermes separa los recuerdos seleccionados del historial completo de las sesiones. En la instalación analizada, los hechos que el agente decide conservar se escriben en un archivo Markdown, mientras que los mensajes y sesiones se registran en una base de datos SQLite. aración es importante: un historial permite consultar qué se dijo, pero una memoria debería permitir recuperar rápidamente qué información continúa siendo relevante.
Qué es la memoria persistente de Hermes Agent
La memoria persistente es la capacidad de conservar información fuera de la conversación activa para poder utilizarla en sesiones posteriores.
Se denomina persistente porque los datos se guardan en un medio duradero, normalmente el sistema de archivos o una base de datos. Cerrar el programa no debería borrarlos. Tampoco deberían desaparecer cuando el servicio o el servidor se reinician, siempre que el almacenamiento continúe disponible.
Eso no significa que la memoria sea permanente o imborrable. Los recuerdos pueden editarse, sustituirse, respaldarse o eliminarse.
Diferencia entre memoria, historial y ventana de contexto
Estos tres conceptos suelen confundirse.
La ventana de contexto contiene la información que el modelo recibe para resolver la tarea actual. Incluye mensajes recientes, instrucciones, resultados de herramientas y recuerdos recuperados.
El historial conserva los intercambios anteriores. Permite consultar qué escribió el usuario, qué respondió el agente y qué herramientas se ejecutaron.
La memoria persistente almacena hechos o fragmentos que pueden resultar útiles más adelante. Su objetivo no es reproducir toda la conversación, sino aportar continuidad.
La memoria persistente no sustituye a la memoria de trabajo. La complementa.
Antes de responder, Hermes necesita cargar dentro del contexto activo la información que pueda ayudarle. Si se recuperan demasiados datos, aparecerá ruido. Si se recuperan muy pocos, se perderá continuidad.
Qué información merece conservarse
Normalmente tiene sentido guardar información como:
- Nombre o forma de dirigirse al usuario.
- Idioma y estilo preferidos.
- Tecnologías empleadas habitualmente.
- Objetivos de un proyecto.
- Decisiones importantes.
- Problemas encontrados y soluciones aplicadas.
- Restricciones que deben respetarse.
- Procedimientos internos.
- Fechas de revisión.
- Estado en el que quedó una tarea.
Un buen recuerdo debería ser claro incluso cuando se lea fuera de la conversación original.
En lugar de almacenar:
“Al final decidimos usar la segunda opción.”
Es preferible guardar:
“Para el proyecto Atlas se decidió utilizar PostgreSQL en lugar de MySQL debido a la necesidad de búsquedas vectoriales. Revisar la decisión si cambia el proveedor de alojamiento.”
El segundo recuerdo incluye el proyecto, la decisión, el motivo y la condición que podría hacerla cambiar.
Qué información debería descartarse
No todo lo que aparece en una conversación merece almacenarse.
Normalmente conviene evitar:
- Saludos.
- Comentarios informales sin utilidad futura.
- Mensajes repetidos.
- Resultados provisionales.
- Hipótesis que no han sido confirmadas.
- Datos que solo son válidos durante unos minutos.
- Credenciales o secretos.
- Copias completas de contenido que ya existe en otro archivo.
- Preferencias antiguas que han sido sustituidas.
Guardar indiscriminadamente puede generar duplicados y contradicciones. Por eso, la calidad de la memoria depende tanto de lo que se conserva como de lo que se decide olvidar.
Cómo funciona la memoria de Hermes Agent
El funcionamiento puede entenderse como un ciclo de seis pasos:
conversación → selección → almacenamiento → búsqueda → recuperación → mantenimiento.
1. Hermes recibe información durante la sesión
Mientras conversamos, Hermes trabaja con el contexto actual. Puede utilizar instrucciones, herramientas, archivos y resultados de operaciones anteriores dentro de esa misma sesión.
En esta fase, la información todavía no tiene por qué convertirse en memoria persistente.
Podemos comentar una preferencia temporal, explorar varias alternativas o plantear una hipótesis. Guardar todo inmediatamente sería poco recomendable porque muchas ideas todavía no han sido validadas.
2. Los datos relevantes se seleccionan y almacenan
Cuando pedimos expresamente que recuerde un hecho, Hermes puede activar su herramienta de memoria y añadirlo al almacenamiento a largo plazo.
En la implementación documentada, la llamada utiliza una operación de adición y escribe el contenido seleccionado en ~/.hermes/memories/MEMORY.md. El historial completo de la interacción queda registrado por separado en ~/.hermes/state.db. lo de instrucción sería:
Guarda en tu memoria a largo plazo lo siguiente:
El proyecto Atlas utiliza PostgreSQL 17. No debes proponer
una migración a MySQL sin revisar primero los requisitos
de búsqueda vectorial.
Etiqueta conceptual: arquitectura del proyecto.
Revisar esta decisión el 1 de octubre de 2026.
La fecha de revisión es útil cuando la información puede quedar obsoleta.
3. El agente busca recuerdos relacionados con la nueva tarea
En una nueva sesión, Hermes puede consultar sus recuerdos o buscar en conversaciones anteriores.
La recuperación no debería limitarse a coincidencias literales. Si el usuario pregunta por “la base de datos de Atlas”, el sistema debería ser capaz de localizar un recuerdo que menciona PostgreSQL aunque la frase exacta sea diferente.
Algunas guías de terceros proponen memorias etiquetadas y recuperaciones basadas en relevancia semántica. Sin embargo, esas configuraciones pueden pertenecer a implementaciones diferentes y no deben mezclarse automáticamente con la instalación de Nous Research descrita en esta guía. a información recuperada se añade al contexto activo
El modelo no consulta mágicamente todo el almacenamiento mientras genera cada palabra. El agente recupera información y la introduce en el contexto utilizado para preparar la respuesta.
Aquí aparece uno de los principales riesgos: recuperar un recuerdo que no tiene relación con la consulta actual.
Por ejemplo, una antigua decisión sobre un sitio WordPress no debería influir en una pregunta sobre una aplicación completamente distinta.
La recuperación debe ser selectiva.
5. El recuerdo influye en la respuesta o en la acción
Una vez introducido en el contexto, el recuerdo puede ayudar a Hermes a:
- Personalizar una respuesta.
- Continuar una investigación.
- Evitar una solución descartada.
- Aplicar un procedimiento.
- Mantener una convención.
- Elegir una herramienta.
- Advertir sobre una restricción.
Esta es la fase en la que la memoria aporta valor real. Almacenar información que nunca vuelve a recuperarse no mejora el trabajo.
6. Los recuerdos se actualizan, corrigen o eliminan
Una memoria persistente necesita mantenimiento.
Los proyectos cambian. Las preferencias evolucionan. Las decisiones técnicas se revisan. Un dato que era correcto hace seis meses puede provocar errores hoy.
En mi opinión, recordar información desactualizada puede ser incluso peor que no recordar nada. Por eso conviene revisar periódicamente los recuerdos importantes y sustituir los que hayan dejado de ser válidos.
Los tipos de memoria que puede utilizar un agente de IA
Las siguientes categorías son un marco conceptual útil para entender la memoria de un agente. No implican necesariamente que Hermes utilice oficialmente esos nombres para cada componente.
| Tipo de memoria | Qué conserva | Ejemplo | Riesgo principal |
|---|---|---|---|
| De trabajo | Información de la sesión actual | Instrucciones y resultados recientes | Saturar el contexto |
| Episódica | Sucesos y decisiones anteriores | Un error resuelto la semana pasada | Recordar el episodio de forma incompleta |
| Semántica | Hechos relativamente estables | Idioma o tecnología preferida | Mantener información obsoleta |
| Procedimental | Formas de actuar | Crear una copia antes de editar un servidor | Aplicar un proceso en el caso equivocado |
Memoria de trabajo: el contexto de la sesión actual
La memoria de trabajo contiene lo que Hermes necesita en ese momento:
- La conversación activa.
- Las instrucciones actuales.
- Los resultados de herramientas.
- Los fragmentos de archivos consultados.
- Los recuerdos recuperados.
Es rápida y permite mantener el hilo, pero tiene límites. Incluir conversaciones enteras de forma permanente sería caro, lento y poco eficiente.
Cuanta más información innecesaria se introduzca, más difícil puede resultar identificar qué parte merece atención.
La memoria persistente debería recuperar únicamente los datos necesarios para la tarea actual y colocarlos dentro de esta memoria de trabajo.
Memoria episódica: acontecimientos, decisiones y errores anteriores
La memoria episódica conserva sucesos concretos.
Por ejemplo:
- “El 12 de julio el despliegue falló porque el puerto 8080 estaba ocupado.”
- “Se descartó el plugin X porque duplicaba las consultas.”
- “La auditoría terminó en el apartado de permisos.”
- “El cliente aprobó la segunda estructura del artículo.”
Este tipo de memoria resulta especialmente útil en desarrollo, investigación, soporte o administración de sistemas.
Permite continuar desde un punto anterior sin tener que reconstruir todo el proceso.
Memoria semántica: hechos y preferencias relativamente estables
La memoria semántica contiene información que no depende de un episodio concreto:
- El usuario trabaja principalmente con WordPress.
- Prefiere respuestas en español.
- Utiliza Ubuntu en sus servidores.
- Los informes deben incluir un resumen ejecutivo.
- El proyecto Atlas pertenece al equipo de producto.
Estos recuerdos permiten personalizar la ayuda, pero deben revisarse.
Una preferencia válida hoy puede cambiar dentro de unos meses. Por eso ayuda incluir contexto, alcance y, cuando proceda, una fecha.
Memoria procedimental: cómo queremos que trabaje el agente
Esta es una de las capas que me parecen más interesantes porque no se limita a recordar datos. Conserva una forma de actuar.
Hermes podría recordar que antes de modificar un servidor debe:
- Comprobar el espacio disponible.
- Revisar los servicios activos.
- Crear una copia de seguridad.
- Mostrar los cambios propuestos.
- Pedir confirmación antes de ejecutarlos.
También podría conservar una estructura para redactar artículos, preparar informes o responder a incidencias.
Cuando está bien diseñada, la memoria procedimental ayuda a convertir preferencias repetitivas en comportamientos habituales. Aun así, debe aplicarse con cuidado: un procedimiento apropiado para producción puede resultar innecesario en un entorno de pruebas.
Qué guarda realmente Hermes Agent y dónde lo almacena
En la instalación de referencia, Hermes utiliza dos almacenes principales dentro del directorio ~/.hermes/.
Archivos de memoria legibles
Los recuerdos seleccionados se guardan en:
~/.hermes/memories/MEMORY.md
Se trata de un archivo Markdown que puede abrirse con cualquier editor de texto.
Para consultarlo:
cat ~/.hermes/memories/MEMORY.md
Este formato tiene una ventaja importante: el usuario puede comprobar qué información se ha almacenado sin depender de una interfaz especial.
También permite realizar copias de seguridad sencillas.
Base de datos de sesiones y mensajes
El historial de sesiones se almacena en:
~/.hermes/state.db
Es una base de datos SQLite. La instalación documentada contiene tablas de sesiones y mensajes, además de índices FTS5 que permiten búsquedas de texto completo sobre conversaciones anteriores. probar el tipo y tamaño del archivo:
file ~/.hermes/state.db
du -h ~/.hermes/state.db
La utilidad de línea de comandos sqlite3 no es imprescindible para que Hermes funcione. Solo hace falta cuando queremos inspeccionar manualmente la base.
En Ubuntu puede instalarse con:
sudo apt update
sudo apt install -y sqlite3
Después podemos consultar sus tablas:
sqlite3 ~/.hermes/state.db '.tables'
Diferencias según la versión y el método de instalación
No todas las páginas que utilizan el nombre Hermes describen exactamente el mismo sistema.
Una de las guías analizadas propone un proyecto con Node.js, un archivo .env, las variables MEMORY_BACKEND=sqlite y MEMORY_PATH=./data/memory.db, y el comando npm run start. Otra documentación utiliza el instalador de Nous Research, Python administrado mediante uv y el almacenamiento bajo ~/.hermes/. ene copiar variables de una guía y comandos de otra.
Antes de tocar la memoria, ejecuta:
hermes --version
which hermes
ls -la ~/.hermes/
Si tu instalación no contiene las rutas descritas en esta guía, consulta la documentación correspondiente a tu versión.
Requisitos para configurar la memoria persistente
Para seguir este procedimiento necesitas:
- Linux, macOS o WSL.
- Acceso al terminal.
- Un usuario con permisos para instalar el agente.
- Una clave o cuenta válida para el proveedor del modelo.
- Espacio persistente en disco.
- Permisos de lectura y escritura sobre
~/.hermes/.
En un VPS también necesitarás acceso SSH.
Antes de comenzar, comprueba el sistema:
uname -a
df -h
free -h
No hace falta disponer de un servidor especialmente grande para probar la memoria, pero el consumo total dependerá del modelo utilizado, las herramientas activadas y las tareas ejecutadas.
La instalación documentada descarga su entorno de Python, herramientas de navegador y Chromium, por lo que conviene comprobar que existe espacio suficiente. a de seguridad antes de modificar la configuración
Cuando Hermes ya contiene sesiones o recuerdos importantes, crea una copia antes de actualizarlo:
mkdir -p ~/backups
tar -czf ~/backups/hermes-$(date +%Y%m%d-%H%M).tar.gz ~/.hermes
Comprueba que el archivo se ha creado:
ls -lh ~/backups/hermes-*.tar.gz
Esta copia puede contener claves de API almacenadas en .env. Protégela con permisos restrictivos:
chmod 600 ~/backups/hermes-*.tar.gz
No subas el archivo a un repositorio público.
Cómo configurar la memoria persistente de Hermes Agent paso a paso
Paso 1: instalar o actualizar Hermes Agent
El tutorial de referencia utiliza:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
El instalador prepara las dependencias, crea el directorio ~/.hermes/ y coloca el ejecutable en ~/.local/bin/hermes. recarga el entorno:
source ~/.bashrc
Comprueba la instalación:
hermes --version
Cuando se ejecutan scripts remotos mediante una tubería hacia bash, existe un riesgo inherente. En un entorno sensible es preferible descargar el script, revisarlo y ejecutarlo después:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o /tmp/hermes-install.sh
less /tmp/hermes-install.sh
bash /tmp/hermes-install.sh
Paso 2: completar el asistente
El instalador puede iniciar el asistente automáticamente.
Según la versión, puede ofrecer opciones como:
- Configuración rápida mediante Nous Portal.
- Configuración completa con claves propias.
- Configuración desde cero.
Si la autenticación del portal no avanza y no dispones de una suscripción válida, cancela el proceso y configura un proveedor con tu propia clave.
Para volver a abrir la configuración:
hermes setup
Paso 3: conectar el modelo
Para configurar el proveedor:
hermes setup model
Selecciona el proveedor, introduce la clave cuando se solicite y elige un modelo compatible.
Después ejecuta:
hermes doctor
El diagnóstico debería confirmar que:
- Existe el archivo de configuración.
- Hay una clave o endpoint válido.
- El proveedor de memoria incorporado está activo.
- Las herramientas esenciales se encuentran disponibles.
Las advertencias sobre integraciones opcionales no significan necesariamente que la memoria esté rota.
Paso 4: localizar el almacenamiento
Comprueba el directorio:
find ~/.hermes -maxdepth 3 -type f -printf '%p\n' | sort
En una instalación compatible deberían aparecer, después de utilizar el agente:
~/.hermes/memories/MEMORY.md
~/.hermes/state.db
El archivo de recuerdos puede no existir hasta que se guarde la primera memoria.
Paso 5: revisar los permisos
Ejecuta:
ls -ld ~/.hermes ~/.hermes/memories 2>/dev/null
ls -l ~/.hermes/state.db 2>/dev/null
Los archivos deberían pertenecer al usuario que ejecuta Hermes.
Evita ejecutar unas veces Hermes como usuario normal y otras como root. Esto puede crear directorios diferentes o dejar archivos con propietarios incompatibles.
Cuando Hermes funciona bajo un servicio, confirma qué usuario lo ejecuta antes de cambiar permisos.
Paso 6: crear el primer recuerdo
Abre la interfaz:
hermes
Utiliza un dato de prueba reconocible y que no sea sensible:
Guarda en tu memoria a largo plazo este dato de prueba:
el nombre interno del proyecto es Faro Verde y su color
de identificación es turquesa.
Hermes debería indicar que ha utilizado la herramienta de memoria o que la información se ha guardado.
Sal con:
/exit
o mediante Ctrl+D.
Después comprueba el archivo:
cat ~/.hermes/memories/MEMORY.md
El recuerdo debería aparecer expresado de forma resumida.
Cómo comprobar que Hermes recuerda después de una nueva sesión
No basta con ver un mensaje que diga “guardado”. Hay que demostrar que la información puede recuperarse sin depender del contexto anterior.
Prueba 1: nueva conversación
Abre Hermes:
hermes
Crea una sesión nueva si es necesario:
/new
Pregunta:
¿Cuál es el nombre interno del proyecto de prueba y qué color utiliza?
Hermes debería responder “Faro Verde” y “turquesa”.
Prueba 2: reinicio del servicio
Cuando utilizas el gateway como servicio de usuario:
systemctl --user restart hermes-gateway
Comprueba el estado:
systemctl --user status hermes-gateway --no-pager
Inicia una sesión completamente nueva y repite la pregunta.
Si el recuerdo continúa disponible, ya has comprobado que no dependía únicamente del proceso anterior.
Prueba 3: reinicio completo del servidor
El test definitivo consiste en reiniciar el sistema:
sudo reboot
La conexión SSH se cerrará. Cuando el servidor vuelva a estar disponible, reconéctate y comprueba:
systemctl --user status hermes-gateway --no-pager
Después ejecuta:
hermes
Vuelve a preguntar por el proyecto.
La guía de referencia demuestra este procedimiento reiniciando tanto el servicio como el servidor y recuperando el recuerdo desde una sesión nueva. interpretar el resultado
Pueden ocurrir tres cosas:
Hermes recuerda correctamente.
La memoria persiste y el agente puede recuperarla.
El archivo contiene el recuerdo, pero Hermes no lo utiliza.
El problema está probablemente en la recuperación, no en el almacenamiento.
El archivo ya no contiene el recuerdo.
Hay un problema con la ruta, los permisos, el usuario del servicio o el almacenamiento del servidor.
Cómo inspeccionar la memoria guardada
La forma más sencilla de revisar los recuerdos es:
cat ~/.hermes/memories/MEMORY.md
Para editar con precaución:
nano ~/.hermes/memories/MEMORY.md
Antes de hacerlo, crea una copia:
cp ~/.hermes/memories/MEMORY.md \
~/.hermes/memories/MEMORY.md.bak
Revisar las sesiones almacenadas
Instala sqlite3 cuando sea necesario:
sudo apt install -y sqlite3
Lista las tablas:
sqlite3 ~/.hermes/state.db '.tables'
Consulta las sesiones:
sqlite3 -header -column ~/.hermes/state.db \
"SELECT id, model, message_count, started_at
FROM sessions
ORDER BY started_at DESC
LIMIT 20;"
El esquema puede variar según la versión. Si aparece un error porque una columna no existe, consulta primero:
sqlite3 ~/.hermes/state.db '.schema sessions'
Buscar un término en mensajes anteriores
sqlite3 -header -column ~/.hermes/state.db \
"SELECT session_id, role, substr(content,1,120) AS content
FROM messages
WHERE content LIKE '%Faro Verde%'
ORDER BY timestamp;"
Esto permite distinguir entre:
- El recuerdo resumido de
MEMORY.md. - El mensaje original almacenado en el historial.
Qué no conviene modificar manualmente
Evita editar state.db directamente mediante consultas UPDATE o DELETE si no conoces su esquema.
Una modificación incorrecta puede:
- Romper relaciones entre tablas.
- Dañar índices.
- Dejar sesiones incompletas.
- Provocar incompatibilidades después de una actualización.
Para cambios habituales, es preferible utilizar las funciones de Hermes o editar únicamente el archivo legible después de crear una copia.
Cómo indicar a Hermes qué debe recordar
La calidad del recuerdo depende en gran medida de cómo lo redactamos.
Guardar una preferencia estable
Recuerda que prefiero las respuestas en español, con pasos
numerados y comandos acompañados de una explicación breve.
Esta preferencia se aplica a las tareas de administración de sistemas.
Conservar una decisión del proyecto
Guarda esta decisión para el proyecto Atlas:
Utilizaremos PostgreSQL 17. No propondremos cambiar a MySQL
sin revisar primero la compatibilidad con búsquedas vectoriales.
Decisión tomada el 20 de julio de 2026.
Registrar una solución que ya funcionó
Recuerda que el error de conexión del servicio Atlas se resolvió
eliminando la variable DATABASE_HOST duplicada del archivo
de entorno. Comprueba ese punto antes de proponer reinstalar.
Conservar un procedimiento
Para cualquier cambio en el servidor de producción, recuerda
seguir este procedimiento:
1. Revisar espacio en disco.
2. Comprobar servicios activos.
3. Crear copia de seguridad.
4. Mostrar los cambios.
5. Solicitar confirmación antes de ejecutarlos.
Evitar instrucciones ambiguas
Un mensaje como “recuerda esto para después” obliga al agente a interpretar qué parte del contenido debe guardar.
Es mejor indicar:
- Qué debe conservar.
- A qué proyecto pertenece.
- Cuándo se decidió.
- Durante cuánto tiempo es válido.
- Qué condición obliga a revisarlo.
Cómo evitar que la memoria se llene de información inútil
Una memoria que crece sin control puede perder calidad.
No guardar conversaciones completas sin criterio
Los mensajes originales ya pueden permanecer en el historial. La memoria debería conservar una versión condensada y útil.
En lugar de guardar diez mensajes sobre una incidencia, crea un recuerdo que incluya:
- Síntoma.
- Causa.
- Solución.
- Fecha.
- Proyecto afectado.
Evitar recuerdos duplicados
Antes de almacenar una nueva preferencia, pregunta:
¿Qué recuerdas sobre mi formato preferido para informes?
Si ya existe, actualízala en lugar de crear otra versión.
Separar información permanente y temporal
No tiene sentido conservar indefinidamente:
- La tarea de esta tarde.
- Un token de acceso temporal.
- Un servidor de pruebas que se eliminará mañana.
- Una fecha provisional.
- El resultado de una comprobación que cambia cada hora.
Cuando el dato sea temporal, indícalo:
Recuerda hasta el 31 de julio de 2026 que el servidor
de pruebas utiliza el puerto 8081. Después de esa fecha,
pídeme confirmación antes de utilizarlo.
Revisar periódicamente la memoria
Una revisión mensual puede incluir estas preguntas:
Muéstrame los recuerdos relacionados con el proyecto Atlas.
Identifica cuáles parecen duplicados.
Señala qué información contiene fechas antiguas.
No modifiques nada hasta que lo confirme.
Para mí, la calidad de la memoria no depende únicamente de cuánto recuerda el agente, sino de su capacidad para recuperar la información adecuada en el momento necesario.
Cómo corregir, actualizar o eliminar recuerdos
Actualizar una preferencia
No añadas simplemente otra instrucción contradictoria.
Indica con claridad que la anterior queda anulada:
Actualiza mi preferencia de formato.
La preferencia anterior de respuestas muy breves deja de ser válida.
A partir de ahora, para tutoriales técnicos quiero explicaciones
detalladas, comandos y resultados esperados.
Después revisa MEMORY.md para comprobar que no permanecen ambas versiones.
Corregir un dato incorrecto
Corrige el recuerdo sobre el proyecto Atlas.
El proyecto no utiliza Ubuntu 22.04. Utiliza Ubuntu 24.04.
Elimina o sustituye cualquier recuerdo que indique lo contrario.
Eliminar un recuerdo

Cuando la herramienta ofrezca una operación de eliminación, solicita:
Elimina de tu memoria el dato de prueba sobre el proyecto
Faro Verde y confirma qué información has borrado.
Después verifica:
grep -n -i "Faro Verde" ~/.hermes/memories/MEMORY.md
Si sigue apareciendo y decides editar manualmente:
cp ~/.hermes/memories/MEMORY.md \
~/.hermes/memories/MEMORY.md.before-edit
nano ~/.hermes/memories/MEMORY.md
Restablecer la memoria sin perder toda la configuración
No elimines el directorio completo ~/.hermes/ salvo que quieras borrar también configuraciones, credenciales y estado.
Para reiniciar solo los recuerdos legibles:
cp ~/.hermes/memories/MEMORY.md \
~/MEMORY.md.backup
: > ~/.hermes/memories/MEMORY.md
Detén previamente el servicio para evitar escrituras simultáneas:
systemctl --user stop hermes-gateway
Realiza el cambio y vuelve a iniciarlo:
systemctl --user start hermes-gateway
Privacidad y seguridad de la memoria persistente
La persistencia aporta valor, pero también introduce riesgos.
Cuando un agente conserva información entre sesiones, conviene saber:
- Dónde se almacena.
- Qué usuario puede acceder.
- Qué procesos pueden leerla.
- Cómo se realizan las copias.
- Cómo se elimina.
- Durante cuánto tiempo se conserva.
Datos que no debería recordar
Evita almacenar:
- Claves API.
- Contraseñas.
- Claves privadas SSH.
- Tokens de Telegram.
- Cookies de sesión.
- Credenciales de bases de datos.
- Datos bancarios.
- Información médica.
- Documentación confidencial de clientes.
- Datos personales sin una finalidad clara.
Aunque el archivo esté en un servidor privado, puede terminar dentro de una copia de seguridad, un registro o un archivo compartido.
Revisar permisos
Comprueba:
ls -la ~/.hermes
Los archivos sensibles deberían ser accesibles únicamente por el propietario:
chmod 700 ~/.hermes
chmod 600 ~/.hermes/.env
chmod 600 ~/.hermes/state.db
chmod 600 ~/.hermes/memories/MEMORY.md
Antes de aplicar permisos, confirma que el servicio se ejecuta con ese mismo usuario.
Proteger las copias de seguridad
Una copia completa de ~/.hermes/ puede contener tanto recuerdos como credenciales.
No la guardes en:
- Repositorios públicos.
- Carpetas web.
- Almacenamiento compartido sin cifrado.
- Equipos personales sin control de acceso.
En entornos profesionales, la memoria debe tratarse como información interna y someterse a la misma política de seguridad que el resto de los datos del proyecto.
Cómo hacer una copia de seguridad de la memoria
Copia manual completa
Detén temporalmente el gateway:
systemctl --user stop hermes-gateway
Crea la copia:
tar -czf ~/hermes-backup-$(date +%Y%m%d-%H%M).tar.gz ~/.hermes
chmod 600 ~/hermes-backup-*.tar.gz
Reinicia el servicio:
systemctl --user start hermes-gateway
Copia solo de la memoria
mkdir -p ~/hermes-memory-backup
cp -a ~/.hermes/memories ~/hermes-memory-backup/
cp -a ~/.hermes/state.db ~/hermes-memory-backup/
Comprobar la copia
tar -tzf ~/hermes-backup-AAAAmmdd-HHMM.tar.gz | head
Sustituye el nombre por el archivo real.
Restaurar en el mismo servidor
Detén Hermes:
systemctl --user stop hermes-gateway
Aparta el directorio actual:
mv ~/.hermes ~/.hermes.before-restore
Restaura:
tar -xzf ~/hermes-backup-AAAAmmdd-HHMM.tar.gz -C ~
Revisa permisos y vuelve a iniciar:
chown -R "$USER":"$USER" ~/.hermes
systemctl --user start hermes-gateway
Migrar a otro servidor
En el equipo de origen:
tar -czf /tmp/hermes-migration.tar.gz ~/.hermes
Copia el archivo mediante scp y restáuralo en la cuenta correcta.
Antes de iniciar Hermes en el destino:
- Comprueba la versión.
- Revisa las rutas.
- Verifica los propietarios.
- Comprueba si las claves siguen siendo válidas.
- Ejecuta
hermes doctor.
No compartas una base de datos activa mediante sincronización de archivos entre varios servidores sin saber cómo gestiona SQLite los accesos simultáneos.
Problemas frecuentes con la memoria de Hermes Agent
Hermes no recuerda después de cerrar la sesión
Causa probable: el dato nunca se añadió a la memoria a largo plazo.
Comprobación:
cat ~/.hermes/memories/MEMORY.md
Solución: pide explícitamente que guarde el hecho y comprueba que se activa la herramienta de memoria.
El recuerdo desaparece al reiniciar
Causas posibles:
- Hermes se ejecuta con otro usuario.
~/.hermes/se encuentra en almacenamiento temporal.- El servicio utiliza otra variable
HOME. - Los permisos impiden leer el archivo.
- Se está iniciando otra instalación.
Comprobaciones:
whoami
echo "$HOME"
which hermes
ls -la ~/.hermes
El archivo contiene el recuerdo, pero Hermes no lo recupera
En este caso, el almacenamiento funciona, pero la recuperación no.
Prueba una pregunta más directa:
Consulta tu memoria a largo plazo y dime qué recuerdas
sobre el proyecto Faro Verde.
Si funciona, el problema puede ser de relevancia o formulación.
Aparecen recuerdos duplicados
Revisa:
cat -n ~/.hermes/memories/MEMORY.md
Crea una copia y unifica manualmente los duplicados, o pide al agente que prepare una propuesta de consolidación sin ejecutar cambios.
Hermes utiliza información antigua
Busca versiones contradictorias:
grep -ni "Atlas" ~/.hermes/memories/MEMORY.md
Sustituye el dato antiguo y añade una fecha a la nueva versión.
Error de permisos
Comprueba:
namei -l ~/.hermes/memories/MEMORY.md
Corrige únicamente cuando hayas confirmado el usuario del servicio:
chown -R "$USER":"$USER" ~/.hermes
chmod 700 ~/.hermes
La base de datos está bloqueada
Detén instancias duplicadas:
ps aux | grep '[h]ermes'
systemctl --user status hermes-gateway --no-pager
Evita abrir la base con herramientas que mantengan una transacción activa mientras Hermes escribe.
La base de datos parece dañada
Crea una copia antes de intervenir:
cp ~/.hermes/state.db ~/.hermes/state.db.damaged-copy
Comprueba su integridad:
sqlite3 ~/.hermes/state.db 'PRAGMA integrity_check;'
Un resultado ok indica que SQLite no ha detectado daños estructurales.
Casos de uso donde la memoria persistente aporta más valor
Desarrollo de software
Hermes puede conservar:
- Arquitectura elegida.
- Dependencias descartadas.
- Errores anteriores.
- Convenciones de código.
- Estado de una migración.
- Pruebas pendientes.
Así evitamos que cada sesión empiece proponiendo alternativas ya rechazadas.
Administración de sistemas
Puede recordar:
- Distribución instalada.
- Servicios críticos.
- Procedimiento de copias.
- Ventanas de mantenimiento.
- Restricciones de acceso.
- Incidencias anteriores.
La memoria procedimental resulta especialmente útil: antes de modificar producción, Hermes puede recuperar la lista de comprobaciones acordada.
Creación de contenidos
Puede conservar:
- Idioma.
- Tono.
- Público objetivo.
- Estructura editorial.
- Enlaces internos prioritarios.
- Palabras que deben evitarse.
- Decisiones SEO.
En mi caso, esta continuidad resulta especialmente valiosa porque permite mantener criterios editoriales durante proyectos largos sin repetir todas las instrucciones en cada artículo.
Investigación y documentación
Hermes puede recordar:
- Fuentes consultadas.
- Hipótesis descartadas.
- Datos pendientes de verificar.
- Criterios de selección.
- Conclusiones provisionales.
La memoria no sustituye las fuentes originales, pero ayuda a mantener el mapa del trabajo.
Telegram, Discord y Slack
La memoria también cobra sentido cuando se utiliza Hermes desde varios canales.
El gateway conecta el agente con plataformas de mensajería, mientras que el estado duradero permanece en el servidor. De esta manera, el usuario puede iniciar una tarea desde el terminal y retomarla desde otro canal, siempre que todas las interfaces utilicen la misma instalación. La disponibilidad exacta y los comandos de configuración dependen de la versión. es reales de la memoria persistente
La memoria no convierte a Hermes en un sistema infalible.
Puede guardar información incorrecta
Si el agente interpreta mal una conversación y almacena esa interpretación, el error puede influir en sesiones futuras.
Por eso conviene revisar los recuerdos importantes.
Recordar no equivale a comprender
El agente puede recuperar una frase relevante sin comprender completamente por qué se tomó una decisión.
Los recuerdos complejos deberían incluir motivo, alcance y condiciones.
La recuperación puede fallar
El dato puede estar almacenado y, aun así, no aparecer porque:
- La consulta utiliza términos diferentes.
- Hay demasiados recuerdos similares.
- La relevancia calculada es baja.
- El contexto está saturado.
- La información se guardó de forma ambigua.
Las memorias quedan desactualizadas
Una empresa cambia de herramientas. Un servidor se migra. Un cliente modifica sus requisitos.
La memoria debe evolucionar con el proyecto.
Sigue siendo necesaria la supervisión humana
Las operaciones sensibles necesitan revisión, especialmente cuando implican:
- Eliminación de archivos.
- Cambios en producción.
- Datos personales.
- Pagos.
- Permisos.
- Publicaciones.
- Comunicación con clientes.
La memoria puede mejorar la continuidad, pero no elimina la responsabilidad.
Mantener una memoria útil
- Guarda decisiones, no conversaciones completas.
- Escribe recuerdos autosuficientes. Incluye proyecto, contexto, fecha y motivo.
- Añade fechas cuando el dato pueda caducar.
- Diferencia hechos confirmados de hipótesis.
- Pregunta qué recuerda antes de añadir una preferencia duplicada.
- No almacenes credenciales ni secretos.
- Revisa los recuerdos después de cambios importantes.
- Haz copias antes de editar archivos manualmente.
- Prueba la recuperación después de una actualización.
- Elimina datos sin utilidad.
- Comprueba que el servicio utiliza el usuario y directorio correctos.
- Mantén una única fuente de verdad. Cuando una decisión ya está documentada en un repositorio o sistema interno, la memoria puede guardar el enlace o resumen, no otra copia completa.
Una auditoría periódica debería responder cuatro preguntas:
- ¿Qué recuerda Hermes?
- ¿Sigue siendo correcto?
- ¿Se recupera cuando resulta necesario?
- ¿Existe información que no debería estar almacenada?
De asistente aislado a herramienta con continuidad
Hermes Agent ya resulta útil por su capacidad para utilizar herramientas, ejecutar comandos, realizar búsquedas y conectarse con plataformas de mensajería. Sin embargo, esas capacidades pierden parte de su valor cuando cada conversación comienza sin el contexto acumulado.
La memoria persistente cambia esa experiencia.
Permite retomar proyectos, conservar decisiones, evitar errores repetidos y mantener procedimientos coherentes entre sesiones. Su utilidad no depende únicamente de guardar datos en un archivo, sino de seleccionar la información correcta, recuperarla en el momento adecuado y eliminarla cuando deja de ser válida.
Para mí, recordar no significa conservar toda la conversación. Significa mantener aquello que seguirá ayudándonos dentro de una semana, un mes o la próxima vez que aparezca un problema parecido.
La memoria no convierte a Hermes Agent en un sistema perfecto. Los recuerdos pueden contener errores, quedar desactualizados o aparecer en un contexto inadecuado. Por eso necesitan supervisión, copias de seguridad y mecanismos claros de corrección.
Aun con esas limitaciones, un agente capaz de recordar decisiones, preferencias y procedimientos tiene muchas más posibilidades de integrarse en un flujo de trabajo real.
La diferencia no está solo en que Hermes responda mejor. Está en que pueda evolucionar junto a nuestros proyectos sin obligarnos a reconstruir todo el contexto cada vez que abrimos una sesión nueva.
Dudas de la comunidad
¿Hermes Agent recuerda todas las conversaciones?
El historial puede conservar sesiones y mensajes, pero eso no significa que todos los mensajes se conviertan automáticamente en recuerdos a largo plazo.
Los recuerdos seleccionados y el historial completo cumplen funciones distintas. En la instalación descrita, MEMORY.md contiene hechos seleccionados, mientras que state.db registra sesiones y mensajes. l es la diferencia entre memoria persistente e historial?
El historial permite revisar qué se dijo.
La memoria persistente intenta conservar información que pueda ser útil en futuras tareas, como decisiones, preferencias o procedimientos.
¿Dónde almacena Hermes Agent sus recuerdos?
En la instalación de referencia, los recuerdos aparecen en:
~/.hermes/memories/MEMORY.md
Las sesiones se registran en:
~/.hermes/state.db
Las rutas pueden variar según la versión o la implementación.
¿La memoria sobrevive al reinicio del servidor?
Sí, siempre que se encuentre en almacenamiento persistente y el servicio utilice la misma instalación y usuario después del reinicio.
La mejor forma de comprobarlo es guardar un dato de prueba, reiniciar el servidor y recuperarlo desde una sesión nueva.
¿Puedo ver qué información recuerda Hermes?
Sí. En la instalación descrita puedes leer:
cat ~/.hermes/memories/MEMORY.md
También puedes inspeccionar las sesiones con SQLite.
¿Cómo elimino un recuerdo incorrecto?
Solicita al agente que elimine o sustituya el dato. Después verifica el archivo.
Cuando sea necesario editar manualmente, crea primero una copia de seguridad y detén temporalmente el servicio.
¿Puedo desactivar la memoria persistente?
Depende de la versión y de los proveedores configurados. Como mínimo, puedes evitar añadir nuevos recuerdos y trabajar sin consultar el archivo de memoria. No elimines archivos hasta haber creado una copia.
¿Es seguro guardar información personal?
Solo cuando existe una finalidad clara, controles de acceso, política de retención y un procedimiento de eliminación.
Nunca guardes credenciales, secretos o información sensible sin protección adecuada.
¿La memoria consume muchos recursos?
Un archivo Markdown suele tener un coste reducido. El consumo aumenta con el tamaño del historial, los índices, la frecuencia de búsqueda y cualquier análisis semántico adicional.
Conviene controlar periódicamente el tamaño:
du -sh ~/.hermes
du -h ~/.hermes/state.db
¿Puedo trasladar la memoria a otro VPS?
Sí, mediante una copia del directorio o de los archivos de memoria.
Antes de iniciar Hermes en el servidor nuevo, comprueba compatibilidad de versiones, rutas, permisos y credenciales.
¿Qué ocurre si cambio de modelo?
La memoria almacenada puede continuar existiendo, pero un modelo diferente puede interpretar o recuperar la información de otra manera.
Después del cambio, repite las pruebas de almacenamiento y recuperación.
¿La memoria funciona desde Telegram, Discord y Slack?
Puede hacerlo cuando esos canales se conectan al mismo gateway e instalación de Hermes. La memoria vive en el servidor, no dentro de la aplicación de mensajería.
Opinión Personal
La memoria persistente es una de las funciones que más puede mejorar la utilidad real de Hermes Agent. Poder retomar un proyecto sin volver a explicar todas las decisiones, preferencias y errores anteriores supone un ahorro de tiempo importante y permite trabajar con mucha más continuidad.
Aun así, no creo que una buena memoria consista en almacenar absolutamente todo. Guardar conversaciones completas sin ningún criterio puede generar ruido, duplicados e información desactualizada. Lo verdaderamente valioso es que Hermes sea capaz de conservar los datos relevantes y recuperarlos cuando realmente aportan contexto.
También considero fundamental mantener cierto control sobre lo que el agente recuerda. Revisar, actualizar y eliminar información debería formar parte del mantenimiento habitual, especialmente cuando se trabaja con datos profesionales o sensibles.
La memoria persistente no convierte a Hermes Agent en una herramienta perfecta, pero sí puede hacer que pase de ser un asistente que responde de forma aislada a convertirse en un agente que acompaña la evolución de nuestros proyectos.
¿Has probado la memoria persistente de Hermes Agent? Cuéntame en los comentarios cómo la utilizas, qué resultados has obtenido y qué problemas has encontrado durante la configuración.




