Ayer me escribió un alumno de Dominicode. Estaba entusiasmado probando agentes autónomos de IA, pero los tenía corriendo localmente en su portátil. El problema era obvio: cada vez que cerraba la tapa para irse a dormir, su bot de soporte en Telegram se apagaba por completo.
Un agente autónomo a tiempo parcial no es un agente autónomo; es un script de oficina con horario comercial.
Para que un agente de IA trabaje por ti, monitoree tus servidores y atienda a tus clientes las 24 horas del día, necesita vivir en la nube. Y la forma más barata, segura y escalable de hacerlo es desplegar Hermes Agent en un VPS.
Hoy te quiero enseñar la guía paso a paso para desplegar este framework en tu propio servidor VPS usando Docker Compose y garantizando que tu agente tenga memoria persistente ante cualquier reinicio.
¿Por qué elegir un VPS en lugar de plataformas Serverless?
Las plataformas serverless o FaaS (como AWS Lambda o Vercel Functions) son excelentes para APIs tradicionales, pero fallan al hospedar agentes de IA de largo recorrido por dos motivos:
- Limitación de tiempo de ejecución: Un agente autónomo puede tardar varios minutos en razonar, ejecutar código de diagnóstico en bucle y responder. Las funciones Serverless suelen expirar a los pocos segundos.
- Falta de persistencia local: Los agentes necesitan una base de datos de memoria (SQLite/vectorial) y una carpeta de habilidades locales (Skills). Las arquitecturas efímeras borran estos archivos al apagarse.
Un VPS (de proveedores como Hetzner, DigitalOcean o Linode) te da control absoluto del hardware, un runtime continuo sin límites de tiempo y almacenamiento en disco persistente por una fracción del costo.
La configuración de producción: docker-compose.yml
Para desplegar a Hermes 24/7 de forma aislada y segura, utilizaremos Docker Compose. Mapearemos el almacenamiento del agente a volúmenes del sistema anfitrión para blindar su memoria SQLite y sus habilidades autogeneradas contra caídas.
Crea un archivo llamado docker-compose.yml en la carpeta de tu proyecto en el VPS:
version: '3.8'
services:
hermes:
image: nousresearch/hermes-agent:latest
container_name: hermes_agent_prod
restart: unless-stopped
environment:
- NODE_ENV=production
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
- TELEGRAM_ADMIN_CHAT_ID=${TELEGRAM_ADMIN_CHAT_ID}
- NOTION_API_KEY=${NOTION_API_KEY}
volumes:
# Persistencia de la base de datos de memoria SQLite local
- hermes_data:/app/data
# Habilidades/Skills autogeneradas por el agente
- ./skills:/app/skills
# Acceso seguro a Docker para el sandbox de diagnóstico
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "3000:3000"
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
volumes:
hermes_data:
driver: local
Explicación técnica de los volúmenes mapeados:
hermes_data:/app/data: Aquí es donde Hermes guarda su base de datos de memoria SQLite. Si no la persistes en disco, tu agente olvidará las conversaciones previas con los usuarios cada vez que actualices el contenedor../skills:/app/skills: Esta carpeta almacena los scripts que el agente auto-programa cuando aprende una nueva habilidad a través del Self-Improving Loop. Al mapearla, las nuevas herramientas persisten en tu VPS./var/run/docker.sock:/var/run/docker.sock: Permite al agente arrancar contenedores Docker efímeros de forma aislada para realizar diagnósticos y testear scripts sin comprometer la seguridad del VPS principal. Como vimos en nuestro post anterior, esto es clave para implementar un Docker Sandbox seguro en producción.
Guía de Despliegue en 4 Pasos
Una vez configurado tu VPS con Docker y Docker Compose instalados, el despliegue se reduce a cuatro comandos de terminal:
Paso 1: Configurar las variables de entorno
Crea un archivo .env en la misma carpeta que tu docker-compose.yml e introduce tus claves de API privadas:
OPENROUTER_API_KEY=tu_clave_de_openrouter
TELEGRAM_BOT_TOKEN=tu_token_de_telegram
TELEGRAM_ADMIN_CHAT_ID=tu_id_de_chat
NOTION_API_KEY=tu_token_de_notion
Paso 2: Crear el directorio de Skills
Asegúrate de que la carpeta local para las habilidades del agente existe en el sistema de archivos:
mkdir -p skills
Paso 3: Levantar el contenedor en segundo plano
Ejecuta el comando para descargar e inicializar el agente en modo demonio (-d):
docker compose up -d
Paso 4: Monitorear la inicialización
Verifica que el agente se ha conectado correctamente a tus canales de mensajería leyendo los logs en tiempo real:
docker compose logs -f hermes
Si has configurado correctamente las variables, verás un log indicando que el gateway de Telegram está activo y listo para recibir preguntas de tus usuarios.
Este es el proceso exacto que seguimos al construir integraciones seguras en el curso de Construye con IA para automatizar flujos comerciales, y que extendemos al despliegue Git-Ops en Railway en el nuevo [curso de Agentes IA Autónomos en Producción con Hermes Agent]([ENLACE PENDIENTE]).
Conclusión: Pon tu agente a trabajar 24/7
Configurar tu agente en local es genial para desarrollar la primera tarde. Pero para automatizar tu marketing, calificar prospectos o mantener tu servidor monitoreado, el agente debe estar activo de forma ininterrumpida. Un VPS de 5 dólares al mes y Docker es todo lo que necesitas para lograrlo.
Si quieres debatir sobre configuraciones avanzadas de seguridad en servidores de producción y cómo optimizar la persistencia de tus agentes, te espero en Dominicode Labs.
Preguntas Frecuentes (FAQ)
¿Qué requisitos mínimos de VPS se necesitan para Hermes Agent?
Se recomienda un VPS con al menos 1 vCPU y 1GB o 2GB de memoria RAM. Dado que el procesamiento del modelo de lenguaje se realiza mediante APIs en la nube (como OpenRouter o Anthropic), el VPS del agente solo necesita recursos para ejecutar la lógica de control y levantar sandboxes de Docker ligeros.
¿Cómo puedo asegurar que la base de datos de memoria no se corrompa en el VPS?
Docker gestiona los volúmenes locales de forma segura. Al usar la directiva restart: unless-stopped, el demonio de Docker se encargará de levantar al agente ante cualquier caída del servidor o reinicio programado del VPS, manteniendo la base de datos SQLite a salvo.
¿Por qué se mapea el socket de Docker (/var/run/docker.sock)?
El socket de Docker permite al contenedor de Hermes comunicarse con el motor de Docker del VPS. Esto es necesario para que el agente pueda iniciar contenedores hijos aislados (sandboxes) para ejecutar y verificar scripts generados por IA de forma totalmente segura.
¿Puedo desplegar Hermes Agent con Git-Ops en lugar de Docker Compose manual?
Sí. Puedes vincular tu repositorio de GitHub a herramientas como Portainer en tu VPS o utilizar plataformas de nube como Railway que realizan despliegues automatizados basados en ramas de Git, configurando los mismos volúmenes y variables de entorno detallados en esta guía.
Por Bezael Pérez — Developer senior con más de 15 años de experiencia y fundador de Dominicode.

Leave a Reply