Saltar al contenido
weekly02 de agosto de 2026·5 min

Cuando pillamos a nuestros propios agentes sonando a IA (incluido este blog)

Semana de afinar filtros de seguridad en Hezu, probar Juntale con la familia real, sincronizar Vita leyendo directamente el SQLite de Yazio, y ponerle reglas anti-jerga-de-IA a los prompts que escriben este mismo journal.

El lunes nos dimos cuenta de que el sistema que escribe este journal tenía manía de terminar frases con "destacando la importancia de" y meter dos puntos dramáticos cada tres párrafos. Así que la primera tarea de la semana fue enseñarle al propio generador de contenido a no sonar a generador de contenido — reglas explícitas contra la jerga de IA en los prompts de journal, blog y newsletter. Es un poco raro depurar el corrector para que el corrector no se note, pero bienvenidos a la semana.

El resto fue más de lo de siempre: seguridad que se pasaba de frenada, una familia real haciendo de beta tester, y una sincronización que decidió dejar de pedirle permiso a una API.

Hezu: el filtro de seguridad se disparaba solo

Hezu usa Gemini para responder consultas médicas, y Gemini viene con un filtro de seguridad que bloquea respuestas si detecta contenido sensible. El problema es que el filtro estaba puesto tan fino que bloqueaba cosas que no tenían nada de peligrosas — y encima había un bug de logging que confundía un finish_reason=1 (parada normal) con un bloqueo de seguridad, así que las métricas mentían sobre cuántas veces pasaba de verdad.

Subimos el umbral a BLOCK_MEDIUM_AND_ABOVE y lo validamos contra 65 bloqueos históricos: cero de esos 65 habrían sido falsos positivos con el umbral nuevo. Eso significa que durante semanas el sistema estuvo rechazando respuestas legítimas por exceso de celo. La recomendación en la spec es directamente retirar el mecanismo de fallback que se había montado alrededor del bug, porque ya no hace falta.

Aparte, cerramos un agujero de abuso: alguien podía borrar el localStorage del navegador para resetear su identidad anónima y sacar créditos gratis de nuevo. Ahora hay throttle por IP. Y arreglamos que las respuestas en streaming no renderizaban bien los títulos en markdown — un bug tonto pero de los que se notan en cada mensaje.

Juntale: probado con la familia real, no con un checklist

Juntale tuvo la semana más activa del portfolio: kit imprimible y compartible por aventura, voz de narración configurable, arranque rápido dosificando la historia por capítulos, y una suite de smoke tests E2E con Playwright para no tener que probar todo a mano cada vez.

Lo interesante es cómo se validó: el 1 de agosto hubo una sesión de test con la familia de verdad, no con datos sintéticos. Salió feedback de ritmo (pacing) y un bug muy concreto — en pantallas estrechas en vertical, el campo de texto y el botón de enviar se solapaban. Se documentó el mismo día y se arregló el mismo día. Ese ciclo de "lo prueba quien lo va a usar, no quien lo construyó" es el motivo por el que Juntale tiene menos deuda de UX que otros proyectos que solo se testean con curl.

Vita: leer el SQLite de Yazio directamente

Vita llevaba tiempo sincronizando datos nutricionales de Yazio de forma indirecta. La v2 cambia de estrategia: lee directamente el fichero SQLite que Yazio guarda on-device, sin pasar por scraping ni por una API que no está pensada para esto. Es más frágil a cambios de esquema en futuras versiones de Yazio, pero es mucho más fiable mientras el esquema no cambie, y elimina una capa entera de fricción. También se hizo Health Connect la fuente primaria para los nudges de actividad, con importación incremental en vez de recalcular todo cada vez.

Ganga24 y Chordna: el mantenimiento que no se ve pero se nota

Ganga24 recuperó la capacidad de descargar imágenes desde img2.miravia.es cuando el CDN principal fallaba — un caso típico de "el proveedor externo es poco fiable, así que hay que ser más tozudo que él". Chordna arregló un bug donde se descartaba el año de lanzamiento que Gemini sí había extraído correctamente (se tiraba un dato bueno por error de código, no por límite del modelo), y endureció el prompt de SEO contra alucinaciones — que un modelo se invente un dato de una canción es gracioso hasta que ese dato sale publicado.

Los cimientos: harness multi-CLI y el detector de humo de IA

Por debajo de los productos, la infraestructura compartida (ai-platform) tuvo su propia semana grande: el harness que antes se llamaba core/claude-harness pasó a core/harness/, con veinte skills que no dependen de ningún CLI concreto movidas a una carpeta compartida. La idea es que el mismo conjunto de herramientas sirva para más de un agente de código, no solo para Claude — Builders in a Box hizo el mismo movimiento en paralelo, con un registro de adaptadores multi-CLI y limpieza de vocabulario específico de Claude en sus skills empaquetadas.

Y el ERR-010 de la semana fue casi cómico: el watchdog llevaba 23 días avisando de que un daemon (yefri) estaba caído. El daemon llevaba 23 días retirado. El robot llevaba tres semanas llorando por un fantasma. Ya está arreglado.

Nada de esto suena a gran anuncio, y está bien que no suene así — es la semana en la que se afina lo que ya existe. Incluida la forma en que lo contamos.