Saltar al contenido
megapromotingVamos a hablar

aichat.md — dirección de las interacciones

Qué sucede con un mensaje, desde el segundo en que nos llega hasta el momento en que alguien lo marca como resuelto.

Un asistente que responde bien es fácil de mostrar en un demo. Lo difícil de mostrar, y lo que de verdad importa, es el recorrido: cómo llega el mensaje, qué se hace para no responder dos veces, cuánto se espera antes de responder, de dónde se toma la información, qué herramienta se llama, dónde se detiene el agente y quién es llamado en su lugar. Abajo está el recorrido real, con los números del código. Incluida la parte de comentarios, que se comporta de forma completamente distinta a un mensaje privado — y debe comportarse de forma distinta.

Traseul

Nueve etapas, en el orden en que ocurren

  1. 01

    1. La entrada, por el canal por el que escribió la persona

    Seis vías de entrada, con mecanismos diferentes. Messenger, Instagram Direct y WhatsApp Cloud API llegan por webhook, por el mismo punto de entrada, ramificado según el tipo de objeto. El widget del sitio entra directamente por una ruta propia. Telegram no llega por webhook, sino por sondeo continuo. Y 999.md no tiene ni webhook ni sondeo continuo — tiene un reloj que mira los hilos cada veinte segundos.

    Cada recepción se escribe en un registro de eventos, con el estado de la firma criptográfica y con el contenido bruto, antes de que se procese nada. La razón es simple: cuando un mensaje «no llegó», la primera pregunta es si nos llegó a nosotros o no, y la respuesta debe ser una fila en una tabla, no una suposición. El enrutamiento canal → agente se hace mediante una tabla de correspondencia entre el identificador de la página y el servicio, así que la misma cuenta puede llevar varios agentes en distintos canales.

  2. 02

    2. La deduplicación, antes que cualquier otra cosa

    El identificador del mensaje se guarda en una clave Redis con escritura condicional — si la clave ya existe, el mensaje está duplicado y se detiene aquí. La vida útil de la clave es de 24 horas. Si Redis no responde, se pasa a una memoria local con umbral de limpieza a 5.000 entradas, así que la deduplicación no desaparece, solo se vuelve más corta en memoria.

    La ventana fue de 120 segundos hasta el 10 de julio de 2026, cuando se subió a 24 horas después de un incidente de respuestas duplicadas. El comentario que explica el cambio está escrito junto al valor, en el código. Aquí también se descartan los stickers y el botón de “me gusta”, que de otro modo se convertirían en preguntas a las que el agente intentaría responder.

  3. 03

    3. El búfer — tres mensajes escritos seguidos se convierten en una sola pregunta

    La gente no escribe un párrafo. Escribe “hola”, luego “tengo una pregunta”, luego la pregunta. Un asistente que responde a cada línea por separado es molesto y parece tonto. Por eso los mensajes se agrupan en un búfer por pareja remitente–página, y el temporizador se reinicia con cada mensaje nuevo. Cuando la persona deja de escribir, se responde una vez, a todo.

    En Messenger e Instagram, la espera predeterminada es de 15 segundos; en WhatsApp, de 5. Se aceptan como máximo cinco mensajes en el búfer —el sexto reemplaza al último— y el texto concatenado se recorta a 2.000 caracteres. El valor de la espera es por agente, no global: se lee de la configuración del agente y se puede bajar a cero para un escenario donde la velocidad importa más que la coherencia. Justo antes del envío se vuelve a comprobar en la base si mientras tanto el hilo se puso en pausa — porque en esos 15 segundos puede haber entrado una persona.

  4. 04

    4. La lectura de tus fuentes

    La pregunta se transforma en un vector y se busca en los fragmentos que has cargado. La búsqueda es híbrida: combina la coincidencia por palabras con la cercanía vectorial, en proporción de tres a siete. Se cargan hasta 300 fragmentos candidatos desde la base de conocimientos del agente, se calcula la puntuación combinada para cada uno, y se conservan los mejores — cinco en los canales de mensajería, diez en el widget.

    El número de fragmentos es configurable por agente, entre 1 y 20. Los fragmentos se recortan al indexar a 1.200 caracteres. La selección final se hace por rango, no por un umbral absoluto de similitud: se ordenan por la puntuación combinada y se toman los primeros. La configuración también tiene un campo de umbral, pero en la ruta de búsqueda el filtro efectivo conserva cualquier fragmento con puntuación superior a cero y corta por posición — lo decimos porque esa es la diferencia entre lo que escribe el panel y lo que hace el código. Cada consulta se puede registrar con los fragmentos devueltos y sus puntuaciones, para poder responder a “por qué dijo eso”.

  5. 05

    5. Las herramientas — cuando el agente tiene que hacer algo, no solo decirlo

    Si la respuesta requiere una acción, el modelo llama a una herramienta. Una herramienta es de tres tipos: un webhook hacia tu sistema, un fragmento de código ejecutado de forma aislada, o una incorporada en la plataforma. El bucle modelo–herramienta–modelo tiene como máximo cinco rondas, en ambos motores. Después de cinco, se detiene y se responde con lo que hay.

    El tiempo máximo predeterminado de una herramienta es de 15 segundos. Las herramientas incorporadas que existen hoy: búsqueda en una página web, hora actual, calculadora, escritura en una hoja de cálculo Google, notificación de lead en Telegram, envío de SMS, seis herramientas de programación para un sistema externo de reservas, y tres para el catálogo de una tienda — búsqueda, coincidencia y ficha del producto. El catálogo lee en vivo, con memoria intermedia de diez minutos, hasta 30 páginas y tiempo máximo de 20 segundos. Existe un conjunto de herramientas marcadas como internas, cuyo resultado nunca llega al texto visto por el cliente.

  6. 06

    6. La respuesta, con el historial delante

    El modelo recibe la pregunta, los fragmentos encontrados, los resultados de las herramientas y el historial de la conversación — los últimos 25 mensajes en la ruta principal, 50 en el motor nuevo. La llamada tiene un tiempo máximo de 120 segundos, con dos reintentos; la llamada después de las herramientas, 90 segundos. La respuesta sale por el canal de donde vino la pregunta, en el idioma en que fue hecha.

    El nuevo motor de agentes se activa mediante un interruptor, por agente, por cuenta o de forma global — no se cambia todo a la vez. Así se puede comparar el comportamiento viejo con el nuevo en el mismo tráfico, que es la única forma honesta de decir que algo es mejor.

  7. 07

    7. La entrega a una persona

    El hilo tiene un estado: bot o persona. El cambio se puede hacer de cuatro formas. Por palabras clave — una lista de diecisiete expresiones en rumano, inglés y ruso, las palabras sueltas comparadas en el límite de palabra, las expresiones por coincidencia en el texto. Por frustración — una segunda lista, también de diecisiete. Por repetición — la misma pregunta hecha tres veces en los últimos diez mensajes, contada solo para mensajes de más de diez caracteres. O por decisión del modelo, que puede pedir la entrega con un marcador especial.

    El modo es por agente y está desactivado por defecto — se elige entre “desactivado”, “por palabras clave” e “inteligente”. Cuando se activa: el hilo pasa a “espera a una persona”, se guarda el momento, el cliente recibe un mensaje de confirmación en su idioma y el agente calla. No responde en paralelo, no completa, no se disculpa. Calla, y ya está. También existe el protocolo oficial de entrega de Meta, que traslada el control del hilo a la bandeja de entrada de la página; el canal de reserva sigue guardando los mensajes incluso cuando el control está en manos de una persona, para que el historial no tenga huecos.

  8. 08

    8. Cuando el operador responde desde la página, el agente se detiene solo

    Si una persona escribe al cliente directamente desde la interfaz de Meta, la plataforma ve el eco de ese mensaje y pone el hilo en pausa automáticamente, sin que nadie pulse nada. La duración predeterminada es de 30 minutos, configurable entre cinco minutos y siete días. Es el caso más fácil de pasar por alto cuando se diseña un asistente: nadie pulsa un botón de toma de control, la persona simplemente responde, y si la plataforma no lo detecta, el cliente recibe dos voces a la vez.

    La reanudación tiene tres vías. La reactivación automática después de 30 minutos sin respuesta humana —un bucle comprueba cada minuto y reactiva en lotes de hasta 50 hilos, limpiando también la memoria de la conversación para que el agente no continúe una discusión que no ha llevado. La expiración de la pausa, verificada por separado. Y el botón del panel: tomar control, resolver, volver al bot, detener por completo el bot.

  9. 09

    9. El cierre — y lo que no se cierra solo

    El hilo se marca como resuelto manualmente, desde el panel, con notas de resolución y con un mensaje de sistema escrito en el historial. No existe cierre automático por inactividad: un hilo dejado abierto permanece abierto. Hemos elegido decir esto en lugar de dejar la impresión de que se limpia solo.

    Lo que sí se cierra solo son dos cosas: la reactivación del agente después de 30 minutos, descrita arriba, y las escaladas enviadas en Telegram, que después de 30 minutos sin respuesta se marcan como expiradas y devuelven el hilo al agente, con el motivo escrito. Encima de todo corre un indicador de tiempo de respuesta: por encima de una hora pasa a advertencia, por encima de cuatro horas pasa a vencido. Colorea, no cierra.

Asistentul magazinuluiSe potrivește cu aparatul meu?Spune-mi modelul aparatului.Verific variantele din catalog.Catalog conectat · informație verificatăEchipa poate prelua conversația.
Schemă explicativă · mesaj, context, acțiune, predare

Comentarii

Los comentarios: por qué no son mensajes y por qué no se tratan como mensajes

Un mensaje privado tiene un solo lector. Un comentario tiene a todos los lectores de la página, incluida la competencia, incluso alguien que busca un motivo para el escándalo. Una buena respuesta en privado puede ser un desastre en público —por ejemplo un precio, una disponibilidad, o la confirmación de que alguien realmente es vuestro cliente. Por eso los comentarios tienen un recorrido separado, reglas separadas y un valor predeterminado que se inclina hacia la discreción.

Cómo llega un comentario al sistema

La página se suscribe a campos distintos en las dos redes: en Facebook al flujo de la página, en Instagram explícitamente a los comentarios y a los comentarios de las transmisiones en directo. Llegan al mismo punto de entrada que los mensajes, pero por una rama separada, reconocida por la presencia de una lista de cambios en lugar de una de mensajes. El formato difiere entre redes y se detecta por separado para cada una. También se lee el comentario padre, para saber si es una respuesta a otro comentario, y la publicación o el material en el que apareció.

Solo los comentarios nuevos desencadenan algo

Meta envía el mismo evento para varias acciones. Solo la adición de un comentario pone en marcha al agente. La edición, el borrado, el ocultado y el desocultado se registran y se detienen ahí. El cambio en el número de me gusta se ignora sin rastro, porque de otro modo el registro sería puro ruido.

Cuatro filtros antes de que el agente vea el texto

Los comentarios de la propia página se descartan —de lo contrario el agente se respondería a sí mismo, hasta el infinito. Los comentarios ya procesados se descartan por el identificador único del comentario, que tiene restricción de unicidad en la base. Los comentarios vacíos, los de como mucho dos caracteres y los formados solo por emoji se descartan. Y los textos que contienen números de teléfono largos o direcciones web pasan por un filtro de spam con cuatro patrones y se detienen, marcados como tales.

Público o privado: el valor predeterminado es privado

Cada agente tiene cuatro interruptores separados, dos para Facebook y dos para Instagram: respuesta pública activada o desactivada, respuesta privada activada o desactivada. Encima de ellos hay un modo general con tres posiciones: desactivado, automático o con aprobación. Cuando la configuración falta o no se puede leer, el valor de reserva del código no es «responder público», sino «no responder público, responder en privado». Es una elección deliberada: un error de configuración no tiene derecho a sacar texto en la pared pública de alguien.

El agente apagado significa comentarios apagados

Si el asistente está archivado, inactivo, desactivado o en pausa, o si el bot está detenido desde la cuenta del cliente, el modo de comentarios pasa automáticamente a «apagado», sin importar lo que diga en los interruptores de comentarios. Un solo lugar para apagarlo, no cuatro para recordar.

Qué no se responde en público, y cuán estricta es la regla

La instrucción dada al modelo para una respuesta pública es explícita: máximo dos frases, tono breve y amable, invitación a enviar un mensaje privado para más detalles, y prohibición de dar información detallada o precios en público. Encima, un límite duro: la respuesta pública se corta a 300 caracteres. Por encima de ambas, el texto libre que escribís vosotros como instrucciones propias, separado para lo público y para lo privado. Decimos con honestidad cuán estricta es la regla: es una instrucción de prompt más un límite de longitud, no un filtro determinista que pueda garantizar que un precio nunca aparezca. Cuando la garantía debe ser estricta, se desactiva la respuesta pública y se deja solo la privada, o se pasa al modo con aprobación.

Una sola vez cada 30 segundos, en la misma publicación

La respuesta pública tiene un contador por publicación: como mucho una cada 30 segundos. La razón es lo que pasa cuando una publicación despega — treinta comentarios en dos minutos, y la página se llena de respuestas idénticas de un robot, debajo de cada uno. El contador se limpia solo, conservando las últimas mil publicaciones rastreadas.

Instagram no permite mensaje privado en un subcomentario

Es una regla de la plataforma, no nuestra, y se verifica en tres lugares distintos del código, por las tres vías por las que se podría llegar a un mensaje privado. Cuando el comentario tiene un padre y la red es Instagram, el envío por privado se omite y se escribe en el registro el motivo exacto. No se intenta ni falla en silencio — se omite, explícitamente.

Del comentario a la conversación

El paso se hace mediante el mecanismo oficial: el mensaje privado se envía usando el identificador del comentario como destinatario, no el identificador de la persona. Desde ese momento existe un hilo normal de mensajes, con todas las reglas de arriba — búfer, fuentes, herramientas, entrega a un humano. El hilo se marca como proveniente de comentarios, y el comentario recibido se guarda en el historial de la conversación con un tipo propio, para que se vea de dónde empezó todo.

Modo con aprobación: el agente escribe, el humano publica

Cuando el modo es «con aprobación», la respuesta generada no se envía. Se guarda como borrador, en espera, y aparece en una cola en el panel, con contador. Desde allí se aprueba o se rechaza, pieza por pieza. La publicación aprobada pasa por un puente interno protegido con una comparación de firma en tiempo constante — una respuesta aprobada no puede ser inyectada desde fuera.

Qué puede hacer una persona, manualmente

Ocultar un comentario, con el mecanismo adecuado para cada red, y marcar el estado en la base. Eliminarlo, con marca de eliminado. Ocultación masiva, como máximo 25 comentarios en un lote. Cerrar los comentarios en un material de Instagram. Y ocultar los comentarios de una transmisión en vivo, por una ruta separada. Son acciones manuales, no automáticas. No existe una lista de palabras prohibidas que oculte comentarios sola, y no afirmamos que exista.

Predarea

Cuando el agente ya no tiene qué decir

La escalada no es un fallo del agente. Es su función más importante, porque lo único peor que un asistente que no sabe es un asistente que no sabe y sigue hablando. Lo que sigue es cómo se ve la entrega, quién es notificado, qué pasa con la respuesta humana y cómo vuelve el agente.

La tarjeta que va al grupo de Telegram

Una herramienta integrada envía el caso a un grupo, con un encabezado que dice desde el inicio qué tipo de caso es: urgencia, solicitud de operador, señalamiento de abuso, escalada de cliente insatisfecho, nuevo lead o conversación nueva. El tipo se detecta a partir del texto, con patrones separados para cada uno. El mensaje del cliente se adjunta verbatim en la tarjeta — la persona que toma el caso ve exactamente lo que escribió el cliente, no un resumen.

La toma es una carrera, y se trata como una carrera

La tarjeta tiene dos estados: abierta y bloqueada. La toma se hace con una escritura condicionada que cambia el estado solo si seguía abierta, y el código comprueba efectivamente cuántas filas se modificaron. Dos operadores que pulsan en el mismo segundo no la toman ambos. El segundo se entera de que ya fue tomada, no llega a escribir en paralelo.

La respuesta del operador se reescribe en el idioma del cliente

El operador escribe en grupo, en su idioma y en su estilo, a veces de forma telegráfica. Antes de la entrega, el texto se reescribe en el idioma en que habla el cliente y en el tono del agente, sin añadir hechos nuevos. Lo que dice el operador sigue siendo lo que se transmite; solo cambia la forma. El enrutamiento de la respuesta a la conversación adecuada se hace según el mensaje al que se respondió, y, si falta, según el único caso bloqueado por ese operador — y se rechaza explícitamente si tiene dos, en lugar de adivinar.

A quién se avisa, y qué ya no se avisa

El panel recibe una notificación en tiempo real mediante una conexión permanente. Las pausas activadas por reglas envían aviso por email o en Telegram, a elección — son los dos únicos canales aceptados en el código. También decimos lo que ya no funciona: la notificación por email para un hilo tomado por un humano fue desactivada intencionalmente en julio de 2026, y la ruta interna quedó como respuesta vacía. Si te basas en ese email, no llega. Preferimos que lo sepas aquí.

Las reglas de pausa, más allá de las palabras clave

Se pueden escribir reglas que pongan el hilo en pausa al aparecer un número de teléfono, una dirección de email, un conjunto de palabras de hasta cien, o a una solicitud explícita de una persona. Encima de ellas, dos tipos evaluados por el modelo: intención y sentimiento. La duración de la pausa está entre un minuto y siete días; el valor cero significa pausa hasta que alguien la levante manualmente.

Cada cambio de manos se registra

Existe un registro de tomas con seis acciones distintas: toma de humano, toma de bot, reactivación automática, toma de operador, liberación de operador y reanudación por parte del agente. No es una columna de estado que se sobrescribe — es un historial. Cuando alguien pregunta «quién hablaba con el cliente a esa hora», la respuesta es una fila, no una reconstrucción.

Lo que no existe, para que no te bases en lo que no está

No existe despacho automático a couriers o equipos de campo; lo hemos buscado en todo el código y no está. No existe cierre automático de las conversaciones por inactividad. No existe una lista global de palabras prohibidas para comentarios. Lo que existe son los cuatro desencadenantes de traspaso, la escalada en Telegram con toma atómica, las reglas de pausa y la reactivación automática a los 30 minutos.

Fiecare afirmație de pe această pagină a fost citită din codul platformei — 66 citări cu fișier și linie, păstrate în depozitul nostru. Le parcurgem împreună, la cerere.