Saltar al contenido principal
principiantePart 2

Migrar el Bot de Telegram de OpenClaw a Hermes

· 6 min de lectura
Rafael Fernandes
Ingeniero de PLN y Redactor Técnico en WiLine
Share:
Hermes Agent+
0/2
🎯 Skill path0/2 earned
Self-hosting Hermes

En Parte 1 alojaste Hermes con memoria persistente. Esta parte lo conecta al mismo bot de Telegram de la serie OpenClaw — el chat que tus usuarios ya conocen sigue funcionando exactamente como antes, solo que con un agente diferente respondiendo detrás. No hay un nuevo bot que anunciar, ni un canal al que migrar a la gente.

Reproducibilidad

Continúa en la misma instancia WEC que la Parte 1. El gateway de Hermes ya está instalado y funcionando como un servicio de usuario systemd — esta parte es configuración, no instalación. Cada comando y error a continuación es de la ejecución real.

Por qué mantener el mismo bot

El autoalojamiento solo vale la pena si no te ata al agente con el que comenzaste. El bot en sí — su nombre, su historial de chat, las personas que ya hablan con él — es el activo. El agente detrás de él es reemplazable. Cambiar OpenClaw por Hermes en el mismo bot prueba eso: misma puerta de entrada de Telegram, mismo hilo de conversación, nuevo cerebro.

Requisitos previos

  • Hermes funcionando desde Parte 1, gateway instalado como un servicio systemd.
  • Un token de bot de Telegram. Reutiliza el de la tutorial de Telegram de OpenClaw a través de @BotFather → /mybots → tu bot → API Token — o crea uno nuevo con /newbot si no tienes el antiguo a mano. De cualquier manera, los pasos a continuación son idénticos.

Paso 1 — Ejecutar el asistente de configuración

hermes gateway setup

Selecciona Telegram de la lista de plataformas, luego elige cómo conectarlo:

Salida
◆ Telegram
¿Cómo te gustaría crear tu bot de Telegram?

[1] Automático (recomendado)
Escanea un código QR → confirma en Telegram → listo.
No se necesita copiar y pegar el token.

[2] Manual
Crea un bot a través de @BotFather tú mismo y pega el token.

Opción [1/2] [1]: 2
Crear un bot a través de @BotFather en Telegram
Token de bot de Telegram: **********************************************
✓ Token de Telegram guardado

Toma la opción 2 — la opción 1 crea un bot completamente nuevo a través de un código QR, lo cual derrota el propósito si estás reutilizando uno existente.

Paso 2 — Abrir acceso (y un verdadero problema)

A continuación, el asistente pregunta quiénes pueden usar el bot:

Salida
🔒 Seguridad: Restringir quién puede usar tu bot
Para encontrar tu ID de usuario de Telegram:
1. Envía un mensaje a @userinfobot en Telegram
2. Te responderá con tu ID numérico (por ejemplo, 123456789)

IDs de usuario permitidos (separados por comas, deja vacío para acceso abierto):

Si no tienes tu ID a mano, déjalo en blanco y continúa — puedes restringir esto más tarde. Pero el aviso es engañoso: dejarlo vacío no abre el acceso por defecto. Los registros del gateway contaron la verdadera historia después del reinicio:

Salida
WARNING gateway.run: No se han configurado listas de permitidos de usuarios. Todos los usuarios no autorizados
serán denegados. Establece GATEWAY_ALLOW_ALL_USERS=true en ~/.hermes/.env para permitir
acceso abierto, o configura listas de permitidos de plataforma (por ejemplo,
TELEGRAM_ALLOWED_USERS=tu_id).

Una lista de permitidos vacía significa denegar a todos, no acceso abierto. Si deseas acceso abierto (bien para un bot personal, no para nada público), necesitas un paso más:

echo 'GATEWAY_ALLOW_ALL_USERS=true' >> ~/.hermes/.env

El asistente también pregunta por un Canal Principal — donde Hermes entrega resultados de cron y mensajes entre plataformas. Déjalo en blanco también; puedes configurarlo más tarde desde dentro del chat con /sethome.

Termina el asistente y deja que reinicie el gateway:

Salida
¿Reiniciar el gateway para recoger cambios? [Y/n]: Y
✓ Servicio de usuario reiniciado

Terminal mostrando la ejecución completa del asistente — token guardado, la advertencia de la lista de permitidos, y el reinicio del gateway Figura 1. Todo el asistente, de principio a fin — token, la advertencia de la lista de permitidos, y el reinicio.

Si agregaste GATEWAY_ALLOW_ALL_USERS después de que el asistente ya reinició una vez (como arriba), reinicia de nuevo para que recoja el cambio en .env:

systemctl --user restart hermes-gateway.service

Paso 3 — Verificar

Envía un mensaje a tu bot. No a @BotFather — a tu bot, por el nombre de usuario que le diste cuando lo creaste. Es fácil confundirse: BotFather responde todo con su propio menú de comandos fijo, así que si ves eso en lugar de una respuesta real, estás en el chat equivocado.

El primer mensaje puede recibir un empujón del sistema en lugar de una respuesta de chat — eso es Hermes notando que aún no hay un canal principal, no un fallo:

Salida
📬 No se ha establecido un canal principal para Telegram. Un canal principal es donde Hermes
entrega resultados de trabajos cron y mensajes entre plataformas.

Escribe /sethome para hacer de este chat tu canal principal, o ignora para omitir.

Envía otro mensaje y responde de verdad:

Chat de Telegram mostrando al bot respondiendo "¡Hola! ¿Cómo puedo ayudar?" a través de Hermes Figura 2. El mismo bot de la serie OpenClaw, ahora respondiendo a través de Hermes.

Pregúntale algo con profundidad real, y entrega una respuesta estructurada real — no solo una respuesta estándar:

Chat de Telegram mostrando al bot explicando la dispersión de Rayleigh en respuesta a "¿Por qué es el cielo azul?" Figura 3. Mismo agente, una pregunta real — explicación completa, no una línea.

Mismo bot, mismo historial de chat, nuevo agente.

Solución de problemas (real)

"No se han configurado listas de permitidos de usuarios. Todos los usuarios no autorizados serán denegados." — dejar el aviso de la lista de permitidos vacío no significa acceso abierto; significa denegar a todos. Establece GATEWAY_ALLOW_ALL_USERS=true en ~/.hermes/.env y reinicia el gateway.

"Conflicto de sondeo de Telegram... asegúrate de que solo una instancia de bot esté ejecutándose" — aparece durante unos segundos justo después de un reinicio, mientras los servidores de Telegram terminan de liberar la sesión anterior. Intenta de nuevo y se limpia solo dentro de los 20 segundos; no se necesita acción a menos que siga repitiéndose más allá del 5to intento, lo que significa que otro proceso realmente está sondeando el mismo token.

El bot no responde en absoluto — verifica que estás enviando un mensaje al bot mismo, no a @BotFather. BotFather siempre responde con su propia lista de comandos independientemente de lo que le envíes.

Qué sigue

El bot responde — lo siguiente es ponerlo en un horario: un informe matutino o un chequeo de salud del servicio entregado a este mismo chat, sin necesidad de sondeo.

Finished this tutorial?
Mark it complete to earn Telegram on Hermes on your skill path.

Comments & questions

Hit an error, spotted a typo, or have a question? Leave a note below.