The Closing Window
De N newsletters a 1 resumen, hecho para ingenieros de IA image
Photo by Mike Hindle on Unsplash

De N newsletters a 1 resumen, hecho para ingenieros de IA

AI Insights

TL;DR

Construí un pipeline privado que lee las noticias de IA por mí. Lee un conjunto verificado de newsletters y va a buscar el artículo real detrás de cada enlace. Resume cada uno. Después averigua qué historias son la misma historia con distinto titular, tira a la basura el marketing y el ruido, y me entrega las veinte o treinta cosas que de verdad importaron ese día. El resultado ya es público: downstream.news. Gratis, sin cuenta, con RSS y correo y JSON. Hecho para gente que construye con modelos de IA y agentes.


Lo construí para mí

Ocho newsletters en la bandeja de entrada, revisadas cada noche. Ese era mi N. Estaba perdiendo demasiado tiempo leyendo la misma historia varias veces y pasando de largo material de poco valor. No hubo ningún momento de inspiración, ninguna historia de origen interesante (aunque la IA que editó este texto intentó llevarme justo en esa dirección). Tenía una tarea de lectura repetitiva, sé programar, y esa tarea resulta ser un caso de uso que encaja con lo que un modelo de lenguaje hace bien, siempre que construyas suficiente andamiaje alrededor para que el resultado sea confiable.

Y hizo falta mucho más andamiaje del que te imaginas. Pensé que iba a ser fácil, pero se estiró a unos meses... mierda, quizá hasta cinco, ahora que lo pienso. Dos de ellos los tiré a la basura cuando me apoyé demasiado en las "vibras" y construí un monstruo con todas las funciones que se te puedan ocurrir. La mayoría de esas funciones fracasaron en la línea de meta. Después de eso tuve que empezar de nuevo. Me da bastante vergüenza haber caído en esa trampa.

Ahora que de verdad funciona y sirve para algo, pensé que hay más gente haciendo el mismo baile de ocho newsletters que hacía yo, así que el resultado es público.

Lo que hace en realidad

Cuatro cosas que hace bien. Esto no es un lector de feeds.

Resume

Cada historia recibe una paráfrasis de una o dos frases, escrita por un modelo que fue y leyó el artículo de fondo. No el resumencito del newsletter sobre él. Cerca del 81% de lo que el pipeline analiza viene del destino del enlace y no del texto del ancla. El newsletter es un vehículo de reparto; la lectura ocurre en aquello a lo que apunta.

El resumen está ahí para que decidas si vale la pena hacer clic, y cada elemento enlaza a la fuente primaria. Downstream es un enrutador. Todo lo que vale la pena leer sigue viviendo en el sitio de otra persona. Además, quiero dar a conocer estas fuentes; son excelentes y les estoy agradecido.

Elimina duplicados entre fuentes

Esta fue con diferencia la parte más difícil, y me da vergüenza reconocerlo. "La misma historia en cinco newsletters" es un problema de canonicalización de URL montado encima de un problema de eliminación de rastreadores, porque cada plataforma de newsletters envuelve sus enlaces salientes de manera distinta. Comparar cadenas de texto no te lleva a ninguna parte. HubSpot ni siquiera usa una redirección HTTP; devuelve una página JavaScript con la URL real escondida en una asignación de variable que tienes que extraer del cuerpo. El emparejamiento corre en tres niveles: URL exacta después de normalizar, luego coincidencia difusa de título, luego similitud de embeddings contra un vector store, sobre una ventana móvil de siete días.

El beneficio visible es la insignia en cada elemento que dice cuántas fuentes independientes tocaron el tema. Ese número es señal de verdad cuando estás recorriendo una lista con la vista. También ordena: cuando dos elementos puntúan igual, gana el que tiene cobertura más amplia.

Hay una segunda pasada de deduplicación que la mayoría de los agregadores se salta. Un tema que ya salió en los últimos siete días queda suprimido, para que una historia con recorrido no aparezca en tu resumen cinco noches seguidas.

Tira el ruido a la basura

Cada elemento se puntúa en dos ejes contra un perfil explícito: importancia para un ingeniero de IA en activo, y urgencia, es decir, si hay una fecha límite de obsolescencia o un problema de seguridad activo con tu nombre encima. La rúbrica de puntuación está anclada con ejemplos trabajados de cómo se ve un 8 frente a un 2, porque un modelo sin anclaje aparca todo en 6,5 y no te dice nada.

El perfil también lleva indicaciones explícitas de qué despriorizar. Los anuncios de financiación sin ángulo de producto puntúan bajo a propósito. Lo mismo las ofertas de empleo, los adornos de navegación, la promoción de conferencias y la publicidad de suscripción que los newsletters intercalan con su contenido.

Lo que queda es el día

Salen de las fuentes unos 250 elementos candidatos al día. Lo que se publica son veinte o treinta.

El 24 de julio el pipeline convirtió 244 elementos en un resumen de 30. El 23 de julio publicó siete, porque el 23 de julio fue un día tranquilo. No hay cuota fija que rellene un día flojo, pero sí hay un tope para un día cargado, que se corta en 30 elementos.

Apuntado a ingenieros de IA en concreto

El perfil de puntuación es literalmente un archivo llamado ai-engineering. Esto no es un feed de tecnología general con una sección de IA atornillada encima.

Así se ve eso:

  • Etiquetas de tema en cada elemento: Models, Agents, On-device, Coding, Research, Robotics, Policy.
  • Etiquetas de nivel de lectura que te dicen qué tipo de lectura te espera antes de que te comprometas: Internals, Depth, Product, Any.
  • Una lista de fuentes publicada en /sources/, para que puedas juzgar las entradas en vez de tener que confiar en la salida.
  • Todo legible por máquinas: RSS, JSON Feed, Markdown por resumen, un llms.txt y un endpoint /for-agents/. Si tu propio agente quiere leer el resumen, no tiene que hacer scraping de una página web para lograrlo.

Lo que yo querría saber si estuviera en tu lugar

El conteo de corroboración significa "N fuentes tocaron este tema", no "N fuentes publicaron exactamente esta historia". Calibré el emparejamiento semántico contra 220 pares etiquetados a mano y el gradiente entre esas dos ideas es realmente débil: un par que yo había juzgado como "no debe fusionarse" puntuó 0,796, y un par que sí debía fusionarse puntuó 0,761. No hay umbral que viva en esa banda. Ahora todo lo que cae en la zona gris escala a un segundo modelo que responde "¿misma historia?" par por par.

Alrededor de una quinta parte de las descargas de enlaces falla en cualquier día dado, gracias a muros de pago, bloqueos de bots y páginas que solo funcionan con JavaScript. Esos elementos igual aparecen, marcados como degradados, con el texto del ancla como pista del título.

La entrada es adversaria por construcción, ya que un atacante controla el cuerpo entero de cualquier correo que el pipeline ingiere. Hay cinco capas de defensa contra inyección de prompts delante del modelo, y cada respuesta del modelo se valida contra un esquema, y una respuesta que no encaja con el contrato no se reacomoda calladamente para que encaje.

Y publica sin supervisión, lo que solo funciona porque el pipeline califica su propia salida. El artefacto de cada día lleva un bloque de salud. El sitio publica en verde y se detiene ante cualquier cosa peor, mostrando en su lugar un aviso de retraso. No publicar nada es mejor que publicar algo por lo que no puedo responder.

Ve a verlo

downstream.news se actualiza cada noche alrededor de las 19:15 CET. Hay un archivo web, un feed RSS y un correo diario si lo quieres recibir. Sin cuenta, sin muro de pago, y no hay planes de poner ninguno.

Si ahora mismo estás haciendo el baile de las ocho newsletters, pruébalo una semana en paralelo a tu lectura normal y fíjate en qué se le escapa.

Powered by Buttondown.