Moderar una comunidad de Telegram parece un problema resuelto hasta que uno gestiona una de verdad. Un grupo de diez mil personas genera un torrente de mensajes y, enterrados en él, hay spammers que han pasado años aprendiendo a evadir cualquier filtro ingenuo que uno pudiera escribir. Mezclan alfabetos, insertan caracteres de ancho cero, traducen su reclamo a treinta idiomas y cambian la redacción más rápido de lo que una lista de bloqueo puede seguir.
Telm es nuestra respuesta a eso. El principio de diseño que hay detrás es que la detección de spam son dos problemas a la vez: tiene que ser lo bastante rápida para actuar antes de que se vea un mensaje, y lo bastante precisa para no castigar a los miembros reales. Esos objetivos tiran en direcciones opuestas —la comprobación más precisa es también la más lenta—, así que, en lugar de elegir uno, construimos un pipeline de tres capas, cada una de las cuales atrapa lo que la anterior no pudo y solo le pasa los casos difíciles.
Primera capa: el motor de reglas
La primera capa es un motor de reglas ajustado a mano, y hace la mayor parte del trabajo. Incorpora más de 200 patrones que cubren el spam que en realidad nunca cambia: invitaciones a pumps de criptomonedas, ofertas de empleo falsas, «escríbeme por privado para ganar dinero fácil», enlaces de phishing y los trucos de ofuscación que se usan para colarlos ante los filtros.
Las dos cosas que lo hacen eficaz son la amplitud y la velocidad.
- Normaliza el texto antes de comparar: unifica caracteres Unicode parecidos, elimina los espacios de ancho cero y neutraliza los trucos de homóglifos que convierten «invest» en una cadena que parece idéntica pero no lo es. Los spammers cuentan con que su expresión regular vea algo distinto de lo que ve el ojo humano; la normalización cierra esa brecha.
- Cubre más de 30 idiomas, porque una regla que solo conoce el inglés es ciega ante la mayor parte del spam del mundo.
- Se ejecuta en menos de 10 milisegundos. Ese es el número que permite a Telm borrar un mensaje antes de que la sala lo haya visto de verdad, en lugar de después de que el daño esté hecho.
El motor de reglas atrapa por sí solo la inmensa mayoría del spam. Pero las reglas tienen un techo: solo saben lo que se les ha dicho, y una estafa genuinamente nueva no coincidirá con ningún patrón. Para eso están las capas siguientes.
Segunda capa: el clasificador de IA
Cuando un mensaje sobrevive a las reglas pero sigue pareciendo sospechoso —un enlace inusual, un patrón de publicación extraño, alguien que publica por primera vez con un mensaje con forma de reclamo—, pasa a un clasificador de aprendizaje automático entrenado con mensajes de spam y legítimos etiquetados.
El clasificador atrapa aquello que las reglas no pueden articular: el tono de una estafa, la estructura de un intento de manipulación, la forma de un mensaje que es técnicamente limpio pero estadísticamente spam. El problema es que la inferencia del modelo es cara, y ejecutarla en cada mensaje reventaría el presupuesto de latencia que el motor de reglas tanto se esfuerza por proteger.
Por eso el clasificador se sitúa detrás de una caché. El spam llega en oleadas: la misma campaña golpea a muchos grupos con mensajes casi idénticos en cuestión de minutos. Indexamos la caché por una huella normalizada del mensaje, de modo que la primera instancia de una campaña paga el coste completo de la inferencia y cada copia posterior es un acierto de caché. En la práctica, la caché absorbe el grueso del tráfico repetido, y el modelo solo se ejecuta de verdad sobre contenido genuinamente nuevo.
message ──▶ normalize ──▶ rule engine (<10ms, 200+ patterns)
│ uncertain
▼
fingerprint cache ──hit──▶ verdict
│ miss
▼
AI classifier ──▶ verdict + cache writeTercera capa: la memoria semántica
La tercera capa es la que hace que Telm sea difícil de evadir con el tiempo. Los spammers no envían el mismo mensaje dos veces: parafrasean. «Únete a nuestro grupo exclusivo de señales» se convierte en «consigue acceso a nuestro canal privado de trading», que se convierte en la misma oferta en portugués. Una caché de huellas ve tres cadenas distintas. Un humano ve una sola estafa.
La memoria semántica cierra esa brecha al trabajar sobre el significado en lugar del texto. Cuando un mensaje se confirma como spam, Telm almacena un embedding: un vector numérico que captura lo que el mensaje significa, y no cómo está escrito. Los mensajes nuevos también se convierten en embeddings y se comparan con esa memoria por similitud. Una paráfrasis, una traducción, un reclamo reformulado caen todos cerca del original en el espacio vectorial, aunque apenas compartan caracteres literales.
Esto es lo que permite a Telm atrapar la segunda, la tercera y la centésima variación de una estafa que solo se le ha mostrado una vez. El motor de reglas se ocupa de lo conocido, el clasificador se ocupa de lo novedoso y la memoria semántica se ocupa de lo mutado: la larga cola del spam que sobrevive precisamente porque nunca se repite palabra por palabra.
La lista de bloqueo CAS
No toda defensa tiene que calcularse localmente. Telm integra la lista de bloqueo Combot Anti-Spam (CAS), un registro global y mantenido por la comunidad de cuentas ya confirmadas como spammers en todo el ecosistema de Telegram.
El valor de CAS es que actúa antes de que exista un mensaje. Cuando una cuenta ya identificada como maliciosa intenta unirse o publicar, Telm puede vetarla de inmediato: no hay contenido que analizar ni inferencia que ejecutar, porque la propia identidad es la señal. Es la comprobación más barata posible y elimina una parte considerable de los actores maliciosos antes de que el pipeline de detección tenga siquiera que pensar en ellos.
Modo de observación: actuar solo cuando usted confía
Un bot de moderación que se equivoca es peor que no tener bot alguno. Borre el mensaje de un miembro real el primer día y habrá enseñado a la comunidad a no confiar en la herramienta. Por eso, en cada grupo nuevo, Telm arranca en Modo de observación.
En este modo, Telm observa e informa, pero no toca nada. Para cada mensaje, registra la acción que *habría* tomado —borrar, silenciar, vetar— y se la muestra, sin llegar a ejecutar ninguna de ellas. Así puede ver exactamente cómo se comporta el pipeline frente al tráfico real de su comunidad, con sus miembros reales, antes de que tenga permiso para actuar.
Esto logra dos cosas. Construye una confianza justificada: usted pone Telm en modo activo solo cuando ha comprobado que sus decisiones coinciden con su criterio. Y es una red de seguridad para el ajuste: si una regla concreta es demasiado agresiva para la cultura de su grupo, se entera por un informe, y no por un mensaje airado de un miembro al que vetaron por decir «echad un vistazo a mi proyecto».
El Modo de observación es, en cierto sentido, toda la filosofía condensada en una sola función. La detección puede ser agresiva porque la activación es conservadora. Usted ve antes de que actúe y, para cuando actúa, ya sabe que acierta.