Saltar al contenido
← artículos
actualizado Hermes AgentAI AgentsHarness EngineeringNous ResearchSelf-Hosted AI

Qué es Hermes Agent: la guía para desarrolladores que lo corren en producción

Hermes Agent es el runtime de agentes open-source y self-hosted de Nous Research, con memoria, un learning loop y más de 25 gateways de mensajería. Cómo funciona por dentro, qué hace en verdad el learning loop, dónde se rompe en producción y cuándo conviene elegir otra cosa.

Busca Hermes Agent y lo que encuentras son guías de instalación. Pega un curl, elige un modelo, conecta Telegram, listo. Esa es la parte fácil, y es la que menos importa una vez que la cosa lleva un mes corriendo.

Corro Hermes en producción. Trece agentes de una org en Paperclip corren sobre él, un Hermes separado en Telegram es mi asistente personal, y en mi trabajo otro más me escribe un briefing diario a partir de los MCP servers de la empresa. Publiqué un adapter para él, mandé un fix upstream, y leí su código fuente más veces de las que quería. Esta es la guía que yo hubiera querido tener cuando empecé: qué es Hermes por dentro, qué hace en verdad el learning loop, dónde se rompe, y cuándo un desarrollador debería elegir otra cosa.

Qué es Hermes Agent

Hermes Agent es un runtime de agentes open-source con licencia MIT, de Nous Research, que hosteas tú mismo. Lo alcanzas desde una terminal, una app de escritorio, un dashboard web, una API compatible con OpenAI, o más de 25 plataformas de mensajería. Actúa a través de una shell, archivos, un navegador y ejecución de código. Mantiene memoria entre sesiones, busca en su propio historial y escribe sus propios skills después de tareas difíciles.

Tres cosas lo separan del coding agent que ya usas. Corre sin ti: en un servidor, con un horario, respondiendo un mensaje en tu teléfono. Recuerda: un archivo de memoria, un perfil sobre ti y un historial buscable sobreviven cada sesión. Y aprende: cada pocos turnos, una revisión en segundo plano decide si algo que acaba de hacer vale la pena guardar.

Hermes Agent en v0.21.5

250k
estrellas en GitHuby casi 48k issues y PRs abiertos
38
plugins de proveedores de modelomás cualquier endpoint compatible con OpenAI
7
backends de ejecuciónde local a sandboxes serverless
25+
plataformas de mensajeríade Telegram a Matrix a WeChat
La amplitud es real. También lo es la cantidad de issues. Ambas vienen de un proyecto que avanza muy rápido.

Cómo funciona Hermes Agent

Si reduces Hermes a lo esencial, te quedan las mismas cuatro partes que cualquier harness: un loop, herramientas, gestión de contexto y controles. Lo que lo hace Hermes es cuánto metió en cada capa.

Hermes Agent, de afuera hacia adentro

  1. 1

    Gateways

    CLI, una terminal UI, una app de escritorio, un dashboard web, un servidor de API compatible con OpenAI, ACP para editores como Zed, y más de 25 plataformas de mensajería. Cada superficie habla con el mismo agente.

  2. 2

    Contexto

    Un system prompt construido en niveles: una identidad estable desde SOUL.md, un archivo de contexto del proyecto, un índice compacto de skills, y memoria. La compresión entra a la mitad de la context window por default.

  3. 3

    Herramientas

    Terminal, archivos, navegador, web, visión, MCP servers, más tres primitivas que cambian lo que cuesta correr una tarea: programmatic tool calling, tool search y delegación a subagents.

  4. 4

    Backends de ejecución

    Dónde corren en verdad los comandos: local, Docker, SSH, Singularity, Modal, Daytona o Vercel Sandbox.

  5. 5

    Aprendizaje

    Una revisión en segundo plano que guarda memorias y skills, un curator semanal que archiva lo que no se usa, y búsqueda de texto completo sobre cada sesión pasada.

Los proveedores de modelo se conectan por el costado: 38 plugins de proveedores, y modelos locales a través de cualquier endpoint compatible con OpenAI.

Nous Research construye modelos, y se nota. Hermes trae un batch runner, un trajectory compressor y un SWE runner que escriben trayectorias de tool-calling en el formato propio de Hermes. El runtime funciona también como una forma de generar datos de entrenamiento para los modelos del laboratorio. Esa es una razón estructural para que el proyecto siga existiendo, y explica por qué las primitivas del loop son más profundas que las features para el usuario final.

Qué lee Hermes antes de responder

La mayoría de mis sorpresas con Hermes vinieron de no saber qué le ponía enfrente al modelo. Acá está el mapa. Cómo le doy de comer un second brain sin dejar que escriba ahí está en Hermes Agent y un second brain.

Qué alimenta el prompt

  • ~/.hermes/// HERMES_HOME, uno por perfil
    • config.yamltú// modelo, proveedor, reasoning effort, MCP servers
    • SOUL.mdsiempre// identidad, se carga en cada turno
    • MEMORY.mdaprendido// lo que guardó sobre el trabajo
    • USER.mdaprendido// lo que guardó sobre ti
    • skills/// carpetas SKILL.md, formato agentskills.io
    • state.db// cada sesión, buscable con SQLite FTS5
  • tu directorio de trabajo/// solo carga un archivo de contexto, gana el primero que encuentra
    • .hermes.md// 1.º
    • AGENTS.md// 2.º, recorrido desde la raíz del git
    • CLAUDE.md// 3.º
    • .cursorrules// 4.º

Dos lecciones me costaron dinero real acá.

El auto-discovery es una feature hasta que el working directory es de otro. Mis agentes de Paperclip corrían dentro de la propia carpeta de la app de Paperclip, así que Hermes encontraba el AGENTS.md interno de Paperclip y lo cargaba en cada wake. Eso era el 22 por ciento de los input tokens de cada wake, para instrucciones escritas para otro programa. Un scratch directory por agente bajó el input de 9.044 tokens a 6.992.

La identidad va en SOUL.md, en ningún otro lado. Hermes abre su system prompt presentándose como Hermes Agent. Cuando mi persona llegaba después como un mensaje de usuario, el modelo recibía dos identidades y elegía el promedio seguro. En mi propio test de diseño de ofertas, GLM-5.1 sacó 9,55 vía OpenCode y entre 7,0 y 7,9 vía Hermes con la persona en el lugar equivocado. Mismo modelo. El layout del prompt fue la variable.

El learning loop, sin el marketing

El loop es la feature estrella y la que peor describe la gente. Esto es lo que hace el código.

Cada 10 turnos Hermes dispara una revisión de memoria, y cada 10 iteraciones de herramientas dispara una revisión de skills. Los dos intervalos son configurables. La revisión corre como un agente forked que solo puede tocar las herramientas de memoria y de skills, y decide si algo de la sesión vale la pena guardar. Un curator corre cada semana cuando el agente está idle, marca los skills sin uso como stale a los 14 días y los archiva a los 30. Nunca borra, así que cualquier cosa que haya archivado puede volver.

Mi conclusión después de meses corriéndolo: el loop es bueno para procedimiento y malo para juicio. Va a recordar el flag que necesita una herramienta, el orden en que va un deploy, el workaround para una API inestable. No debería ser lo que reescribe cómo piensa un agente. Mis persona skills cargan el juicio, y yo las escribo a mano a partir de material que estudié. Un fork en segundo plano que vio una sesión no es el autor correcto para eso. La separación completa está en Hermes Agent skills.

Las herramientas que cambian la economía

Tres primitivas importan más que la larga lista de herramientas incorporadas.

Programmatic tool calling. El modelo escribe un script de Python que llama a las herramientas de Hermes por RPC, y solo el stdout del script vuelve al contexto, con un tope de 50 KB conservando el inicio y el final. Todo lo demás se vuelca a un archivo en disco. Si tu agente itera sobre cincuenta elementos llamando una herramienta en cada uno, esa es la diferencia entre cincuenta resultados de herramienta en el contexto y una sola línea de resumen.

Tool search. Cuando existe cualquier herramienta de MCP o de plugin, Hermes mueve esas herramientas detrás de una herramienta de búsqueda e incrusta un listado compacto con un presupuesto chico, 5 por ciento de la ventana por default. Mi flota tenía 114 herramientas de MCP detrás de la búsqueda. Con ese diferimiento, el costo de “demasiadas herramientas” casi desaparece, y hacer hard-scope a las herramientas de cada agente deja de valer el riesgo de romperlo.

Subagents. delegate_task crea hijos aislados por fork, hasta 10 a la vez por default, y los hijos pueden delegar de nuevo dentro de un presupuesto de profundidad. Desde v0.21 puedes listar, dirigir y detener subagents mientras corren, y validar lo que devuelven contra un JSON schema.

Hay más: un modo Mixture-of-Agents que agrega respuestas de varios modelos, cron jobs que puedes encadenar y responder, y un Bot Mode donde agentes con nombre comparten chats de grupo. Útil, pero las tres de arriba son las que cambian lo que cuesta correr una tarea. La cuenta completa está desglosada en cuánto cuesta Hermes Agent.

Siete lugares donde pueden correr tus comandos

Hermes separa al agente de dónde ejecutan sus comandos. La lista de backends en v0.21.5: local, Docker, SSH, Singularity, Modal, Daytona y Vercel Sandbox. Modal y Daytona te dan sandboxes que persisten entre tareas sin una máquina que tengas que seguir pagando.

Corre el agente en una máquina y ejecuta en otro lado descartable. El backend de Docker trae un egress proxy que mantiene las credenciales fuera del sandbox. Los comandos de terminal riesgosos se detienen y piden aprobación en la superficie que estés usando, Telegram incluido, y un archivo ESTOP en HERMES_HOME pausa todo trabajo nuevo de cron, kanban y gateway. También existen guardas de escritura de archivos, pero el código es explícito en que no son un límite de seguridad: la herramienta corre como tu usuario del sistema operativo. El resto está en ¿Hermes Agent es seguro?.

Cómo corro Hermes en producción

Mi setup es aburrido a propósito. Un VPS convertido en un Docker Swarm con Traefik y Portainer por bento, mi instalador. Hermes corre sin interfaz en un container con el gateway de Telegram prendido, y ese es el asistente con el que hablo por voz. Paperclip corre en el mismo swarm, y cada agente de la org llama al binario de Hermes a través de mi adapter. Los MCP servers están en un catalog gateway con mcp-pooler delante, así que los agentes de vida corta ven sus herramientas en unos 50 milisegundos en vez de varios segundos. El setup completo de MCP está en Hermes Agent y MCP.

El modelo vive en ~/.hermes/config.yaml, nunca en el orchestrator. A lo largo de los meses la flota corrió GLM-5.1 vía Z.AI y después DeepSeek V4 Flash vía OpenRouter. Los agentes acotados andan bien con modelos baratos, y cómo los elijo está en el mejor modelo para Hermes Agent. La regla que aprendí es que el runtime es dueño del modelo y del reasoning effort. Cada vez que el orchestrator intentaba fijarlos, algo se desalineaba.

Dónde se rompe Hermes en producción

Ninguno de estos aparece en una demo. Todos aparecieron dentro del primer mes.

Síntoma, causa real, solución

Lo que vesLo que está pasando en realidadQué lo arregló
El agente dice que sus herramientas no existenLos MCP backends arrancan en frío más allá de la ventana de discovery de menos de un segundoUn pooler caliente delante del MCP gateway
Bajo un orchestrator, una corrida que terminó su trabajo queda marcada como muertaEl orchestrator lee liveness desde el stdout, y una síntesis larga y silenciosa parece muertaUn keepalive con timer, enviado upstream como pull request
La persona suena genéricaLa persona llega como mensaje de usuario bajo la identidad propia de HermesIdentidad en SOUL.md, una sola fuente
Cada wake cuesta un quinto más de lo que deberíaEl auto-discovery carga el AGENTS.md de otro programa desde el working directoryUn scratch directory por agente
Las API keys aparecen en un log de sesiónUn dump de config.yaml dentro de una sesión las escribió en el logRotar las keys; mantener los secretos fuera de todo lo que el agente imprime
El dashboard se cuelga al conectarLos navegadores no reenvían basic auth en el upgrade a WebSocketUna ruta con token para el WebSocket, separada de basic auth

Las dos primeras están escritas en el Lab: 157 herramientas y cero llamadas y cuatro minutos de silencio que mataron un agente. Las dos enseñaron la misma regla. El agente es un narrador poco confiable. Cuando reporta una falla, no depures su historia. Lee ~/.hermes/logs/agent.log. El log tuvo razón todas las veces, sin excepción.

Después está el ritmo. Hermes tiene casi 48.000 issues y pull requests abiertos. v0.21.0 lanzó regresiones en la base de datos de sesiones que necesitaron seis pull requests de seguimiento y 44 issues cerrados para asentarse en v0.21.2. Algunos issues abiertos que yo leería antes de actualizar una máquina de producción: un executor de gateway sin timeout que congela el gateway por 120 segundos (#101033), un heartbeat de loop-liveness que puede estar muerto desde el arranque (#94758), y un proceso de dashboard que pierde memoria hasta que los clientes terminan OOM-killed (#80527).

Hermes Agent vs OpenClaw vs Claude Code

Se los compara porque todos dicen “agent”. Están hechos para trabajos distintos.

OpenClaw es un asistente personal que quiere estar en todos los lugares donde tú estás: apps nativas para macOS, iOS, Android y Linux, una wake word, voz on-device, un heartbeat que lo despierta solo. Hermes es un runtime que quiere vivir en un servidor y correr sus comandos en otro lado descartable. En junio la diferencia era profundidad: Hermes tenía el learning loop y el programmatic tool calling, y OpenClaw no. Para octubre OpenClaw ya tenía los dos. Elegí Hermes para la flota después de leer los dos códigos fuente, los volví a leer antes de escribir esto, y la comparación completa está en Hermes Agent vs OpenClaw.

Claude Code es un coding agent que manejas dentro de un repo. Lo uso todos los días y no es un sustituto de Hermes, ni al revés. La misma persona puede correr los dos: Claude Code para construir, Hermes para el trabajo que debería seguir pasando cuando la laptop está cerrada. La versión más larga está en Hermes Agent vs Claude Code.

Cuándo no usar Hermes

Elige otra cosa si

  • Obligatorio:
    Quieres un coding agent dentro de tu repo.Claude Code, OpenCode o pi te van a servir mejor. Hermes puede programar, pero su centro de diseño es el trabajo que pasa cuando no estás mirando.
  • Obligatorio:
    Quieres un asistente en tu teléfono y tu laptop, con voz.Ese es el centro de diseño de OpenClaw: apps nativas, voz, presencia en todos lados.
  • Obligatorio:
    No vas a leer logs de Python.Cuando Hermes falla, la verdad está en agent.log y en el código fuente. El relato del propio agente seguido está equivocado.
  • Obligatorio:
    Necesitas una API que se quede quieta.Los releases caen más o menos dos veces por semana. Las claves de configuración, los defaults y las features se mueven.
  • Obligatorio:
    Tienes una sola tarea y ningún horario.La memoria, el cron y los gateways se pagan cuando un agente corre durante semanas. Para una sola tarea, una sesión simple es más fácil.
Si nada de esto aplica, Hermes es el runtime de agentes self-hosted más capaz que he corrido.

Hermes Agent, respuestas rápidas

¿Qué es Hermes Agent?

Hermes Agent es un runtime de agentes open-source, con licencia MIT, self-hosted, de Nous Research. Actúa a través de una shell, archivos, un navegador y ejecución de código, mantiene memoria entre sesiones, busca en su propio historial, escribe sus propios skills, y se puede alcanzar desde una terminal, una app de escritorio, un dashboard web, una API o más de 25 plataformas de mensajería.

¿Hermes Agent es gratis?

El software es gratis y con licencia MIT. Pagas por los tokens del modelo y por donde sea que corra.

El costo real está en cómo lo configuras: qué se carga en el prompt en cada turno, cada cuánto se dispara el learning loop, y qué modelo recibe cada trabajo.

¿Hermes Agent es seguro?

Tiene controles reales: prompts de aprobación para comandos riesgosos en cada superficie, un archivo de parada de emergencia, y un egress proxy que mantiene las credenciales fuera del sandbox de Docker. Su propio código dice que las guardas de escritura de archivos no son un límite de seguridad.

Trátalo como a un colega con una shell. Dale su propia máquina o sandbox, credenciales acotadas, y nunca una key que no puedas rotar.

¿Cuál es el mejor modelo para Hermes Agent?

El más barato que pase tu propio test, corrido a través de Hermes, no en un chat simple. El runtime cambia el resultado: el mismo modelo sacó 9,55 vía OpenCode y hasta 7,0 vía Hermes cuando mi persona cayó en el lugar equivocado.

Fija el modelo en ~/.hermes/config.yaml y mantén a los orchestrators fuera de eso.

¿Hermes Agent funciona con Claude Code?

Hacen trabajos distintos y coexisten bien. Hermes habla ACP para editores como Zed, y hermes mcp serve expone sus conversaciones como herramientas MCP que Claude Code, Cursor o Codex pueden llamar. En mi setup, Claude Code es donde construyo y Hermes es lo que sigue trabajando cuando yo paro.