Sistema de Noticias Automáticas y Agente Discoverer con Tavily
Sistema de Noticias Automáticas
Se implementa un pipeline completo de noticias técnicas que complementa los artículos de fondo del blog. El sistema añade la colección _news/ en Jekyll, con layout, permalink y configuración de defaults independientes del flujo de posts habituales. Las noticias se generan automáticamente desde el agente Discoverer cuando detecta contenido informativo de alto valor que no justifica un artículo extenso pero sí merece cobertura inmediata.
El paso news se integra en validate-env.py como fase adicional del pipeline, garantizando que el entorno tiene todas las variables necesarias antes de la ejecución. El menú de navegación incluye el enlace a noticias y el workflow de deploy se configura para dispararse automáticamente ante cambios en _news/, sin requerir intervención manual.
Rediseño Visual de News-Cards
Las tarjetas de noticias reciben un rediseño completo. El título aparece ahora junto al icono de categoría en la misma línea, logrando mayor jerarquía visual y escaneo más rápido del listado. Las etiquetas de categoría se muestran como badges visuales generados con imagen de IA en lugar de texto plano, lo que refuerza la identidad visual del blog y diferencia claramente las noticias de los artículos.
Se eliminó el texto redundante «Cobertura de Noticias» y se amplió el icono de badge para mejorar la legibilidad en móvil. Los ajustes finales en news-card.html y news.html garantizan consistencia entre el listado de noticias y la vista individual, corrigiendo también los tags incorrectos que el agente Writer asignaba en algunas entradas.
Discoverer: Sustitución de Bing Search por Tavily
El agente Discoverer abandona Bing Search API y adopta Tavily como motor de búsqueda web. Tavily ofrece resultados más relevantes para contenido técnico de Microsoft y GitHub, mayor fiabilidad en la detección de anuncios oficiales y una API más simple de gestionar dentro del pipeline. La implementación restringe las búsquedas a dominios oficiales de Microsoft (microsoft.com, azure.com, techcommunity.microsoft.com) y GitHub, eliminando ruido de fuentes no autorizadas.
Se añade validación de fecha de publicación en los resultados de Tavily para descartar contenido desactualizado antes de crear candidatos. El topic_map se amplía significativamente con nuevas áreas temáticas, y se elimina el fallback hardcodeado a «Azure AI» que distorsionaba la asignación de categorías cuando el agente no encontraba una coincidencia precisa.
Agente Analyzer: SDK de Azure AI Search
El Analyzer y el Discoverer sustituyen la Knowledge Agent API por el SDK oficial de Azure AI Search para consultar los índices de artículos existentes. Esto resuelve los errores de endpoint que bloqueaban el preflight check y hace la integración más robusta frente a cambios en la API de Azure AI Foundry. El timeout de la knowledge base pasa de ser un error bloqueante a un warning, permitiendo que el pipeline continúe aunque la KB no esté disponible temporalmente.
Agente Improver: Búsqueda Semántica con Fallback
El agente Improver incorpora un mecanismo de fallback a búsqueda simple cuando la búsqueda semántica no está disponible o devuelve resultados insuficientes. Esto evita que el Improver quede bloqueado en entornos donde el índice vectorial está en reindexación o el modelo de embeddings no responde. Los permisos de creación de PRs y el comportamiento continue-on-error en el step de Issues quedan correctamente configurados en el workflow.
Mejoras de UI en la Homepage
Las cajas de categoría de la homepage igualan su altura independientemente de la longitud del texto descriptivo. Se añade h-full y flex-col justify-between al div interior de cada card, haciendo que el borde degradado se distribuya uniformemente en los tres bloques. El contador de la caja Noticias utiliza ahora site.news | size en lugar de site.categories['Noticias'], ya que los ficheros de la colección _news/ no se indexan en site.categories. El tamaño de texto en los descriptores de cada caja de categoría aumenta para mejorar la legibilidad.
El featured post de la homepage pasa a mostrarse de forma completamente automática: siempre se presenta el último artículo publicado, sin necesidad de marcarlo manualmente con el campo featured. Esto simplifica la operación diaria del blog y garantiza que la portada refleje siempre el contenido más reciente.
Colección Changelogs Independiente
Los changelogs se mueven a una colección separada _changelogs/ con su propia configuración Jekyll. Anteriormente convivían en _posts/ y podían aparecer mezclados con artículos en la homepage, el feed RSS y los listados de categorías. Con la colección dedicada, los changelogs tienen permalinks propios bajo /changelog/:name/ y quedan completamente aislados del flujo editorial normal.
Autor Unificado y Contenido Editorial
Se unifica el campo autor en todos los posts bajo «Alejandro Almeida» con enlace a su perfil de LinkedIn, sustituyendo las variantes anteriores dispersas. La sección /blog/ recibe una reescritura completa: el tono se vuelve más neutro, se eliminan referencias explícitas al funcionamiento interno de los agentes y se añade el cierre «un blog técnico con un squad de agentes detrás» que comunica la propuesta de valor sin tecnicismos de implementación.
CI/CD y Calidad
El workflow de link-checker (lychee) se configura para excluir falsos positivos conocidos (enlaces a documentación de preview de Azure, páginas de login, etc.) y recibe los permisos issues:write necesarios para crear Issues cuando detecta enlaces rotos. El step de Issues en el pipeline pasa a ser no bloqueante, evitando que un fallo en la creación del Issue detenga el workflow completo.
Correcciones
Se corrigen los tags incorrectos asignados por el agente Writer en varias entradas de noticias. El trailing whitespace se elimina de article.html. Se resuelve el problema de filtrado de la categoría Blog en post.html y post-card.html. La normalización de categorías en posts legacy garantiza que todos los artículos sean visibles en sus secciones correspondientes sin entradas duplicadas en el menú.
Detalles Técnicos
Se modificaron 18 archivos entre scripts de agentes, workflows de GitHub Actions, templates Liquid y hojas de estilo. Se publicaron 5 noticias automáticas en la colección _news/. El tiempo de build de Jekyll se mantiene por debajo de 0.4 segundos sin errores de parseo.