Saltar al contenido
nvíame
Capítulo 1 de 59 min4 sep 2026

Anatomía de un bot

Entrada, interpretación, estado, decisión y respuesta: las cinco piezas de cualquier bot.

Todo bot, desde un menú de tres opciones hasta un asistente con IA, sigue el mismo ciclo: recibe un mensaje, lo interpreta, consulta el estado de la conversación, decide qué hacer y responde.

Las cinco piezas

  • Entrada: el webhook del canal entrega texto, botón pulsado o medio.
  • Interpretación: convierte la entrada en una intención (agendar, cancelar).
  • Estado: dónde está el usuario dentro del flujo.
  • Decisión: la regla que, dada intención y estado, elige la siguiente acción.
  • Respuesta: el mensaje que se envía, adaptado al canal.
function handle(msg, session) {
  const intent = interpret(msg.text);       // interpretación
  const next = decide(session.step, intent); // decisión
  session.step = next.step;                  // estado
  return next.reply;                         // respuesta
}

Mensajes duplicados

Los canales reintentan webhooks. Si procesas dos veces el mismo mensaje, el bot avanzará dos pasos. Guarda el id de cada mensaje entrante y descarta los repetidos antes de tocar el estado.

Un bot es, antes que nada, un programa que recibe eventos y responde. Todo lo demás —intenciones, entidades, modelos de lenguaje— son técnicas para decidir qué responder. Separar el transporte (recibir y enviar mensajes) de la lógica conversacional es la decisión de arquitectura más rentable que puedes tomar.

Con esa separación, el mismo cerebro puede atender SMS, chat web y canales IP, y puedes probarlo sin red, como en los playgrounds de esta serie. El transporte se encarga de firmas, reintentos y formatos; la lógica solo ve texto y contexto.

Las cuatro capas

  • Transporte: webhooks entrantes, envío saliente, verificación de firmas.
  • Sesión: identifica al usuario y carga su estado conversacional.
  • Lógica: decide la respuesta según estado e intención.
  • Respuesta: adapta el contenido al canal (botones o texto plano).

Cuando un bot falla en producción, casi siempre es en la capa de sesión: estado perdido entre instancias, mensajes que llegan en paralelo o un usuario que escribe desde otro canal. Dedícale el mismo cuidado que a la lógica.

Se completa automáticamente al leer el 80%.

Comentarios (3)

Camila Rojas4 sep 2026

¿Necesito un modelo de lenguaje para hacer un bot útil?

Equipo nvíameAutor4 sep 2026

No necesariamente. Muchos bots de alto valor son máquinas de estados con menús. Un modelo de lenguaje ayuda a interpretar texto libre, pero el flujo y las reglas de negocio deben seguir siendo deterministas.

Matías Herrera4 sep 2026

Lo apliqué en el proyecto del trabajo. La sección «Anatomía de un bot» me ahorró una discusión larga con el equipo: ahora tenemos un criterio compartido.

Diego Fernández4 sep 2026

¿Hay alguna diferencia importante si lo implemento en un servicio con varias instancias detrás de un balanceador?

Equipo nvíameAutor4 sep 2026

Sí: todo estado que hoy vive en memoria (contadores, sesiones, claves vistas) debe moverse a un almacén compartido con TTL, como Redis. Si no, cada instancia ve solo una parte de la historia.

Los comentarios se guardan solo en este navegador.