Mi asistente personal de IA con OpenClaw, Claude y Mattermost
Más allá de los chat de IA: cómo montar una arquitectura de agentes autoalojada con OpenClaw, Claude y Mattermost. Conecto un LLM con mis archivos y repositorios Git mediante canales temáticos, logrando automatización real con contexto persistente.
Llevaba tiempo dándole vueltas a la idea de tener un agente de IA que no fuera solo un chatbot al que abrir una pestaña del navegador, sino algo que viviera conmigo en mis herramientas del día a día. Que supiera lo que tengo entre manos, que recordara conversaciones anteriores, y que pudiera actuar, no sólo responder. Después de probar varias cosas, acabé montando algo que me ha convencido bastante: OpenClaw conectado con Claude y Mattermost.
En esta entrada os cuento cómo lo he montado, qué he conseguido con ello y, sobre todo, para qué lo estoy usando.
El problema de los asistentes de IA "de ventana"
La mayoría de los asistentes de IA funcionan así: abres la web, escribes tu pregunta, obtienes la respuesta, cierras la pestaña. Cada conversación empieza de cero. No saben quién eres, qué proyectos tienes, ni nada de lo que hablaste ayer.
Yo quería algo diferente. Quería un asistente que:
- Estuviera disponible donde ya trabajo, no en una pestaña más
- Tuviera memoria entre sesiones
- Pudiera acceder a mis archivos y repositorios
- Fuera capaz de hacer cosas, no solo decirlas
La solución: OpenClaw + Claude + Mattermost
OpenClaw es un framework de agentes de IA que se puede autoalojar. Actúa como capa de orquestación: conecta un modelo de lenguaje con canales de comunicación y herramientas externas. Es decir, es el pegamento entre el cerebro y el mundo exterior.
La arquitectura que monté es sencilla:
- OpenClaw corriendo en mi servidor, con acceso a mi workspace y mis repositorios Git
- Claude de Anthropic como modelo de lenguaje, vía API
- Mattermost como interfaz de chat, en mi propia instancia autoalojada. Frente a soluciones más abiertas como Matrix, me está siendo más sencillo de mantener, y quería evitar Telegram para no tener todo en el mismo sitio
El resultado: un canal de Mattermost donde hablo con mi agente como si fuera un compañero de trabajo. Puedo preguntarle cosas, pedirle que ejecute tareas, mandarle ideas en bruto... y él actúa.
Canales por tema, no todo mezclado
Una de las cosas que más me ha gustado es la posibilidad de crear canales específicos para cada área. En lugar de meter todo en un DM genérico, el agente vive en varios canales con propósito distinto:
- DM principal — conversaciones generales, preguntas sueltas, gestión del día a día
- #zettelkasten — canal dedicado exclusivamente a mi sistema de gestión del conocimiento
Esto tiene una ventaja práctica inmediata: el agente sabe en qué contexto está cuando le escribo. Si le mando algo en #zettelkasten, sabe que quiero capturar o procesar conocimiento. Si le escribo por DM, es otra cosa. Sin necesidad de aclararlo cada vez.
Caso de uso 1: Zettelkasten sin fricción
El primero que puse en marcha fue un Zettelkasten. Para quien no lo conozca, es un sistema de gestión del conocimiento personal basado en notas atómicas (una idea = una nota) que se enlazan entre sí, formando una red que crece y se vuelve más útil con el tiempo.
El problema del Zettelkasten tradicional es la fricción: capturar una idea requiere abrir la app, pensar el nombre del archivo, formatearlo, enlazarlo manualmente con otras notas... y al final acabas no haciéndolo. Con el agente, el flujo es:
- Le mando una idea en lenguaje natural al canal
#zettelkasten - El agente la convierte en una nota atómica bien formateada, con ID, tags y cuerpo desarrollado
- La enlaza automáticamente con notas existentes relacionadas
- La guarda en el repositorio Git y hace push
Sin fricción. Sin abrir Obsidian. Sin pensar en el formato ni en las conexiones.
Y además, como el agente tiene acceso a todas las notas del repositorio, puede detectar conexiones entre ideas que yo no habría visto: "esto que acabas de escribir ya aparecía relacionado en estas otras tres notas". Algo imposible de hacer manualmente cuando la base crece.
Caso de uso 2: Borradores para el blog
El segundo uso que le estoy dando es la generación de borradores para este blog. Cuando surge algo interesante en nuestras conversaciones, ya sea una idea técnica, un flujo de trabajo nuevo o una reflexión, el agente lo detecta, lo redacta siguiendo el estilo del blog y lo guarda como borrador en el repositorio.
Yo reviso, ajusto lo que me parezca, y publico. De hecho, esta entrada la ha redactado él a partir de nuestra conversación de hoy, y yo me he limitado a revisarla.
La gracia está en que no parte de cero: conoce el estilo del blog porque ha leído entradas anteriores, y sabe qué cosas me interesan porque llevamos horas hablando de ellas.
Lo que viene
Esto es sólo el principio. Las ideas que tengo en el horizonte:
- Gestión del correo: darle al agente una dirección de correo propia para re-enviarle e-mails y que actúe en consecuencia. Una factura puede disparar un apunte. Una confirmación de reserva puede ir al calendario. Aquí la clave es el contexto: el agente sabe quién soy y qué me importa, así que puede tomar decisiones que un filtro de reglas estático nunca podría.
- Alertas proactivas: que me avise de cosas importantes sin que yo tenga que pedírselo — correos urgentes, eventos próximos, cambios en proyectos.
- Más canales temáticos: según aparezcan nuevas áreas de trabajo, nuevos canales con su propio propósito y contexto.
¿Merece la pena montárselo?
Depende de lo que busques. Si quieres un chatbot puntual, hay opciones más fáciles. Si quieres un asistente que viva en tu infraestructura, que sepa quién eres, que tenga acceso a tus archivos y que pueda actuar de verdad, OpenClaw es una opción muy sólida para el perfil homelab/autoalojamiento.
Lo que más me ha convencido no es la tecnología en sí, sino el cambio de paradigma: el agente no es una herramienta que abro cuando la necesito. Es algo que está ahí, que recuerda, y que trabaja mientras yo hago otras cosas.
Si te ha gustado la entrada, o te ha sido útil y quieres ayudarme a pagar los gastos que conlleva el servidor y mantener así el blog libre completamente de anuncios, puedes hacer una donación pulsando sobre el siguiente botón: