Todo lo que necesitas saber para entender y personalizar Hermes Agent. Habilidades que evolucionan solas, memoria de tres niveles de memoria, optimización GEPA para optimización, y cómo pasar de 1 a 10 agentes que trabajan para ti 24/7.
Hermes Agent superó las 90,000 estrellas en GitHub en dos meses. Los desarrolladores están construyendo en silencio agentes de IA personales que aprenden su flujo de trabajo, recuerdan su contexto y funcionan 24/7.

Cada agente de IA que hayas usado tiene el mismo problema: lo olvida todo en cuanto termina tu sesión.
Tus preferencias de código, las convenciones del proyecto que le corregiste tres veces, la solución que tardó 10 minutos en encontrar ayer. Todo desaparece. En la siguiente sesión, empiezas desde cero.
Hermes Agent de Nous Research adopta un enfoque fundamentalmente diferente. Viene con un bucle de aprendizaje que:
- Recuerda entre sesiones
- Escribe sus propias habilidades reutilizables
- Las poda en segundo plano
- Y las valida sin conexión mediante un motor evolutivo llamado GEPA
Ningún otro agente de código abierto combina los tres. Ni siquiera OpenClaw.
Esta guía cubre cómo funciona este bucle de aprendizaje, qué hace cada capa de memoria y cómo configurarlo todo desde cero.
Al final, tendrás tres agentes completamente aislados en tu máquina: un programador (que usa tu Claude Code), un investigador profundo y un diseñador, cada uno con su propia personalidad, memoria, habilidades y bot de Telegram.
Mira esto:

Toda la configuración toma minutos y todo aquí es reproducible en tu propio hardware.
Nota: Todas las ilustraciones de esta guía fueron diseñadas por Pixel, uno de los agentes de Hermes que aprenderás a construir al final. Está atento a ellas mientras lees.
¡Comencemos!
Cómo Leer Esto
Dos mitades: teoría primero, práctica después.
¿Poco tiempo? Ve directo a "Poner en Marcha". Los comandos funcionan por sí solos.
Pero la teoría vale la pena. Saber cómo evolucionan las habilidades, cómo se compone la memoria y cuándo GEPA realmente sirve es la diferencia entre usar Hermes como un chatbot con notas y usarlo como algo que se acumula y mejora.
Lo que viene:
- Qué es realmente Hermes Agent. La propuesta, más una comparación con OpenClaw.
- Cómo está construido. Arquitectura en un diagrama.
- Antes de la memoria: ¿Quién es el agente? SOUL.md, la capa de identidad.
- El sistema de memoria. Tres niveles, tres velocidades.
- Habilidades que evolucionan solas. Manuales creados por el agente más el Curador.
- GEPA. Optimización de habilidades sin conexión.
- Poner en Marcha. Instalación, Telegram, primer agente.
- Ejecutar Múltiples Agentes. Perfiles, tres personalidades, resúmenes programados.
- Personalizar los agentes según tus necesidades.
Qué es Hermes y qué lo hace arquitectónicamente diferente
La propuesta en una línea: un agente que mejora cuanto más lo usas.
Lo que hace esto realidad es que tres capacidades normalmente separadas conviven en un mismo marco: aprendizaje de habilidades en tiempo de ejecución, memoria persistente de múltiples capas y un pipeline opcional de entrenamiento. Ningún otro agente de código abierto incluye las tres.
La comparación más cercana en el ecosistema abierto es OpenClaw. Ambos son persistentes y funcionan bien con mensajería, pero toman decisiones arquitectónicas opuestas.
Una buena forma de verlo, tomada del blog de Kilo: "Hermes empaqueta una puerta de enlace alrededor de un agente que aprende. OpenClaw empaqueta un agente alrededor de una puerta de mensajería."

Cómo Está Construido
Antes de que el bucle de aprendizaje tenga sentido, necesitas una idea básica de cómo está estructurado Hermes.
Todo fluye a través de una sola clase AIAgent en un script run_agent.py. CLI, puerta de mensajería, ejecutor por lotes, integración con IDE: todos son puntos de entrada al mismo agente central.
Esto es lo que hace que la historia de ser independiente de la plataforma funcione realmente.

El bucle central es de estilo ReAct y síncrono. Construye el prompt del sistema, verifica si es necesario comprimir, hace una llamada API interrumpible, ejecuta las llamadas a herramientas y vuelve a empezar.
Algunos detalles que importarán más adelante:
- El agente puede ejecutar comandos en seis lugares diferentes. Terminal local, Docker, SSH, Modal, Daytona o Singularity. Mismo código, solo un cambio en la configuración. Mueve la ejecución de tu portátil a un servidor GPU en la nube con GPU sin tocar nada más.
- Funciona con casi cualquier modelo. Una capa de traducción enruta cualquier proveedor a través de uno de tres formatos API. Por eso puedes cambiar de Claude a GPT a Gemini a Ollama local con un solo comando y nada se rompe.
- El agente tiene un límite máximo de 90 turnos por tarea. Sin él, un agente atrapado en un bucle (reintentando una API que falla, releyendo el mismo archivo) quemaría tus créditos en silencio. Los subagentes comparten el mismo presupuesto, por lo que una cadena de delegación descontrolada no puede colarse.
Eso es suficiente andamio. Ahora la parte interesante.
Antes de la Memoria: ¿Quién es el Agente?
Antes de llegar a la memoria y las habilidades que evolucionan solas, hay una capa que está por encima de ambas: la identidad.
La memoria es lo que el agente sabe. Las habilidades son cómo hace las cosas. Pero ninguna te dice quién es cuando aparece. Sin una capa de identidad, cada agente se siente como el mismo agente con diferentes sombreros.
Hermes resuelve esto con un solo archivo: SOUL.md.
Vive en ~/.hermes/SOUL.md y ocupa el lugar #1 en el prompt del sistema, antes de que se cargue cualquier otra cosa. Define la personalidad del agente, su tono, estilo de comunicación y límites estrictos.
SOUL.md se escribe a mano y es estático. Lo escribes una vez, lo ajustas con el tiempo y se mantiene consistente en todos los proyectos y sesión. Si el archivo falta, Hermes usa una identidad predeterminada incorporada.
¿Por qué esto importa para la historia de automejora? Porque todo lo que sigue (la memoria que el agente escribe, las habilidades que crea, la forma en que consolida el conocimiento) sucede a través del lente de esta identidad.
SOUL.md es el marco fijo. La memoria y las habilidades son las partes móviles dentro de él.
El Sistema de Memoria: Tres Niveles, Tres Velocidades
Hermes no tiene una sola "memoria". Tiene tres capas, cada una diseñada para un propósito diferente.

Nivel 1: Dos pequeños archivos Markdown.
En el núcleo hay dos archivos almacenados en disco:
- MEMORY.md (máximo 2,200 caracteres) contiene las notas del agente sobre tu entorno, convenciones del proyecto, peculiaridades de las herramientas y lecciones aprendidas.
- USER.md (máximo 1,375 caracteres) guarda tu perfil: nombre, preferencias de comunicación, nivel de habilidad y cosas que evitar.
Ambos se inyectan en el prompt del sistema como una instantánea congelada cuando comienza una sesión. Si el agente escribe una nueva entrada de memoria durante la sesión, ese cambio persiste en el disco de inmediato, pero no aparecerá en el prompt del sistema hasta la próxima sesión.
Cuando la memoria se llena (~80% de capacidad, mostrado como un porcentaje en el encabezado del prompt del sistema), el agente debe consolidar.
Fusiona entradas relacionadas en versiones más densas y con más información, para que solo sobreviva la información útil.
Nivel 2: Búsqueda de texto completo en sesiones.
Cada conversación (CLI y mensajería) se almacena en SQLite con búsqueda de texto completo. El agente puede buscar en semanas de conversaciones pasadas desde aquí.
La compensación es clara: el Nivel 1 siempre está en contexto pero es diminuto. El Nivel 2 tiene capacidad ilimitada pero requiere una búsqueda activa más la summarización del LLM.
Los hechos críticos viven en la memoria. Todo lo demás es buscable bajo demanda.
Nivel 3: Proveedores de memoria externos (8 plugins).
Para una memoria persistente más profunda, Hermes incluye 8 proveedores conectables que funcionan junto con la memoria incorporada (nunca la reemplazan). Solo uno puede estar activo a la vez.
Cuando un proveedor externo está activo, Hermes automáticamente recupera memorias relevantes antes de cada turno, sincroniza los turnos de la conversación después de cada respuesta y extrae recuerdos al final de la sesión.

Habilidades que Evolucionan Solas: El Agente Escribe Sus Propios Manuales
La memoria maneja los hechos. Las habilidades manejan los procedimientos.
Las habilidades son archivos Markdown con metadatos en YAML y funcionan como la memoria procedimental del agente: no lo que sabe, sino cómo hace las cosas.
Aquí está la anatomía de una habilidad:
Para mantener bajos los costos de tokens, las habilidades usan divulgación progresiva:

- Nivel 0: El agente ve solo nombres + descripciones (~3k tokens para el catálogo completo)
- Nivel 1: Carga el contenido completo de la habilidad cuando realmente la necesita
- Nivel 2: Puede profundizar en archivos de referencia específicos dentro de una habilidad
El bucle de automejora.
Este es el diferenciador clave. El agente crea sus propias habilidades de forma autónoma usando la herramienta herramienta skill_manage. La creación de habilidades se activa cuando:
- El agente completa una tarea compleja (5+ llamadas a herramientas)
- Encuentra errores o callejones sin salida y halla el camino correcto
- El usuario corrige su enfoque
- Descubre un flujo de trabajo no trivial
Así que funciona así: el agente se encuentra con un problema → lo resuelve mediante prueba y error → guarda el enfoque exitoso como un archivo SKILL.md → la próxima vez que encuentre un problema similar, carga la habilidad y sigue el procedimiento probado en lugar de redescubrir el enfoque desde cero.
La herramienta admite seis acciones: crear, parchear (corrección específica, preferida porque es eficiente en tokens), editar (reescritura completa), eliminar, write_file y remove_file.

El Curador: recolección de basura para habilidades.
Sin mantenimiento, las habilidades creadas por el agente se acumulan. Terminas con docenas de manuales estrechos y superpuestos que desperdician tokens y contaminan el catálogo.
El Curador es un sistema de mantenimiento en segundo plano que se encarga de esto. Se ejecuta mediante una verificación de inactividad (no un demonio cron): si han pasado 7 días desde la última ejecución y el agente ha estado inactivo durante 2+ horas, una bifurcación en segundo plano del agente se activa con su propio caché de prompt, sin tocar nunca la conversación activa.
Opera en dos fases:
- Transiciones automáticas (determinista, sin LLM): Las habilidades no utilizadas durante 30 días se vuelven obsoletas. Las habilidades no utilizadas durante 90 días se archivan.
- Revisión del LLM (hasta 8 iteraciones): Un agente bifurcado inspecciona todas las habilidades creadas por el agente y decide por habilidad si mantener, parchear, parchear, consolidar o archivar.
Dos restricciones importantes:
- El Curador nunca toca las habilidades incluidas o instaladas desde el hub. Solo las creadas por el agente.
- Nunca autoelimina. El peor caso es el archivado en ~/.hermes/skills/.archive/, que es recuperable con un comando.
Antes de cada pasada del Curador, Hermes toma una instantánea tar.gz de todo el directorio de habilidades. La reversión es un comando, y las reversiones son a su vez reversibles.
También puedes fijar habilidades críticas con hermes curator pin <skill> para protegerlas del archivado y la eliminación. Los parches y las ediciones aún se aplican, por lo que el agente puede mejorar una habilidad fijada sin necesidad de desfijarla primero.

GEPA: Evolucionando Habilidades Sin Conexión con Trazas de Ejecución
Aquí es donde se pone interesante.
El bucle de aprendizaje dentro del agente (creación de habilidades + Curador) tiene una debilidad conocida:
- El agente tiende a la autocomplacencia. Casi siempre piensa que lo hizo bien, incluso cuando no fue así. La comunidad lo ha confirmado.
- El mismo sistema que genera habilidades automáticamente también puede sobrescribir personalizaciones manuales con versiones peores.
Aquí es donde entra GEPA.
GEPA (Evolución Genético-Pareto de Prompts) no está integrado en el tiempo de ejecución de Hermes. Vive en un repositorio complementario (NousResearch/hermes-agent-self-evolution) y opera como un pipeline de optimización sin conexión. Publicado como un artículo ICLR 2026 Oral, con licencia MIT.
La idea central: en lugar de preguntar al agente "¿lo hiciste bien?", GEPA lee las trazas de ejecución para entender por qué fallaron las cosas y luego propone mejoras específicas a través de bjetivas mediante búsqueda evolutiva.
El pipeline:
- Leer la habilidad actual del repositorio de Hermes
- Generar un conjunto de datos de evaluación (casos de prueba sintéticos mediante Claude Opus, historial de sesiones real de SQLite o conjuntos dorados curados manualmente)
- Ejecutar el optimizador GEPA: leer trazas de ejecución → entender puntos de falla → generar variantes candidatas
- Evaluar candidatos usando puntuación LLM-como-juez con rúbricas (no aprobado/reprobado binario)
- Aplicar restricciones: el conjunto de pruebas completo debe pasar al 100%, las habilidades deben mantenerse por debajo de 15KB, la compatibilidad de caché debe preservarse, el propósito semántico no debe desviarse
- La mejor variante se envía como PR contra el repositorio de Hermes. Nunca un commit directo.
No se requiere GPU. Todo se ejecuta a través de llamadas API. Costo: aproximadamente $2-10 por ejecución de optimización.
Esto es algo que se puede omitir inicialmente, pero es muy efectivo cuando te encuentras con un obstáculo y no quieres gastar tiempo y dinero en ajuste fino (RL/GRPO).
Más detalles en este repositorio →

Recientemente escribí un artículo sobre GEPA.
Es una gran alternativa para probar antes de pasar a un ajuste fino completo o basado en RL.

Bien, para resumir:
SOUL.md establece la identidad. El bucle de tiempo de ejecución captura la experiencia. El Curador mantiene limpia la biblioteca. GEPA se asegura de que lo que está en la biblioteca realmente funcione.
Esa es toda la teoría. Ahora pongámoslo en marcha en tu máquina.
Poner en Marcha
Linux, macOS o WSL2. Python 3.11+ viene con el instalador. 8GB de RAM son suficientes para uso basado en API.
Instalación en una línea:
Ejecuta el asistente de configuración. Te guía a través del proveedor, clave API, modelo y herramientas:
Comienza a chatear en la terminal:
Conéctalo a Telegram:
Si quieres hablar con tu agente desde tu teléfono en lugar de la terminal, apúntalo a un bot de Telegram.
Obtén un token de bot de @BotFather (ejecuta /newbot), luego obtén tu ID de usuario de Telegram de @userinfobot.
Eso es todo. Tienes un agente funcionando:
Qué hay en ~/.hermes/
Justo después de la instalación, tu directorio home recibe una nueva carpeta nueva.
Vale la pena entender la estructura porque todo lo que hagas con Hermes toca una de estas rutas.
Algunos archivos merecen un vistazo más detallado.
- config.yaml es la fuente de verdad para todo lo que no es secreto. Elección de modelo, backend de terminal, habilitación de herramientas, servidores MCP, todo vive aquí. Edita con hermes config edit o establece valores uno a uno con hermes config set <key> <value>.
- .env guarda tus secretos. Claves API, tokens de bot, contraseñas. Hermes enruta automáticamente los valores que parecen secretos aquí.
- SOUL.md es el lugar #1 en el prompt del sistema, antes de todo lo demás. Capa de identidad, cubierta anteriormente.
- skills/ es donde vive todo el bucle de aprendizaje. Cada habilidad que crea el agente, más todo lo que instales, llega aquí.
- state.db es la base de datos SQLite que respalda la búsqueda de sesiones. Segura en modo WAL, indexada con FTS5. Esto es lo que hace que "¿de qué hablamos hace tres semanas?" funcione realmente.
No editarás la mayoría de esto manualmente. Pero conocer la estructura hace que todo lo demás tenga sentido.
Añadir Nuevas Habilidades
Hermes mantiene su propio Skills Hub oficial con 687 habilidades en 18 categorías. El desglose:
- 87 habilidades integradas que vienen con el agente
- 79 habilidades opcionales que puedes activar bajo demanda
- 16 de Anthropic (frontend-design, pdf, pptx, docx, mcp-builder, etc.)
- 505 de LobeHub (contribuciones más amplias de la comunidad)

También puedes añadir cualquier repositorio de GitHub como tap personalizado:
Así es como compartirías habilidades en un equipo o mantendrías tu propia colección privada.
Pasar de 1 a 10 Agentes
Un agente está bien. Múltiples agentes especializados es donde Hermes se vuelve interesante.
Hermes tiene una función de primera clase para esto llamada perfiles. Cada perfil es una instancia de Hermes completamente aislada con su propia configuración, memoria, habilidades, sesiones y SOUL.md. No comparten nada por defecto.
Configuraremos tres: un diseñador, un programador y un investigador.
Crear un equipo
--clona la configuración y el .env de tu perfil predeterminado como punto de partida.
Dale a cada uno su propio bot de Telegram
Cada perfil necesita su propio bot de BotFather. Telegram solo permite una conexión por token, así que compartir uno rompe las cosas.
Ejecuta /newbot tres veces con BotFather y guarda los tres tokens. Luego ejecuta el asistente de puerta de enlace una vez por perfil:
La configuración es exactamente la misma que para un agente regular, donde puedes crear nuevos bots en BotFather y conectarlos a sus respectivos agentes.
Dale a cada uno una personalidad a través de SOUL.md
Aquí es donde los agentes se vuelven genuinamente diferentes entre sí. Edita el SOUL.md de cada perfil.
Diseñador en ~/.hermes/profiles/designer/SOUL.md:
Mira estos ejemplos:

Programador en ~/.hermes/profiles/programmer/SOUL.md:
Investigador en ~/.hermes/profiles/researcher/SOUL.md:
Personalizar el programador: enrutar la ejecución a través de Claude Code
El programador es más interesante si no solo escribe código él mismo, sino que delega la ejecución en la CLI de Claude Code. Hermes orquesta. Claude Code hace las ediciones de archivos, ejecuta comandos, gestiona git. Hermes lee el resultado y decide qué sigue.
Así es como ejecuto el mío sobre mi suscripción de Claude Max. Sin clave API separada. Claude Code usa las credenciales de Max automáticamente.
Inicia una sesión y envía este único prompt de activación:
Ya tengo una suscripción a Claude Max. Eres mi ingeniero de personal que
me ayuda con mis tareas de codificación diarias, y bajo el capó usas
Claude Code para todas las ejecuciones. Configúrate en consecuencia.
El programador instalará la habilidad autonomous-ai-agents/claude-code por sí mismo, verificará que claude esté en el PATH y comenzará a usarlo para la ejecución de código. A partir del siguiente mensaje, cualquier cosa relacionada con codificación (leer archivos, escribir código, ejecutar pruebas, hacer commit, hacer push) se enruta a través de Claude Code bajo el capó.
Dos cosas que vale la pena saber:
- Asegúrate de que claude esté en tu PATH antes de activarlo. which claude debería imprimir una ruta binaria real al binario.
- Claude Code tiene un modo de impresión (un solo disparo, rápido, sin TUI) y un modo interactivo (sesión tmux completa). El programador elige según la tarea. No necesitas pensar en ello.
Personalizar el diseñador: enséñale tu estilo visual
El diseñador se vuelve útil cuando puede generar imágenes en tu estilo, no solo resultados genéricos de IA. El patrón: dale diseños de referencia, déjalo estudiarlos, pídele que cree una habilidad que genere nuevas imágenes en el mismo estilo.
Este es el bucle de automejora utilizado como mecanismo de configuración. En lugar de escribir una habilidad a mano, le estás mostrando al agente buenos ejemplos y pidiéndole que codifique el patrón él mismo.
Inicia una sesión con el diseñador y pega tus imágenes de referencia (arrastra y suelta en la CLI, o adjunta en Telegram). Luego envía este prompt:
El diseñador estudiará las referencias, escribirá el SKILL.md, generará el script de Python, lo guardará en ~/.hermes/profiles/designer/skills/my-design-style/ y verificará que el script se ejecute.
Si ya ejecutaste hermesis y elegiste OpenRouter como tu proveedor, la clave ya está en el .env del perfil del diseñador gracias a --clone. Si no, agrégala una vez:
A partir de entonces, pedirle al diseñador una nueva ilustración activa la habilidad. Escribe un prompt informado por tu huella de estilo, llama a Nano Banana a través de OpenRouter y guarda el resultado.
El mismo patrón funciona para cualquier salida específica de estilo específico. Dale contenido de referencia, pídele al agente que construya una habilidad que reproduzca el patrón. Introducciones de boletines, hilos de X, comentarios de revisión de código, cualquier cosa donde la consistencia importe.
Programar Trabajo: Cron en Inglés Sencillo
El SOUL.md del investigador dice que es responsable de un resumen diario de Telegram. Eso implica un trabajo que se ejecuta en su propio horario, sin que tengas que acordarte de pedirlo. Para eso está Hermes cron.
Hermes viene con un programador incorporado. El demonio de la puerta de enlace late cada 60 segundos, ejecuta cualquier trabajo pendiente en sesiones de agente aisladas y entrega la salida a la plataforma de mensajería que especifiques. Los trabajos sobreviven a reinicios. Viven en ~/.hermes/cron/jobs.json y la salida va a ~/.hermes a ~/.hermes/cron/output/.

La parte interesante: no escribes expresiones cron. Describes lo que quieres en inglés y Hermes lo convierte.
Configura el resumen diario del investigador
Abre una sesión con el investigador y envía este prompt:
El investigador crea el trabajo usando su herramienta cronjob, el destino de entrega por defecto es el chat actual (Telegram en este caso), y el programador se encarga del resto. Verifica que se creó:
Deberías ver el trabajo con su próxima ejecución programada. Mañana a las 8am, tu Telegram se ilumina con el resumen. No se necesita ninguna acción adicional.
Otros patrones útiles
La sintaxis de cron es flexible. Algunas variaciones que vale la pena conocer:
- Retrasos de una sola vez. /cron add 30m "Recuérdame revisar la compilación" se ejecuta una vez en 30 minutos.
- Intervalos recurrentes. /cron add "cada 2h" "Verificar estado del servidor" se ejecuta cada dos horas.
- Expresiones cron estándar. /cron add "0 9 \ \ 1-5" "..." para control preciso. Días laborables a las 9am, en este caso.
- Adjuntar habilidades. /cron add "cada 1h" "Resumizar nuevos elementos del feed" --skill blogwatcher carga una habilidad antes de ejecutar el prompt.
También puedes encadenar trabajos. La salida de un cron se convierte en la entrada del siguiente cron mediante un indicador context_from. Útil para automatizaciones de varias etapas donde quieres que un paso de investigación alimente un paso de escritura.
Eso es todo.
Gracias por leer. Déjame saber en los comentarios qué te gustaría que cubra.
Si aprendes mejor con video, publicaré una guía completa de Hermes Agent en YouTube y X en un par de días.
¡Mantente al tanto!
¡Saludos! :)





