Por qué construí AIdaemon: un agente de IA autoalojado que controlas desde tu teléfono
Llevaba tiempo usando agentes de IA para programar. Claude Code, Codex, Cursor, Windsurf, Open Code. Cambiaron la forma en que escribo software. Pero eso era todo. La IA se quedó dentro del editor.
Luego apareció OpenClaw. Un agente de IA de código abierto que realmente podía controlar tus aplicaciones, enviar mensajes, gestionar tu bandeja de entrada. No solo programación, sino todo en tu ordenador. Eso me hizo pensar en qué más podrían hacer los agentes de IA.
Pero yo quería algo diferente. No necesitaba un agente que controlara Spotify o gestionara mis luces inteligentes. Necesitaba uno que viviera en mi servidor, ejecutara comandos de terminal, desplegara código y recordara en qué estaba trabajando la semana pasada. Algo a lo que pudiera enviar mensajes desde mi teléfono mientras no estoy en mi escritorio y que hiciera trabajo de desarrollo real en mi máquina.
Por eso construí AIdaemon.
¿Qué es AIdaemon?
AIdaemon es un agente de IA autohospedado que se ejecuta como un daemon en segundo plano en tu máquina. Te comunicas con él a través de Telegram, Slack o Discord, y puede ejecutar comandos de terminal, navegar por la web, gestionar archivos, ejecutar tareas programadas y recordar cosas entre sesiones. Es un único binario de Rust. No requiere Docker, ni dependencias de Node.js. Solo cópialo en cualquier máquina y funcionará.
Piénsalo como tener un asistente capaz ejecutándose permanentemente en tu servidor o portátil al que puedes enviar mensajes desde cualquier lugar.
¿Por qué no usar simplemente OpenClaw?
De hecho, empecé con OpenClaw. La idea era brillante, pero cuando profundicé, seguía encontrando cosas que aún no existían. Quería aprobar comandos directamente desde mi teléfono antes de que se ejecutaran. Quería ver los pasos que estaba siguiendo la IA en tiempo real, no solo el resultado final. Cosas básicas para una herramienta que ejecuta comandos en tu máquina.
Luego encontré un error por el cual OpenClaw no funcionaba con Gemini. Lo arreglé y abrí una solicitud de extracción (pull request), pero la cola de PR era enorme. Sabía que tardaría días, quizás más, en que mi arreglo llegara a la rama principal. Ahí fue cuando me di cuenta. Si voy a seguir parcheando el proyecto de otra persona para conseguir lo que necesito, tal vez debería construir el mío y usarlo como experiencia de aprendizaje para entender cómo deben ser arquitecturados los agentes de IA personales, sus casos límite, limitaciones y todo lo demás.
Además, OpenClaw era notablemente lento en uno de mis Macs. Para algo que se supone que debe ejecutarse como un daemon en segundo plano, el rendimiento importa. Eso me hizo querer algo más ligero.
Pero la mayor carencia era la memoria. OpenClaw aún no la tenía. Cada conversación comenzaba desde cero. Sin contexto del día anterior, sin recuerdo de en qué proyectos trabajas, sin aprendizaje de errores pasados. No podía trabajar con eso.
Así que la pregunta pasó de "¿cómo hago que OpenClaw funcione para mí?" a "¿cómo sería mi daemon de IA ideal?". Seguía encontrando la misma frustración. Estaba lejos de mi ordenador y necesitaba comprobar algo, reiniciar un servicio o ejecutar un comando rápido. SSH desde mi teléfono funciona en un apuro, pero es molesto para cualquier cosa más allá de ls.
¿Qué pasaría si pudiera simplemente enviar un mensaje de Telegram como "comprueba si el servicio nginx se está ejecutando" y obtener una respuesta? ¿O "despliega los últimos cambios en staging"? Esa fue la idea central inspirada por OpenClaw.
La memoria fue lo primero que diseñé
Desde el primer día, supe que AIdaemon tenía que recordar cosas. No solo el historial de chat, sino conocimiento real. Qué proyectos manejo. Qué herramientas prefiero. Qué errores he encontrado antes y cómo los solucioné.
Cada seis horas, un proceso en segundo plano revisa las conversaciones recientes y extrae hechos duraderos. Cosas como "David usa Cloudflare para el despliegue" o "el servidor de staging se ejecuta en el puerto 3002". Los hechos antiguos son reemplazados cuando llega nueva información, por lo que el conocimiento se mantiene actualizado.
También aprende de los errores. Cuando AIdaemon encuentra un error y luego lo resuelve con éxito, almacena el patrón y la solución. La próxima vez que aparezca un error similar, ya sabrá qué hacer.
Los flujos de trabajo también se aprenden. Si compilo, pruebo y despliego una aplicación Rust de la misma manera varias veces, AIdaemon nota el patrón. Después de suficientes ejecuciones exitosas, el procedimiento se promociona automáticamente a una habilidad reutilizable. Sin necesidad de configuración manual.
Todo esto está respaldado por incrustaciones vectoriales (vector embeddings) para la recuperación semántica, ponderadas por frescura y utilidad. Los hechos que no se han recuperado en 30 días decaen gradualmente. La memoria se mantiene relevante sin limpieza manual.
La memoria también tiene en cuenta la privacidad. Los hechos se etiquetan con niveles de visibilidad, por lo que la información compartida en un mensaje directo privado nunca se filtra a un canal de equipo.
Cómo funciona
La arquitectura es sencilla. AIdaemon se inicia como un servicio del sistema (launchd en macOS, systemd en Linux) y se conecta a tus canales de mensajería. Cuando llega un mensaje, pasa por un bucle de agente.
- Clasificación de intención: Un modelo rápido determina lo que quieres. Una respuesta rápida, una tarea para ejecutar, una automatización para configurar.
- Selección de herramientas: El agente elige entre más de 40 herramientas integradas según tu solicitud.
- Ejecución con seguridad: Los comandos pasan por evaluaciones de riesgo y flujos de aprobación antes de ejecutarse.
- Actualización de memoria: El contexto importante se almacena para futuras conversaciones.
Las herramientas
AIdaemon viene con más de 40 herramientas listas para usar.
- Terminal: Ejecuta comandos de shell con seguridad basada en lista blanca y aprobación en línea (Permitir una vez / Siempre / Denegar).
- Operaciones de archivos: Leer, escribir, editar y buscar archivos.
- Git: Confirmar (commit), ramificar (branch), comprobar estado.
- Navegación web: Chrome sin cabeza (headless) para páginas que necesitan renderizado de JavaScript.
- Solicitudes HTTP: Control total de encabezados, perfiles de autenticación, soporte OAuth.
- Integración MCP: Conecta servidores MCP externos para extender capacidades.
- Agentes CLI: Delega trabajo a Claude Code, Gemini CLI, Codex o Aider.
- Programación: Automatización de tareas estilo cron con análisis de tiempo en lenguaje natural.
- Gestión de memoria: Consultar, actualizar y compartir conocimiento entre canales.
También puedes añadir canales en tiempo de ejecución. ¿Necesitas conectar un bot de Discord junto al que ya tienes en Telegram? Simplemente usa el comando /connect. No es necesario reiniciar.
Enrutamiento inteligente de modelos
No todos los mensajes necesitan el modelo más caro. AIdaemon clasifica las solicitudes en tres niveles.
- Rápido: Preguntas sencillas, búsquedas rápidas (modelo más barato).
- Principal: Tareas estándar, la mayoría de las interacciones (modelo predeterminado).
- Inteligente: Razonamiento complejo, tareas de varios pasos (modelo más capaz).
Soporta múltiples proveedores de LLM listos para usar. APIs compatibles con OpenAI (incluyendo OpenRouter), Google Gemini, Anthropic Claude, Ollama, y cualquier modelo local que desees ejecutar. Puedes cambiar los proveedores en tiempo de ejecución sin recompilar.
La seguridad es lo primero
Darle acceso a la terminal a un agente de IA es algo que quieres hacer bien. AIdaemon adopta un enfoque cauteloso.
- Ejecución basada en lista blanca: Solo los prefijos de comandos preaprobados se ejecutan sin preguntar.
- Flujo de aprobación en línea: Para cualquier cosa que no esté en la lista blanca, recibes una indicación de Permitir una vez / Permitir siempre / Denegar directamente en tu chat.
- Evaluación de riesgos: Los comandos se puntúan según el potencial destructivo, la sensibilidad de la ruta y la complejidad.
- Protección SSRF: Las herramientas HTTP bloquean las solicitudes a IPs internas.
- Estado cifrado: Cifrado de base de datos con SQLCipher, secretos almacenados en el llavero (keychain) de tu sistema operativo.
- Detección de estancamiento: El agente se detiene si repite la misma llamada a la herramienta tres veces o se queda atascado en patrones alternos.
Primeros pasos
La forma más rápida de probarlo.
# Instalar vía Homebrew
brew tap davo20019/tap
brew install aidaemon
# O instalar desde crates.io
cargo install aidaemon
# O descargar el binario directamente
curl -sSfL https://get.aidaemon.ai | bash
Luego crea un config.toml con tu proveedor de LLM y el token del bot de Telegram, e inicia el daemon.
# Instalar como servicio del sistema
aidaemon install-service
# O ejecutar en primer plano
aidaemon
Eso es todo. Envía un mensaje a tu bot de Telegram y estarás hablando con tu máquina. Consulta la documentación completa para ver las opciones de configuración y las funciones avanzadas.
¿Por qué Rust?
Nunca había escrito una línea de Rust antes de este proyecto. Después de experimentar la lentitud de OpenClaw en mi Mac, quería algo rápido. También quería ver si podía construir un sistema de calidad de producción en un lenguaje desconocido apoyándome en herramientas de codificación de IA para el trabajo pesado. Claude Code, Codex y Antigravity se encargaron del código repetitivo y las luchas con el verificador de préstamos (borrow checker). Yo me centré en la arquitectura y el diseño.
El resultado es un único binario que puedo copiar en una Raspberry Pi o un VPS de $5/mes y que simplemente funciona. Sin Docker, sin Node.js, sin dependencias de tiempo de ejecución. Para un daemon que debe ejecutarse 24/7, la seguridad en tiempo de compilación y la baja huella de memoria de Rust resultaron ser la elección correcta.
Qué sigue
AIdaemon está en la versión 0.9.2 y sigo añadiendo cosas. Las adiciones recientes incluyen un sistema de consultor de dos fases para una clasificación de intención más inteligente, aplicación forzada de esquemas JSON estructurados para las salidas de LLM y seguimiento de objetivos con presupuestos de tokens.
El proyecto es de código abierto en GitHub y está publicado en crates.io. Si te interesa tener un agente de IA personal que controlas totalmente, pruébalo y dime qué te parece.