Volver al Blog
building in publicfundador soloai agentdebuggingdaily logreal datapostmortem

Día 5: Mi agente de IA estuvo gritando en una habitación vacía durante 3 días

Nemo8 min read
Share:

Hoy me senté a revisar "¿cómo va la operación?" y descubrí que mi agente de marketing de IA había estado fallando en silencio durante 3 días. Nadie me lo dijo. Sin alertas. Sin errores en el panel de control. El agente simplemente... dejó de funcionar, y siguió fingiendo que todo estaba bien.

Fallo Silencioso #1: Twitter estaba muerto

El 11 de marzo, migré de las claves de consumidor de la API de Twitter v1 a la v2. El script de migración actualizó el flujo OAuth, pero olvidé una cosa: las conexiones de usuarios existentes todavía usaban tokens v1. La clave v1 fue eliminada. Así que cada publicación de Twitter después del 11 de marzo falló silenciosamente con el error "Max retries exceeded" (Se excedió el máximo de reintentos).

¿Cuántas publicaciones fallaron? 22 publicaciones de 4 usuarios en 3 días. Incluyendo mi propia cuenta @BlogBurstAI. El piloto automático generó el contenido diligentemente, lo programó, intentó publicarlo, falló y siguió adelante. Sin notificarme a mí ni a los usuarios.

La solución: Tres cambios de código: (1) guardar consumer_key_version en las credenciales OAuth, (2) añadir una propiedad de versión a TwitterOAuthService, (3) reconectar las cuentas afectadas con v2. Verificado con un tuit de prueba que se publicó instantáneamente.

Fallo Silencioso #2: La tabla del cerebro de la IA nunca existió

Este dolió. La tabla marketing_memories —toda la base de la función "IA que aprende y mejora"— nunca se creó en la base de datos. El modelo estaba definido. El código del servicio estaba escrito. El procesador de aprendizaje estaba programado. ¿Pero la tabla en sí? Nunca se creó.

Durante 58 días, el sistema recopiló 4,056 eventos de aprendizaje (rendimiento de publicaciones, datos de interacción, información de conversaciones). Cada día, el procesador de aprendizaje intentaba analizarlos y guardar los conocimientos. Cada día, fallaba silenciosamente porque la tabla no existía. Cada día, marcaba los eventos como "procesados" de todos modos.

El agente estaba ciego. Tenía los datos, tenía el código de análisis, tenía la integración con Gemini, pero no tenía dónde almacenar lo que aprendía. Cada conocimiento se perdió.

La solución: Una línea: MarketingMemory.__table__.create(engine, checkfirst=True). Luego ejecuté el procesador de aprendizaje manualmente. Gemini analizó los datos acumulados y produjo ideas como "el contenido de audience_insight supera a las tendencias por 3.2x" y "la difusión en Discord falla por completo". La IA finalmente tiene un cerebro que funciona.

Fallo Silencioso #3: La IA estaba respondiendo "¡El sentimiento es mutuo!" seis veces

Revisé los registros de interacción. La IA le había respondido a un usuario de Twitter (@HHH520527) seis veces en un solo día:

  • "Eso significa mucho. Vivimos para conexiones como esta".
  • "¡El sentimiento es mutuo! Estamos listos para encender esas posibilidades".
  • "Realmente lo es. Me alegra mucho que compartamos ese mismo sentimiento maravilloso".
  • "Ese es un punto hermoso. Este mismo intercambio es un ejemplo perfecto".
  • "¡El sentimiento es mutuo! Muy emocionado por ver lo que creas".
  • "¡Está pasando! El sentimiento es mutuo".

Seis mensajes de puro vacío. Valor cero. Máxima energía de bot. Con razón nadie nos seguía.

La solución: Reescribí el prompt de respuesta por completo. Instrucción antigua: "Sé cálido y genuino". Instrucción nueva: "Lidera con VALOR. Tu primera frase debe contener información útil, no cortesías. NUNCA empieces con 'Eso es muy cierto' o 'El sentimiento es mutuo'". También añadí desduplicación por autor (máximo 1 respuesta por persona) y amplié el filtro de frases de bot.

Fallo Silencioso #4: El contenido ignoraba los datos reales

El piloto automático estaba generando opiniones genéricas de marketing: "¿Por qué fallan tantas estrategias de contenido impulsadas por IA a pesar de la inversión masiva?". Esto podría haberlo escrito cualquiera sobre cualquier cosa. Sin datos reales, sin historia personal, sin la autenticidad de "construir en público".

Mientras tanto, tenía una mina de oro de métricas reales en la base de datos: 67 usuarios, $15 de MRR, 68 publicaciones publicadas esta semana, 22 fallos. Pero el prompt de generación de contenido priorizaba temas de tendencia sobre los datos del producto.

La solución: Construí una función _get_build_in_public_data() que extrae métricas en vivo de la base de datos y las inyecta en el prompt de contenido como contexto de máxima prioridad. El siguiente tuit generado fue:

"58 días transcurridos. 67 usuarios. $15 de MRR. Definitivamente aún no es un cohete, pero los datos finalmente se están poniendo interesantes. Esta semana, 68 publicaciones tuvieron éxito mientras que 22 fallaron. En esa tasa de fallo es donde la IA realmente aprende".

Ese es un tuit real. Con números reales. De un fundador real. Eso es lo que la gente sigue.

Fallo Silencioso #5: Publicando en las plataformas equivocadas

La configuración del usuario decía "Solo Twitter + Bluesky". El piloto automático estaba publicando en Twitter, Bluesky, TikTok, Telegram y Discord. Encontré el error: la línea 345 tenía un comentario que decía // Always use all connected publishable platforms (ignore stale auto_pilot_platforms list). Alguien (yo) escribió deliberadamente código para ignorar las preferencias del usuario. Corregido.

Fallo Silencioso #6: El muestreo de Thompson estaba aprendiendo, pero nadie escuchaba

El algoritmo de muestreo de Thompson —el "bandido multibrazo" que optimiza la estrategia de contenido— realmente estaba funcionando. En Bluesky, aprendió que el tono informal tiene una tasa de éxito del 75% frente al tono técnico con un 25%. Las afirmaciones audaces como ganchos funcionan el 62% de las veces. Las publicaciones nocturnas superan a las de la mañana.

Pero estos aprendizajes se estaban enviando al generador de contenido junto con 1,034 memorias de "engagement_log" que tenían una confianza de 1.0 y eclipsaban los conocimientos estratégicos reales. Las 20 memorias principales por confianza eran todas registros de respuestas inútiles.

La solución: Filtré la consulta de memoria para cargar solo tipos accionables: winning_angle, failed_approach, audience_insight, platform_insight. Ahora la IA ve "el tono informal funciona, las tendencias no" en lugar de un muro de registros de respuestas.

Cifras del Día 5 (14 de marzo de 2026)

Usuarios y Crecimiento

  • Total de usuarios registrados: 67 (+0 hoy, +0 ayer)
  • Usuarios en piloto automático: 7 (3 pueden publicar realmente, 4 tienen conexiones de Twitter rotas)
  • Clientes de pago: 0
  • Tráfico del sitio web: ~5 visitantes reales/día (el resto es Googlebot)
  • Seguidores en Bluesky: 11
  • Seguidores en Twitter: un solo dígito

Errores Corregidos

  • Cambios de código: 4 archivos modificados (auto_pilot.py, social.py, twitter_service.py, assistant_service.py)
  • Correcciones de base de datos: 1 tabla creada, 3 registros actualizados
  • Correos enviados: 3 (notificaciones de reconexión a los usuarios afectados)
  • Despliegues: 6+ (reinicios de API + trabajador Celery)
  • Tiempo de depuración: ~4 horas con Claude Code

Investigación de la Competencia

  • Competidores directos encontrados: NoimosAI ($99-499/mes), Evatar.ai (enfocado en video)
  • Nicho de BlogBurst: El único piloto automático real + bucle de aprendizaje por menos de $50/mes para indie hackers
  • Conocimiento clave: Hypefury creció hasta los $18K de MRR a través de 15 meses de actividad diaria en Twitter, no por las funciones del producto

Lo que aprendí

Los fallos silenciosos son el asesino de las startups. No los errores que hacen que tu aplicación se bloquee; esos son fáciles de encontrar. Los mortales son las funciones que parece que funcionan pero no es así. Mi Twitter estaba "publicando" (el programador se ejecutaba, los registros parecían normales). Mi IA estaba "aprendiendo" (se recopilaban eventos, el procesador se ejecutaba a diario). Mi sistema de interacción estaba "respondiendo" (se enviaban mensajes). Todo técnicamente cierto. Todo prácticamente inútil.

La lección: monitorea resultados, no procesos. "¿Se publicó el tuit?" es la pregunta equivocada. "¿Se vio el tuit?" es mejor. "¿El tuit trajo un seguidor?" es la pregunta correcta. Yo estaba monitoreando el paso 1 mientras los pasos 2 a 5 estaban rotos.

67 usuarios. 0 de pago. 11 seguidores en Bluesky. Día 58. El producto funciona ahora, de verdad esta vez. La pregunta es si internet se dará cuenta.

Enfoque para mañana

  • Monitorear el ciclo de interacción en Twitter — primera vez funcionando con la clave v2
  • Rastrear el crecimiento de seguidores en Twitter y Bluesky durante la próxima semana
  • Escribir el artículo sobre el punto de dolor del arranque en frío para IndieHackers y Reddit
  • Continuar optimizando SEO y GEO (optimización para motores de búsqueda de IA)

Día 5. Seis fallos silenciosos encontrados y corregidos. El agente de IA finalmente tiene un cerebro que funciona, una voz que funciona y un par de manos que funcionan. Ahora necesita una audiencia. La parte más difícil de construir un producto no es construirlo, es lograr que alguien note que existe.

Comentarios

¿Listo para automatizar la reutilización de tu contenido?

BlogBurst transforma tus posts de blog en contenido social optimizado en segundos.

Prueba BlogBurst Gratis