Hermes Flightplan #1: La guía definitiva para crear un agente de IA en Telegram siempre activo (código completo para copiar y pegar)

@witcheer
INGLÉShace 4 semanas · 22 jun 2026
111K
232
34
5
759

TL;DR

Esta guía ofrece un recorrido exhaustivo para implementar el agente de IA Hermes en un VPS o Mac, incluyendo integración con Telegram, recuperación automática tras fallos y una configuración segura mediante Nous Portal.

¿Quieres un agente de IA al que puedas enviar mensajes desde tu teléfono, que siga funcionando después de cerrar la computadora portátil y que se reactive solo tras un reinicio? Hermes Agent hace esto: funciona como una puerta de enlace con la que te comunicas a través de Telegram y, una vez que lo configuras correctamente, se reinicia solo después de un bloqueo o un corte de energía.

Configuré el mismo sistema en dos equipos, un VPS económico en la nube y el Mac Mini en mi escritorio, para poder describir todo el proceso sin omitir nada. Es una sola ruta. El equipo solo cambia lo que escribes en dos lugares: el comando de instalación y la parte que mantiene activa la puerta de enlace. Todo lo demás es idéntico.

Todo lo que aparece a continuación se ejecutó en mi propio hardware. La ruta de Linux es un Hetzner CX23 (x86, 2 vCPU, 4 GB RAM, 40 GB de disco) con Ubuntu 24.04.4 LTS. La ruta de Mac es un Mac Mini M4 con macOS 15. Ambos ejecutaron Hermes Agent v0.16.0.

lo que tendrás al final

  • Hermes Agent instalado y ejecutándose como un usuario normal, no como root
  • Un bot de Telegram al que le envías mensajes desde tu teléfono, bloqueado solo para tu cuenta
  • La puerta de enlace funcionando como un servicio administrado, para que se reactive después de un bloqueo o reinicio
  • En el VPS, un equipo reforzado: solo acceso SSH con clave, sin inicio de sesión como root, un cortafuegos

elige tu equipo

Un VPS es la opción más económica. Cualquier equipo x86 con 4 GB de RAM y unos 20 GB de espacio libre en disco puede ejecutar esto; el mío es un Hetzner CX23 a $7.79/mes (precios de Hetzner EE. UU., 18 de junio de 2026). Alquílalo y estará siempre encendido por definición.

Un Mac que ya tengas es la otra opción. Cualquier Mac con chip Apple Silicon que permanezca encendido funciona, y el costo de funcionamiento es cero más allá del modelo. La desventaja es que la capa de durabilidad es más complicada en macOS, lo que cubro al final.

Necesitas una clave SSH en tu propia máquina (ssh-keygen -t ed25519 si no tienes una), una cuenta de Telegram y un modelo para el agente. Esta guía apunta a Nous Portal, que usa OAuth, por lo que no hay una clave de API que guardar en un archivo. Hermes necesita un modelo con al menos 64k de contexto.

paso 1: prepara el equipo

en un VPS

Crea el servidor en tu proveedor: Ubuntu 24.04, una instancia x86 (no Arm, consulta la nota de costos) y pega tu clave pública SSH al crearlo.

Un equipo público nuevo necesita unos minutos de refuerzo antes de ponerle un agente. El script secure-box.sh de la receta lo hace en una sola pasada: una actualización de apt, un archivo de intercambio de 2 GB, un usuario sudo no root con tu clave, solo SSH con clave y sin inicio de sesión como root, y un cortafuegos que solo permite SSH. Edita las dos variables al principio, cópialo, ejecútalo como root:

bash
1scp secure-box.sh root@<tu-ip-vps>:
2ssh root@<tu-ip-vps> 'bash secure-box.sh'

Esta imagen de Ubuntu venía con PasswordAuthentication activado, aunque creé el equipo con una clave SSH. El script lo desactiva. Antes de cerrar la sesión de root, abre una segunda terminal y confirma que el nuevo usuario inicia sesión, para que un error no te deje fuera:

bash
1ssh hermes@<tu-ip-vps>

A partir de aquí, eres hermes, no root.

en un Mac

No hay paso de refuerzo. Es tu máquina en tu propia red, no un equipo público. Instala Homebrew si no lo tienes (el instalador lo usa en el siguiente paso) y ya estás listo.

paso 2: instala Hermes

La instalación es un solo comando, el mismo en ambos equipos, ejecutado como tu usuario normal:

bash
1curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
2source ~/.bashrc
3hermes --version

El instalador detecta tu sistema operativo y descarga su propio conjunto de herramientas (uv, Python 3.11, Node.js 22, ripgrep, ffmpeg, un Playwright Chromium para herramientas del navegador) en ~/.hermes, por lo que nunca toca tu Python del sistema. En mi Hetzner, instaló Hermes Agent v0.16.0 con Python 3.11.15.

Este es el paso pesado. En el VPS, el disco pasó de 1.2 GB usados a 7.8 GB, unos 6.6 GB, la mayor parte del motor del navegador y Node. Planea tener 20 GB libres y deja de preocuparte. Si se ejecuta a través de un comando SSH simple sin terminal, el instalador muestra "Setup wizard skipped (no terminal available)", lo cual está bien, la configuración es el siguiente paso.

En un Mac, el mismo comando se ejecuta, con un pequeño detalle: instala Homebrew primero. Con Homebrew presente, el instalador descarga git y sus dependencias sin necesidad de confirmación. Sin él, recurre a las herramientas de línea de comandos de Apple, lo que puede abrir un cuadro de diálogo de macOS que debes hacer clic, y un cuadro de diálogo no es bueno a través de SSH (esto está en la rama de macOS del instalador). Después de eso, es el mismo flujo que el anterior.

paso 3: apúntalo a un modelo

bash
1hermes setup --portal

Esto es OAuth contra Nous Portal: imprime una URL y un código, lo apruebas en el navegador y ahora el equipo habla con un modelo sin una clave de API en un archivo. Nous Portal tiene un nivel gratuito, y ejecuté todo el proceso en un modelo gratuito. Si prefieres usar tu propio proveedor, ejecuta hermes model y elige uno; la clave se guarda en ~/.hermes/.env.

paso 4: habla con él

en un VPS

En el momento en que se cierra tu SSH, una sesión en primer plano muere con él. tmux mantiene la sesión activa: inicia dentro de tmux, sepárala y seguirá ejecutándose.

bash
1sudo apt-get install -y tmux
2tmux new -s hermes # luego, dentro: hermes

Sepárala con Ctrl-b y luego d, y vuelve a conectarte más tarde desde cualquier lugar:

bash
1ssh hermes@<tu-ip-vps>
2tmux attach -t hermes

El primer inicio del agente interactivo lleva un momento. El mío tardó unos 30 segundos en cargar el modelo y las habilidades antes de que apareciera el mensaje. Una vez que está activo, los comandos de barra diagonal funcionan.

/goal es el que vale la pena mostrar: establece un objetivo permanente en el que el agente trabaja a lo largo de las interacciones, con un modelo juez que verifica después de cada interacción si se ha completado.

bash
1/goal verifica la RAM total y el disco libre de este equipo usando herramientas de shell, luego informa ambos en una línea y marca el objetivo como completado

El mío ejecutó el comando de shell por sí mismo y respondió con "RAM total del VPS: 3.7 Gi, espacio libre en disco: 28 G" en unos 15 segundos. Eso es el agente usando sus propias herramientas.

Mantén dos ideas separadas: tmux mantiene una sesión interactiva abierta a través de una conexión SSH caída, pero no a través de un reinicio. Para una puerta de enlace no supervisada que sobreviva a un reinicio, quieres un servicio administrado, que es el paso 6.

en un Mac

Estás sentado frente a la máquina, por lo que puedes ejecutar hermes en una terminal. tmux sigue siendo útil si te conectas por SSH desde tu computadora portátil, pero aquí es opcional.

paso 5: la puerta de enlace de Telegram

Esta parte es idéntica en ambos equipos. Crea un bot: envía un mensaje a @BotFather en Telegram, escribe /newbot y copia el token. Obtén tu ID de usuario numérico de @userinfobot. Luego, configura la puerta de enlace:

bash
1hermes gateway setup

Elige Telegram, pega el token y establece los usuarios permitidos en tu ID numérico para que solo tú puedas hablar con él. El token se guarda en ~/.hermes/.env, el resto en ~/.hermes/gateway.json.

La configuración solo escribe la configuración. No inicia nada, por lo que el bot permanece en silencio, y eso sorprende a la gente: nada está consultando Telegram todavía. Inícialo en primer plano una vez para verificar que se conecta:

bash
1hermes gateway run

Quieres ver, en el registro:

bash
1gateway.run: Connecting to telegram...
2[Telegram] Connected to Telegram (polling mode)
3gateway.run: ✓ telegram connected

El modo de sondeo significa que la puerta de enlace se comunica con Telegram; nada se conecta a tu equipo, por lo que el cortafuegos no necesita ningún puerto de entrada más allá de SSH. Envía un mensaje a tu bot; debería responder. Luego, detén la puerta de enlace en primer plano con Ctrl-C, porque no puedes tener dos cosas sondeando el mismo token a la vez, y el siguiente paso la ejecuta como un servicio.

paso 6: haz que sobreviva a un reinicio

Este es el único lugar donde los dos equipos divergen.

en un VPS: systemd

hermes gateway install registra la puerta de enlace como un servicio de systemd para que se reinicie en caso de bloqueo y se reactive después de un reinicio. En esta versión, el instalador hace dos preguntas [Y/n] y no hay una opción para omitirlas. Si se ejecuta a través de un comando SSH no interactivo, lo natural al configurar un equipo con scripts, no recibe respuesta, se cancela y no instala nada. Proporciona las respuestas en la entrada estándar:

bash
1printf 'n\nY\n' | hermes gateway install

Las dos preguntas son "¿iniciar la puerta de enlace ahora?" y "¿iniciar automáticamente al iniciar sesión/inicio?". La n y luego Y dice: no la inicies en este momento, pero actívala al inicio. El instalador también activa la persistencia de la sesión de usuario, que es lo que permite que un servicio de usuario se ejecute antes de que hayas iniciado sesión. Confírmalo, porque esto es lo que hace que "sobrevive al reinicio" sea verdadero y no solo "sobrevive al cierre de sesión":

bash
1loginctl show-user $USER -p Linger # quieres: Linger=yes

Inícialo y verifícalo:

bash
1hermes gateway start
2systemctl --user status hermes-gateway

Quieres active (running) y NRestarts=0. En mi equipo, la puerta de enlace usó unos 280 MB y toda la máquina se situó en unos 556 MB, cómodo en 4 GB.

Ahora, la prueba real. Reinicia y no lo toques:

bash
1sudo reboot

El mío se reinició en unos 15 segundos, la puerta de enlace se inició sola, se reconectó a Telegram y respondió al siguiente mensaje con el historial de la conversación anterior al reinicio intacto. Ese es el objetivo principal.

en un Mac: launchd y un watchdog

macOS usa launchd, no systemd, y hay una trampa. En macOS 15 con Hermes v0.16.0, hermes gateway start puede fallar al registrar el servicio de launchd y recurrir, sin decírtelo, a un proceso en segundo plano no supervisado. Ves esto:

bash
1Bootstrap failed: 5: Input/output error
2⚠ launchd cannot manage the gateway on this macOS version (launchctl exit 5)
3✓ Started gateway as a background process instead
4 It will NOT auto-start at login or auto-restart on crash.

Si tenías un trabajo de launchd funcionando antes, el comando lo descargó, y la alternativa funciona bien hasta el primer bloqueo o reinicio, luego tu agente desaparece sin que nada te lo diga. launchctl sin formato funciona donde falla la CLI, incluso a través de SSH:

bash
1launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.hermes.gateway.plist
2launchctl print gui/$(id -u)/ai.hermes.gateway | grep state # quieres: state = running

El plist inicia la puerta de enlace al iniciar sesión, pero no la reinicia en caso de bloqueo. Un watchdog de cron cierra ambas brechas, y cron se ejecuta al inicio sin necesidad de inicio de sesión. La receta incluye gateway-watchdog.sh; verifica cada 5 minutos si el proceso de la puerta de enlace está activo y lo reinicia si no lo está. Instálalo en un horario:

bash
1(crontab -l 2>/dev/null; echo '*/5 * * * * $HOME/scripts/gateway-watchdog.sh >/dev/null 2>&1') | crontab -

He visto esta secuencia recuperar una puerta de enlace degradada en mi propio Mac Mini. Reinícialo y confirma que la puerta de enlace vuelve en cinco minutos sin iniciar sesión.

verifica tu configuración

  1. El servicio está activo: systemctl --user status hermes-gateway en Linux (active (running)), o launchctl print gui/$(id -u)/ai.hermes.gateway | grep state en macOS (state = running)
  2. Envía un mensaje a tu bot: te responde e ignora a cualquiera que no esté en tus usuarios permitidos
  3. En Linux, loginctl show-user [$USER](https://x.com/search?q=%24USER&src=cashtag_click) -p Linger muestra Linger=yes
  4. Reinicia el equipo, espera, envía un mensaje al bot nuevamente sin iniciar sesión: responde

costo

En el VPS, el equipo es el único gasto. El mío es un Hetzner CX23 a $0.012/hora, con un tope de $7.79/mes (precios de Hetzner EE. UU., 18 de junio de 2026; el CX22 de la UE tiene la misma configuración y es más barato).

En el Mac, es una máquina que ya tienes, sin servicios adicionales. El modelo es gratuito en el nivel gratuito de Nous Portal en ambos casos.

Aquí, la memoria no es el límite: la puerta de enlace usó unos 280 MB, todo el equipo unos 556 MB, por lo que 1 GB de RAM es suficiente. El disco es el límite real: la instalación es de unos 6.6 GB, por lo que una imagen de 1 GB o 10 GB es ajustada; dale 20 GB. Y usa x86, es la opción segura.

ejecútalo tú mismo y qué sigue

Ambos equipos tienen una receta completa con los scripts exactos, ejecutables tal cual:

Ahora tienes un agente siempre activo en Telegram que sobrevive a un reinicio.

El próximo Flightplan se basa en esto: trabajos programados que te envían un mensaje solo cuando algo es importante, un espacio de trabajo sincronizado con git que el agente lee y escribe, y el flujo de borrador y aprobación que mantiene a un humano en cada acción pública.

Gracias por leer.

Guardar con un clic

Lee artículos virales en profundidad con IA en YouMind

Guarda la fuente, haz preguntas concretas, resume el argumento y convierte un artículo viral en notas reutilizables en un único espacio de trabajo con IA.

Explora YouMind
Para creadores

Convierte tu Markdown en un artículo de 𝕏 impecable

Cuando publicas tus propios textos largos, dar formato en 𝕏 a imágenes, tablas y bloques de código es un fastidio. YouMind convierte un borrador completo en Markdown en un artículo de 𝕏 impecable y listo para publicar.

Prueba Markdown a 𝕏

Más patrones por descifrar

Artículos virales recientes

Explorar más artículos virales