Cómo construí un sistema de agentes IA que publica 6 artículos al día sin tocarlo
374 artículos publicados, 17 cornerstones, 53 cron jobs y 0 intervención humana diaria. Esto es lo que aprendí montando un pipeline editorial 100% autónomo con DeepSeek, Hermes Agent y una Raspberry Pi 5 — incluyendo todo lo que se rompió por el camino.
En resumen
- 374 artículos, 53 cron jobs y un solo admin: así mantengo La Frontera IA con agentes autónomos desde una Raspberry Pi 5. Guía completa con todo lo que se rompió.
- 5. Image Generator. Usa Replicate SDXL como API primaria ($0.002 por imagen, unos 0.30€ al mes) con Picsum como fallback gratuito si hay rate limit.
- El resultado es contenido que Google indexa y AdSense aprueba. Sin esta capa, el contenido es detectable como IA en segundos y las tasas de indexación se desploman.
Julio 2026. Me levanto, miro el móvil y veo que La Frontera IA ha publicado 4 artículos mientras dormía. La homepage tiene contenido nuevo, las imágenes están generadas, Twitter ya ha publicado el tweet del último artículo, Bing y Yandex ya saben que hay URLs nuevas gracias al ping de IndexNow. Yo no he tocado nada. Lleva así desde mayo de 2026.
Esto no es un tutorial de "conecta Zapier a ChatGPT y ya está". Esto es la historia real de cómo monté un sistema editorial autónomo que funciona 24/7 sobre una Raspberry Pi 5 de 8GB que me costó 80€. Con errores 403 que solo aparecían en curl, artículos que se publicaban sin canonical y Google castigándome por duplicados, imágenes que no se veían en las secciones porque el JSON tenía campos en inglés y el JS los buscaba en español, un día entero sin clicks de Amazon porque todos los links de afiliado tenían el mismo término de búsqueda...
Si estás pensando en montar algo parecido —un blog, un newsletter automatizado, una cuenta de Twitter que publica solo, lo que sea— esta guía te va a ahorrar meses de errores. Porque los cometí todos.
🧩 La arquitectura: 7 piezas que trabajan solas
El sistema tiene 7 componentes que se ejecutan como cron jobs dentro de Hermes Agent, el framework open-source de Nous Research lanzado en febrero de 2026. No es un chatbot ni un copilot de código — es un agente autónomo con memoria persistente, skills, plugins y un programador de tareas integrado. Piensa en ello como un systemd para agentes IA.
Las 7 piezas:
1. Trend Detector (cada 4h). Un script en Python que consulta 40 fuentes RSS verificadas —Xataka, Genbeta, TechCrunch, Ars Technica, MIT Tech Review, Product Hunt, canales de YouTube como DotCSV y Xavier Mitjana— más la API de Hacker News para detectar engagement real. El detector hace clustering por similitud Jaccard (umbral 35%) y asigna un HOT_SCORE que pondera fuentes cruzadas (+25pts cada una), puntos de HN y bonus por cobertura simultánea en español e inglés (+30pts). Un artículo que aparece en 5+ fuentes recibe +50pts por efecto viral. Pero también tiene scoring inverso: si un tema ya lo han cubierto 5+ medios importantes, recibe -40pts. Busca lo que es tendencia pero no está saturado.
2. Round-Robin de secciones. Un contador en un archivo de texto decide qué sección toca: NOTICIAS → IA → GADGETS → GUIAS → TUTORIALES_IA → REVIEWS. Esto garantiza que el sitio tenga contenido equilibrado y no se convierta en un feed de solo noticias. El contador se incrementa automáticamente tras cada publicación.
3. Research Agent. Una vez elegido el tema, el agente hace investigación profunda: visita de 6 a 8 fuentes (10+ si es TUTORIALES_IA), busca el tema en Google para hacer SERP analysis y detectar qué ángulo no está cubierto, rastrea Twitter/X y Reddit para encontrar preguntas reales de usuarios, y prioriza fuentes primarias —si el artículo cita un paper, va al paper original, no a Xataka citando a Stanford.
4. Humanizer. El texto generado pasa por un detector de 29 patrones de escritura IA —basado en la guía de Wikipedia "Signs of AI writing" mantenida por WikiProject AI Cleanup— que elimina muletillas como "sirve como testimonio de", "marca un momento crucial", "subraya la importancia", "en el panorama actual". Después añade pasión humana: frases en primera persona, opiniones genuinas, dificultades reales encontradas.
5. Image Generator. Usa Replicate SDXL como API primaria ($0.002 por imagen, unos 0.30€ al mes) con Picsum como fallback gratuito si hay rate limit. Las imágenes se guardan en formato JPG y se sirven desde /images/. Tardan unos 8-12 segundos en generarse.
6. HTML Publisher. El artículo se formatea como HTML completo con canonical tag, OG tags para redes sociales, CSS de source links (subrayado púrpura #6C63FF), video embeds de YouTube cuando aplica, author box y footer unificado. Se guarda en /var/www/lafronteraia/data/articles/ con permisos 644 (crítico: Caddy corre como usuario caddy y no puede leer archivos con permisos restrictivos).
7. Syndication Engine. Tras publicar, el sistema actualiza 3 archivos JSON (articles-data.json, articles-data.json en data/, articles.json), regenera el index.html con contenido estático para SEO, añade la URL al sitemap.xml, hace ping a Bing y Yandex vía IndexNow, publica un tweet profesional (250-270 caracteres, hook optimizado, imagen adjunta) usando cookies de Firefox y curl_cffi para evitar las APIs de pago de X. También ejecuta cross-linking automático: encuentra los 4 artículos más relacionados por keywords y añade enlaces recíprocos.
🧩 El hardware: una Raspberry Pi 5 de 80€
Todo esto corre sobre una Raspberry Pi 5 de 8GB con Debian 12. La pregunta que todo el mundo me hace: "¿De verdad una Raspberry Pi puede con esto?"
Sí. Con matices.
El consumo en idle son unos 2.5GB de RAM de los 7.9GB disponibles. La CPU rara vez pasa del 15%. El almacenamiento es un SSD NVMe de 1TB conectado por PCIe —916GB totales, 58GB usados (7%) después de 374 artículos con imágenes. Los picos de CPU ocurren durante la generación de imágenes con Replicate SDXL (unos 8-12 segundos) y durante la escritura de artículos con DeepSeek V4 Pro (20-40 segundos).
Los costes reales mensuales:
- DeepSeek V4 Pro (API): ~8-12€/mes. Cada artículo consume unos 15K-25K tokens entre input y output. A 6 artículos/día × 30 días = 180 artículos/mes.
- Replicate SDXL: ~0.30€/mes. 180 imágenes × $0.002.
- Electricidad RPi 5: ~1.50€/mes. La Pi consume unos 5-7W de media.
- Dominio + Cloudflare Tunnel: ~12€/año el dominio .com, Tunnel gratuito.
- Total: unos 14€/mes para un sitio que publica 180 artículos mensuales.
¿El límite real de la Raspberry Pi 5? Si tuviera 5x más tráfico, probablemente necesitaría un mini PC. Pero para 10K-30K páginas vistas mensuales con Caddy como servidor web, va sobrada. La clave es que todo el trabajo pesado ocurre en las APIs externas (DeepSeek, Replicate). La Pi solo orquesta.
🧩 Lo que nadie te dijo: 6 cosas que se rompieron
Esta sección es la razón por la que escribo este artículo. Los tutoriales de "cómo automatizar tu blog con IA" te enseñan el camino feliz. Aquí va el camino real.
1. Error 403 que solo aparecía en curl (no en navegadores)
Junio 2026. Ejecuto curl -sI https://lafronteraia.com/articulos/nuevo-post/ y recibo HTTP 403 Forbidden. Abro Chrome, escribo la misma URL y carga perfecto. ¿Qué está pasando?
Respuesta: Caddy tiene una regla @bad_bots que bloquea User-Agents que contienen la palabra "curl". Los navegadores normales no se ven afectados. La solución fue usar curl -H "User-Agent: Mozilla/5.0" para los tests. Me costó 3 horas de debugging darme cuenta.
2. Todos los links de Amazon tenían el mismo término de búsqueda
Julio 2026. El informe semanal de Amazon Afiliados mostraba 0 clics en 7 días. Investigo los cornerstones publicados y encuentro que TODOS los links de afiliado usaban s?k=raspberry+pi+5+8gb sin importar si el producto era un monitor, unos auriculares o un teclado. El modelo simplemente reutilizaba el primer término que veía.
Solución: cada link Amazon ahora usa s?k= derivado del producto real mencionado en el texto. Si el párrafo habla de un monitor ultrawide, el link es s?k=monitor+ultrawide+productividad. Verificación post-publicación con grep -oP 'amazon\.es/s\?k=[^"&]+' *.html | sort | uniq -c.
3. Artículos sin canonical → Google los trata como duplicados
Mayo 2026. Google Search Console empieza a reportar decenas de páginas como "Duplicada sin canónica". El problema: el pipeline generaba artículos sin <link rel="canonical"> en el <head>. Sin canonical, Google ve /articulos/slug/ y /data/articles/slug.html como dos páginas distintas.
Esto fue especialmente grave porque retrasó la indexación de todo el sitio. Google no indexa páginas duplicadas. Arreglarlo implicó añadir canonical a los 180+ artículos ya publicados y modificar el template para que todos los nuevos lo incluyeran. Hoy tengo un cron diario (09:00) que ejecuta grep -L 'canonical' /var/www/lafronteraia/data/articles/*.html y alerta si encuentra alguno sin canonical.
4. Imágenes que no se veían en las secciones por campos bilingües
Junio 2026. Las páginas de sección (/ia/, /gadgets/, /guias/) mostraban cards sin imagen. El JS usaba a.imagen (español) pero el JSON solo tenía "image" (inglés). Lo mismo pasaba con a.titulo vs "title" y a.excerpt vs "description".
Solución doble: (1) el pipeline ahora escribe ambos campos siempre — "image" y "imagen", "title" y "titulo"; (2) el JS de secciones usa fallback: (a.imagen || a.image).
5. Slugs nulos que generaban links rotos
16 artículos tenían "slug": null en articles-data.json. Sus URLs en la homepage apuntaban a /articulos/None.html — todas rotas. El script de normalización de secciones no detectaba este caso. Tuve que escribir un matcher de palabras clave que cruzara slugs contra los archivos reales en disco y reconstruyera los que faltaban.
6. El index.html se regeneraba con variables vacías
El peor bug de todos. Julio 2026. El script regenerate-index.py generaba la homepage con template literals de JavaScript que usaban ${a.slug}, ${a.image}, ${a.title} —pero en lugar de interpolar las variables, las dejaba como strings vacíos. Resultado: hero sin imagen, links muertos, cards sin título.
Googlebot veía HTML vacío y ${a.title} en lugar de títulos reales. Cero indexación durante 3 días hasta que lo detecté. La verificación post-regeneración ahora incluye: grep -c 'href=""' index.html debe devolver 0.
🧩 La pieza más importante: el humanizer y la pasada humana
Esto merece sección propia porque es lo que separa un sitio indexable de uno que Google ignora.
El contenido generado por IA sin post-procesado suena a... IA. Los 29 patrones que detecta el humanizer son reales y los ves en todas partes: frases como "sirve como testimonio del potencial transformador", "marca un momento crucial en la evolución de", "subraya la importancia en el panorama actual". Son patrones estadísticos que los LLM repiten porque son las completaciones más probables.
Mi pipeline aplica dos pasadas:
Pasada 1 — Humanizer automático: elimina los 29 patrones (énfasis indebido, lenguaje promocional, atribuciones vagas, regla de tres, hedging excesivo, guiones em, frases de relleno, coletillas de chatbot como "¡Espero que te sirva!").
Pasada 2 — Toque humano: el agente añade frases en primera persona con opinión genuina, datos concretos con fechas, dificultades reales encontradas ("me costó 3 intentos", "al principio no funcionaba porque..."), y elimina cualquier cosa que suene a artículo de Wikipedia.
El resultado es contenido que Google indexa y AdSense aprueba. Sin esta capa, el contenido es detectable como IA en segundos y las tasas de indexación se desploman.
🧩 Cómo montar tu propio sistema (sin volverte loco)
Si quieres replicar algo parecido, aquí va la ruta mínima viable. No necesitas las 7 piezas desde el día 1.
Fase 1 — Lo mínimo (semana 1):
- Instala Hermes Agent en cualquier Linux. La guía de Bitdoze (julio 2026) es la mejor que he encontrado.
- Configura un cron job simple: "Busca una noticia de IA, escribe 300 palabras y guárdalas en un archivo".
- Eso ya es un pipeline funcional. Tarda 2 horas en montarse.
Fase 2 — Añade capas (semanas 2-3):
- Añade el humanizer. Sin él, el contenido no pasa el filtro de calidad de Google.
- Implementa el round-robin de secciones para tener variedad temática.
- Configura la generación de imágenes. Replicate SDXL cuesta $0.002/img.
- Añade canonical tags y OG tags en el template HTML.
- Regenera el index.html con contenido estático tras cada publicación (crítico para SEO).
Fase 3 — Syndication (semanas 4+):
- Sitemap + IndexNow (Bing, Yandex).
- Cross-linking automático entre artículos.
- Publicación en redes (Twitter/X es suficiente para empezar).
- Monitorización: un cron diario que verifique canonicals, 404s, imágenes rotas.
El coste de la Fase 1 es literalmente 0€ si usas modelos gratuitos como Llama 4. El coste total del sistema completo ronda los 14-20€/mes con APIs de pago.
🧩 ¿Merece la pena? Los números después de 3 meses
Llevo desde mayo de 2026 con este sistema. Las métricas:
- 374 artículos publicados (promedio: 6.4/día en julio 2026).
- 17 cornerstones (guías en profundidad de 2500+ palabras, 2 por semana).
- Los cornerstones rinden 1.82× más vistas que los artículos regulares.
- Tiempo que paso yo en el sitio: 15-20 minutos al día revisando que todo funcione. Antes de automatizar eran 3-4 horas diarias escribiendo.
- La Pi 5 ha estado encendida 24/7 sin un solo reinicio forzado desde abril.
¿Es rentable? Con AdSense + Amazon Afiliados, el sitio cubre sus costes y genera un pequeño excedente. No me voy a jubilar con esto, pero paga el café y la suscripción a DeepSeek. Para mí, el valor real no es el dinero — es tener un laboratorio vivo de agentes IA donde pruebo cosas que luego aplico en proyectos más grandes.
Si estás pensando en montar algo así, mi consejo: empieza pequeño, itera rápido y prepárate para bugs surrealistas. Pero en serio: hazlo. La sensación de despertarte y ver que tu sistema ha publicado 4 artículos sin ti es adictiva.