Ir al contenido
  1. Posts/

Monté un agente de IA en mi homelab que monitoriza emails, gestiona servidores y me avisa por Telegram. Esto es lo que aprendí.

Hace un año habría dicho que un “agente de IA personal” era marketing. Hoy tengo uno corriendo en mi Mac mini que monitoriza tres clusters Kubernetes, revisa el correo de cuatro cuentas, me avisa por Telegram cuando llega un email importante y puede ejecutar comandos en mis servidores. Y no hay ningún dato de mi infraestructura pasando por un servidor de terceros.

Esto no es ciencia ficción ni requiere 128GB de RAM. Requiere un Mac mini (o cualquier servidor x86 con 8GB), ganas de trastear y aceptar que las primeras semanas vas a estar afinando cosas.

Qué es OpenClaw y por qué importa en un homelab
#

OpenClaw es un agente de IA open-source que puedes hospedar tú mismo. Recibe mensajes (Telegram, WhatsApp, Discord, iMessage), ejecuta herramientas (leer archivos, ejecutar comandos, llamar APIs), y responde. Es el mismo modelo que usarías en la web de Claude o ChatGPT, pero ejecutado desde tu máquina, con acceso a tus cosas.

La diferencia con usar un chatbot normal:

  • Tiene memoria persistente: recuerda lo que le dijiste la semana pasada
  • Puede ejecutar comandos reales: kubectl, ssh, scripts, lo que configures
  • Funciona con heartbeats: cada X minutos revisa si hay algo que atender
  • Soporta múltiples canales: Telegram, WhatsApp, Discord, etc.
  • Es open-source: puedes leer el código, contribuir, self-hostear

Lo que yo uso de verdad, un año después:

Monitorización pasiva: Cada hora revisa si hay emails urgentes de mis proveedores, si hay alertas en el clúster, si algún contenedor está caído. Si hay algo, me manda un mensaje. Si no, silencio.

Comandos por Telegram: “reinicia el contenedor de Gitea”, “¿cuánto espacio libre tiene Phatt?”, “¿qué pods están en error en el clúster?”. No me conecto por SSH, le pregunto directamente.

Gestión de calendarios y correo: Conectado a Google Calendar y a mis cuentas de Microsoft 365, puede revisar qué tengo mañana o buscar un email de hace tres semanas.

Actualizaciones de infraestructura: Esta semana actualicé OpenClaw en 4 VMs distintas enviando un mensaje. Le di la orden, lo hizo en paralelo, y me confirmó cuáles estaban bien y cuáles necesitaban intervención manual.

Arquitectura básica
#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Telegram / WhatsApp
  Gateway OpenClaw
  (Mac mini M1)
   Herramientas:
   - exec (bash, kubectl, ssh)
   - email (MS Graph, Gmail)
   - calendar
   - web search
   - file read/write
  Infraestructura:
  - Clúster K3s (Tailscale)
  - Phatt (Unraid, 72 cores)
  - Proxmox (varios nodos)

El gateway corre en el Mac mini como servicio LaunchAgent. Recibe mensajes de Telegram, los procesa con el modelo de IA (Claude via API de Anthropic), y ejecuta las herramientas que necesite para responder.

Instalación
#

Requisitos
#

  • macOS (también funciona en Linux)
  • Node.js >= 22
  • API key de Anthropic (o cualquier proveedor compatible: OpenAI, Ollama local, etc.)
  • Una cuenta de bot de Telegram

Instalar
#

1
2
npm install -g openclaw
openclaw onboard

El proceso de onboarding te guía por la configuración inicial: modelo, canal de mensajería, instalación del servicio.

Estructura del workspace
#

OpenClaw usa un directorio de workspace donde vive toda la configuración y los archivos del agente:

1
2
3
4
5
6
7
8
~/clawd/
├── SOUL.md        # Personalidad y comportamiento del agente
├── USER.md        # Contexto sobre el usuario (tú)
├── MEMORY.md      # Memoria a largo plazo
├── CONTEXT.md     # Qué estamos haciendo ahora
├── TOOLS.md       # Notas sobre herramientas y configuración
├── skills/        # Habilidades especializadas
└── memory/        # Logs diarios

Los archivos SOUL.md y USER.md son los más importantes al principio. Cuanto más contexto le des sobre tu infraestructura y cómo trabajas, mejor funcionará.

Conectar con la infraestructura
#

Kubernetes / K3s
#

Si tienes kubectl configurado en la máquina donde corre OpenClaw y apunta a tu clúster, el agente puede ejecutar comandos directamente. No hay configuración especial.

1
2
3
4
# OpenClaw puede ejecutar esto cuando se lo pidas
kubectl get pods -A --field-selector=status.phase!=Running
kubectl rollout restart deployment/mi-app -n mi-namespace
kubectl logs pod/mi-pod --tail=50

En mi caso el clúster está en otra red accesible via Tailscale. El kubeconfig apunta a la IP de Tailscale del control plane. Funciona exactamente igual.

Servidores por SSH
#

Para que el agente pueda conectarse a tus servidores por SSH, asegúrate de que la clave SSH de la máquina donde corre está en el authorized_keys de los servidores objetivo. Después puede ejecutar comandos remotos directamente.

Email
#

OpenClaw tiene integración con Gmail (via OAuth), Microsoft 365 (via MS Graph) e IMAP genérico. La configuración requiere crear una app en Azure o Google Cloud Console para obtener tokens OAuth, pero es un proceso estándar.

Una vez configurado, puede buscar emails, leerlos y notificarte de los importantes con la frecuencia que configures.

Servicios web
#

Para APIs locales (Home Assistant, Proxmox, etc.), el agente puede hacer peticiones HTTP directamente. Solo tienes que decirle la URL y el token en TOOLS.md.

Heartbeats: el motor del monitoreo proactivo
#

Los heartbeats son lo que convierte OpenClaw de un chatbot en un agente proactivo. Cada X minutos (configurable), el sistema despierta al agente y le pasa un prompt predefinido.

En mi caso, el heartbeat revisa:

  1. Email urgente: ¿llegó algo de mis proveedores críticos?
  2. Estado del clúster: ¿hay pods en error hace más de 1 hora?
  3. Alertas de discos: ¿hay ofertas de los discos que busco? (tengo un script que scrapea)
  4. Tareas de fondo: ¿hay algo que terminó (descargas, scripts) que necesite atención?

Si no hay nada relevante, el agente responde HEARTBEAT_OK internamente y no me manda nada. Si hay algo, me manda un mensaje.

Después de meses ajustando, el resultado es que recibo mensajes útiles 2-4 veces al día. No spam.

Skills: especialización por dominio
#

Una de las cosas más útiles de OpenClaw son las skills: archivos Markdown que el agente lee automáticamente cuando detecta que la tarea encaja. Son instrucciones especializadas.

Por ejemplo, tengo una skill para gestionar el balance entre trabajo y vida personal que se activa cuando el agente detecta que estoy sobrecargado. Y otra para analizar decisiones importantes contra mis objetivos a largo plazo.

Para el homelab son útiles para cosas como:

  • Procedimientos de recuperación de desastres paso a paso
  • Cómo gestionar ciertos servicios específicos de tu setup
  • Reglas de qué hacer cuando X servicio falla

Lo que no funciona como esperaba
#

Los modelos locales (Ollama) no están al nivel para tareas complejas: Probé correr todo con modelos locales para eliminar el coste de API. Para tareas simples va bien, pero para razonamiento complejo o cuando necesita coordinar muchas herramientas, los modelos de 7B/13B se pierden. Ahora uso Claude Sonnet para el día a día y Claude Opus para tareas complejas.

El contexto tiene límites: Después de conversaciones muy largas, el agente puede perder el hilo. OpenClaw tiene compactación automática de contexto, pero para proyectos largos sigue siendo un reto. La solución es ser disciplinado con los archivos de memoria.

SSH a máquinas sin Tailscale: Si una máquina no está en tu red Tailscale, el acceso SSH desde el Mac mini puede requerir saltos. Funciona, pero hay que documentarlo bien.

Coste real
#

  • API Anthropic: ~$10-20/mes dependiendo del uso. La mayor parte es Claude Sonnet, que es el más económico del tier premium.
  • Hardware: cualquier Mac mini M1 de segunda mano sirve. Los encuentras por 200-300€.
  • Electricidad: el Mac mini M1 consume 7-8W idle. Prácticamente nada.

Para lo que aporta —monitorización proactiva, automatización, acceso a toda tu infraestructura desde el móvil— es una de las mejores inversiones que he hecho en el homelab.

¿Por dónde empezar?
#

Si quieres probarlo, mi recomendación:

  1. Instala OpenClaw, configura Telegram y el modelo
  2. Dale contexto en SOUL.md y USER.md sobre tu setup
  3. Conecta una sola cosa primero: que pueda ejecutar comandos en tu máquina local
  4. Añade el heartbeat con una sola comprobación simple
  5. Expande gradualmente según lo que uses de verdad

La trampa es querer conectar todo el día uno. El agente funciona mejor cuanto más simple empieza.


¿Tienes preguntas sobre la configuración o casos de uso concretos? Los comentarios están abiertos.