Cómo cerrar conversaciones con contextos en Dialogflow

Clase 22 de 27Curso de DialogFlow: Programación de Chatbots por voz

Resumen

Cerrar una conversación de manera adecuada es tan importante como iniciarla. Cuando un asistente virtual no sabe cuándo terminar, puede quedarse esperando respuestas innecesarias, lo que afecta la experiencia del usuario y compromete su privacidad. Aquí se explica paso a paso cómo construir un intent de cierre en Dialogflow utilizando contextos, y cómo aprovechar herramientas de prueba y analítica para mejorar tu agente.

¿Por qué necesitas un intent de cierre en tu asistente?

Cuando un usuario indica que no quiere explorar más opciones, el agente debe finalizar la conversación de forma limpia. Sin un intent de cierre, el flujo se pierde y el asistente queda "con el teléfono descolgado", esperando input innecesario. Esto es crítico especialmente en dispositivos como parlantes inteligentes o teléfonos personales, donde la privacidad es prioritaria.

Una forma de lograrlo es crear un follow-up intent a partir del intent principal. Por ejemplo, si tienes un intent llamado "selección de taller - yes", puedes generar uno adicional: "selección de taller - yes - no" [0:42]. Sin embargo, esta estructura de follow-up intents anidados se vuelve engorrosa muy rápido.

¿Cómo funcionan los contextos para dirigir la conversación?

Los contextos en Dialogflow son pistas que le indican al sistema qué intent debe activarse en un momento específico de la conversación [1:12]. En lugar de depender de cadenas interminables de follow-up intents, puedes inyectar un contexto desde tu código de fulfillment y vincularlo como contexto de entrada en el intent de cierre.

Desde el código se utiliza agent.setContext pasándole un objeto con tres propiedades:

  • name: el nombre del contexto, por ejemplo, "registro al taller" [1:30].
  • lifespan: la cantidad de turnos en los que el contexto estará activo [1:42].
  • parameters: un objeto opcional para pasar variables entre intents [2:10].

El concepto de lifespan merece atención especial. Un turno equivale a un intercambio: el agente dice algo y el usuario responde. Si defines un lifespan de dos, el contexto permanecerá disponible durante dos turnos y luego desaparecerá automáticamente. Esto es útil porque no siempre quieres que las variables estén disponibles en todo momento.

¿Cómo configurar el intent de cierre en la consola?

Una vez que el deploy de la función está listo, debes ir a la consola de Dialogflow y configurar el intent de cierre con estos pasos [2:30]:

  • Agregar el contexto como contexto de entrada.
  • Eliminar cualquier contexto de salida, ya que este es el fin de la conversación.
  • Activar la opción que marca al intent como final de la conversación.
  • Escribir respuestas variadas como "Muy bien, sigue aprendiendo y aquí te espero".

Entre más respuestas agregues, más natural se sentirá tu agente, porque puede contestar de distintas formas ante la misma situación.

¿Cómo probar tu agente en dispositivos reales?

Dialogflow ofrece la posibilidad de hacer testing directamente desde tu teléfono [4:22]. Si tienes habilitada la opción de prueba en tu dispositivo, puedes abrir la app del asistente y pedir hablar con tu acción por su nombre. Esto significa que no necesitas desplegar a producción para validar el comportamiento real de tu agente. Tu teléfono es suficiente para comenzar a probar en el mundo real.

¿Qué herramientas de Dialogflow te ayudan a mejorar tu agente?

Dialogflow incluye una sección de analytics donde puedes revisar cuántas invocaciones ha tenido tu agente por día [5:15]. Lo más valioso es que puedes acceder al historial de cada invocación y observar cómo los usuarios interactuaron con el agente.

De estas conversaciones reales puedes extraer:

  • Nuevas frases de entrenamiento para tus intents.
  • Identificación de desviaciones y errores en el flujo conversacional.
  • Oportunidades para refinar entidades y parámetros.

Recordemos los elementos fundamentales: los intents conectan lo que el usuario expresó con lo que quiere hacer, y se componen de frases de entrenamiento, parámetros y respuestas. Las entidades son las palabras o frases clave que se extraen del usuario. El fulfillment mediante webhook enlaza los intents con código. Y las integraciones permiten conectar tu agente con Google Assistant, Facebook Messenger, Slack o tu propia aplicación.

Si ya estás construyendo tu propio agente, comparte en los comentarios qué tipo de contextos estás utilizando y cómo manejas el cierre de conversación.