Saltar al contenido
← Cuaderno

Agentes & IA

Mortadelo: un agente Hermes que opera el laboratorio 24/7 desde un MacBook

Cómo trabaja Mortadelo, el agente Hermes de Yeswelab: investiga, escribe, monta vídeos con voz clonada, publica y responde solo, con estado en SQLite WAL y guardarraíles contra bucles.

Fecha
17 oct 2026
Lectura
12 min
Resultado
5 tareas autónomas en producción • Voz y transcripción en local • Estado en SQLite WAL • Cortafuegos anti-bucles

La mayoría de la gente usa la IA abriendo un chat. En el laboratorio queríamos comprobar otra cosa: ¿puede un agente encargarse del día a día de un laboratorio digital —investigar, escribir, montar vídeos, publicar y responder— con el humano solo dando órdenes de voz y aprobando?

Para averiguarlo, Mario montó en su MacBook (Apple Silicon) un agente con Hermes Agent, el harness de código abierto de Nous Research. Lo bautizamos Mortadelo. Este experimento recoge cómo está montado, qué hace cada día y qué hemos aprendido operándolo.

Nota de seguridad. Contamos la arquitectura y las decisiones, no la configuración. Omitimos a propósito rutas, puertos, identificadores, canales de mando y umbrales exactos: son justo lo que necesitaría alguien para atacar al agente o suplantar a quien lo controla.

1. La hipótesis: de usar un chat a operar un agente

Tres condiciones de partida:

  • Mando por voz desde el móvil. Mario no abre la terminal: habla con Mortadelo con notas de voz en español mientras camina o trabaja, por un canal de mensajería privado que solo atiende a su cuenta.
  • Siempre encendido. Hermes corre como servicio del sistema, supervisado por macOS, con su gateway escuchando el canal y su planificador lanzando tareas.
  • Sin pagar plataformas cerradas. Transcripción, voz, vídeo y estado viven en local. Lo único en la nube es el modelo de lenguaje, un Gemini de Google con ventana de un millón de tokens, y las APIs de las redes donde publica.

2. La arquitectura

[Mario: notas de voz y aprobaciones desde el móvil]
        │  canal privado y emparejado
        ▼
[Hermes Agent: gateway como servicio de macOS]
        ├── Cerebro: Gemini (en la nube) + memoria persistente del agente y del usuario
        ├── Oído: faster-whisper en local, transcripción en español sin salir del equipo
        ├── Voz: clonación de voz en local con un modelo abierto, acelerada por GPU
        ├── Ojos: Chrome sin interfaz para leer y capturar páginas
        ├── Taller: FFmpeg + Pillow para montar vídeo vertical
        ├── Memoria de trabajo: SQLite en modo WAL
        └── Manos: API oficial de X y build de la web en Astro

La transcripción y la publicación en X las contamos en detalle en el experimento anterior, agente autónomo local con Whisper y la API de X. Aquí nos centramos en la operación completa.

3. Economía de contexto: el límite real no es la inteligencia

Con sesiones largas, el problema no es que el modelo «no sepa», sino que el contexto se llena. Mortadelo aplica tres reglas:

  • Dosificación del contexto. Nada de volcar documentos enteros si basta un fragmento.
  • Compactación automática cuando la sesión crece.
  • Skills bajo demanda. Las instrucciones de cada herramienta solo se cargan cuando la tarea las necesita (progressive disclosure).

Es la misma lección de context engineering: el agente que carga todo «por si acaso» es más caro, más lento y se equivoca más.

Una regla pequeña que se nota mucho: cuando Mario manda un audio, Mortadelo actúa sin repetir la transcripción en el chat. Está escrito en su memoria de usuario. Ahorra tokens y ruido.

4. Voz: entrada y salida en local

Entrada. Las notas de voz se transcriben en el propio Mac con faster-whisper configurado en español. El audio no sale del equipo.

Salida. Para los vídeos, Mortadelo locuta con la voz de Mario, clonada en local con un modelo abierto de clonación zero-shot (OmniVoice), sobre una app local con API propia y aceleración por GPU en Apple Silicon. Tres decisiones importan más que los parámetros:

  • Es la voz de Mario, con su consentimiento, y para sus propios contenidos. Clonar la voz de otra persona sin permiso no es una opción.
  • Calidad de la muestra antes que cantidad. Un corte limpio y bien masterizado, con el texto de referencia alineado con precisión, da mejor prosodia que una grabación larga con ruido.
  • Etiqueta «Generado por IA» en cada pieza. En la UE el contenido sintético que puede parecer real debe identificarse, y además es lo honesto.

El agente escribió su propia skill para manejar el servicio de voz: documenta cómo preparar el audio, cómo llamar al servicio y qué perfiles usar. La próxima vez no tiene que redescubrirlo.

5. Vídeos de noticias verticales sin editor

Cada día, Mortadelo produce un vídeo corto vertical (9:16) con noticias de tecnología:

  1. Selecciona de 3 a 5 noticias del día en medios españoles, alternando fuentes y sin repetir ninguna ya usada.
  2. Abre cada noticia en un Chrome sin interfaz con tamaño de móvil y captura el titular real, resaltado.
  3. Escribe el guion con un gancho y lo locuta con la voz clonada.
  4. Saca las marcas de tiempo palabra a palabra con Whisper para saber en qué milisegundo dice «uno», «dos», «tres»…
  5. Monta el vídeo con FFmpeg a 30 fps, con efecto Ken Burns sincronizado con la voz.
  6. Publica en X citando a cada medio y con la etiqueta de contenido generado por IA.

La sincronización por marcas de tiempo es el detalle que más se nota: el corte de imagen cae justo en la palabra, sin edición manual.

6. Estado fuera del modelo: SQLite en modo WAL

El modelo olvida entre ejecuciones; la base de datos no. Todo el estado operativo vive en un archivo SQLite en modo WAL, la misma elección que medimos en SQLite WAL vs PostgreSQL. Cinco piezas:

  • Tendencias y experimentos: qué se ha investigado y qué artículos se han escrito para la web.
  • Publicaciones con aprobación: cada hilo preparado llega al móvil de Mario como tarjeta de vista previa para aprobarlo antes de su hora.
  • Historial de noticias: cada noticia usada queda registrada para que nunca se repita en días sucesivos.
  • Registro de respuestas: quién ha recibido respuesta y en qué conversación (ver el punto 7).
  • Métricas semanales para ajustar los temas de la semana siguiente.

7. Guardarraíles: lo que aprendimos a golpes

Bucles entre bots. En X abundan cuentas automatizadas que responden a cualquier respuesta. Dos agentes contestándose entre sí queman tokens del modelo y créditos de la API sin fin. La solución no fue un prompt, sino un script guardián determinista antes de que intervenga el modelo:

  • límite de respuestas por usuario y periodo;
  • una sola respuesta por conversación;
  • lista de cuentas automatizadas detectadas;
  • y si no hay menciones humanas nuevas, la tarea se corta en el primer paso con coste cero.

El emoji que vale por dos. La API de X cuenta muchos emojis y símbolos como dos caracteres. Textos que en Python medían unos 270 caracteres eran rechazados por pasarse del límite. Ahora los scripts calculan la longitud ponderada antes de publicar y, si el texto no cabe, mueven las menciones de las fuentes a una respuesta.

Determinista donde importa. El patrón general, el mismo de nuestra arquitectura híbrida: el modelo decide y redacta; los scripts cuentan, filtran, deduplican y publican.

8. Las cinco tareas que hace solo

TareaCuándoQué hace
ExploraciónMañanas laborablesInvestiga una tendencia técnica, escribe el artículo para la web con dos vías (open source a coste cero y vía rápida con SaaS), genera dos infografías y prepara el hilo para aprobación
PublicaciónMañanas laborablesSi el hilo está aprobado y pendiente, lo publica con su infografía y reconstruye la web
Vídeo de noticiasCada díaNoticias del día sin repetir, voz clonada, montaje y publicación en X
ConversaciónCada tardeFiltra bots y bucles, y responde solo a preguntas humanas reales (máximo un par por pasada)
AnalíticaSemanalMétricas de X y de la base de datos para ajustar los temas

9. Seguridad: el agente lee internet, e internet escribe

Un agente que lee noticias y menciones está recibiendo texto de desconocidos. Cualquier página o respuesta puede llevar instrucciones escondidas (prompt injection). Los principios que aplicamos, sin entrar en la configuración:

  • Un solo jefe. El canal de mando solo atiende a la cuenta de Mario.
  • Lo leído no es una orden. El contenido de webs y menciones se trata como dato.
  • Credenciales fuera del contexto del modelo, como en credential confinement.
  • Acciones externas acotadas. El agente publica en cuentas propias y con límites; no envía dinero, no borra y no escribe a terceros por privado.
  • Nada de detalles operativos en público. Por eso este artículo no los incluye.

10. Veredicto

Sí: un agente local puede operar el día a día de un laboratorio, pero no por ser autónomo, sino por estar bien atado. Lo que lo hace fiable no es el modelo: es el estado en SQLite, los scripts deterministas alrededor, las skills que se escribe a sí mismo y los guardarraíles que cortan los bucles antes de que cuesten dinero.

Lo que sigue necesitando a Mario: el criterio (qué temas, qué tono), la aprobación de lo que sale con su nombre y su voz, y revisar de vez en cuando que los guardarraíles siguen funcionando.

Cómo empezar algo parecido

  1. Instala Hermes Agent con el instalador oficial (ver su documentación) y elige el modelo con hermes model.
  2. Antes de conectar ningún canal, configura la seguridad: aprobación de comandos, emparejamiento y aislamiento en contenedor.
  3. Empieza con una sola tarea programada que no publique nada, solo informe.
  4. Saca el estado del modelo a una base de datos desde el primer día.
  5. Añade publicación solo con aprobación humana y con límites deterministas.

¿Quieres saber si un agente así aguanta las tareas de tu empresa? Encárganos el experimento.

Comentar el experimento en X →

#Hermes Agent#Gemini#faster-whisper#OmniVoice#FFmpeg#Chrome headless#SQLite WAL#X API v2#Astro