Prácticas recomendadas generales para el diseño de agentes

En esta guía, se proporcionan prácticas recomendadas generales para diseñar todo tipo de agentes.

También deberías consultar la guía de diseño de agentes de voz específica a fin de diseñar agentes de voz y la guía de prácticas recomendadas para usar el servicio de Dialogflow.

Antes de compilar un agente

En esta sección, se proporciona información que deberías tener en cuenta antes de comenzar a compilar un agente.

Objetivo

Considera el objetivo general de tu agente:

  • ¿Qué está tratando de lograr tu negocio?
  • ¿Qué esperarán tus usuarios de tu agente?
  • ¿Con qué frecuencia van a interactuar los usuarios con tu agente?

Plataforma

Considera cómo accederán los usuarios a tu agente. Revisa las plataformas compatibles con Dialogflow antes de crear contenido. Una vez que elijas las plataformas admitidas, prepara tu contenido en consecuencia. Algunas integraciones de la plataforma de Dialogflow son compatibles con mensajes enriquecidos que pueden incluir elementos como imágenes, vínculos y fichas de sugerencias.

Compila agentes iterativamente

Si tu agente será grande o complejo, comienza por compilar un diálogo que solo aborde las solicitudes de nivel superior. Una vez que hayas establecido la estructura básica, itera las rutas de conversación para asegurarte de que incluyas todas las rutas posibles que puede tomar un usuario.

Agentes compilados previamente

Dialogflow ofrece agentes construidos previamente para ayudarte a comenzar. Los agentes compilados previamente abordan casos prácticos comunes, como reservas de hotel, navegación y compras en línea. Estos agentes incluyen intents y entidades que abordan las solicitudes más comunes de los usuarios. Agrega respuestas específicas de tu empresa para compilar rápidamente un agente funcional.

Entidades del sistema

Cuando un usuario realiza una solicitud, existe información importante para analizar a partir de lo que dijo. En Dialogflow, se llaman entidades. En particular, las entidades del sistema son entidades compiladas con anterioridad y proporcionadas por Dialogflow que controlan los tipos de información más comunes.

Small Talk

Durante el desarrollo de tu diálogo, es posible que hayas considerado controlar solicitudes que están fuera de tema. Dialogflow ofrece una característica opcional llamada Small Talk. Si habilitas esta característica, tu agente responderá a una conversación general, respuestas emocionales y preguntas sobre el mismo agente. Todas las respuestas de Small Talk se pueden personalizar para garantizar que la experiencia, ya sea informal, de negocios o algo intermedio, represente a tu marca.

Recomendaciones para el diseño de agentes

En esta sección, se proporciona una lista de las recomendaciones para un agente robusto, preciso, eficiente y utilizable.

Saludos y despedidas

Recomendación Detalles
Los intents de bienvenida deberían informar a los usuarios acerca de las capacidades del agente teniendo en cuenta el desarrollo de la marca. Tu intent de bienvenida debería informar al usuario acerca de 2 o 3 tareas en las que puede ayudar el agente, así como brindar descripciones breves, según sea necesario, sobre cómo usar estas características.
Los agentes deberían tener un mensaje de salida adecuado para cuando haya finalizado una interacción exitosa. Cuando un usuario completa una tarea, tu agente debería resumir la transacción/tarea y decir algo como "Hasta la próxima", etcétera.

Aprendizaje automático y entrenamiento

Recomendación Detalles
Los intents deben tener al menos entre 10 y 20 frases de entrenamiento (según la complejidad del intent). La complejidad de tu agente determinará la cantidad real de frases de entrenamiento que debe tener cada intent, pero entre 10 y 20 (según la complejidad del intent) es un buen mínimo. Cuantos más parámetros tengas en tus intents, más frases deberías proporcionar para entrenar el modelo de aprendizaje automático.
Las frases de entrenamiento deberían ser variadas. Incluye variaciones de preguntas, comandos, verbos y sinónimos para sustantivos comunes a fin de garantizar que tus frases aborden una amplia gama de solicitudes posibles.
Las anotaciones deberían ser coherentes.
  • Revisa tus frases de entrenamiento y asegúrate de que las anotaciones resaltadas apunten hacia las entidades correctas.
  • No deberías tener texto en las frases de entrenamiento que están anotadas en algunos casos, pero no en otros.
  • El intervalo de texto seleccionado para una anotación debería incluir todo, y no más que, el texto que es necesario a fin de que coincida con una entidad.
  • Asegúrate de que el texto anotado en varias frases de entrenamiento contenga partes similares de la frase. Por ejemplo, considera que tienes una frase de entrenamiento “Configurar alarma a las 6 a.m.”, en la que el texto "6 a.m." está anotado como @sys.date. Si tienes otra frase de entrenamiento “Despiértame a las 7 a.m.”, anota “7 a.m.”, pero no “a las 7 a.m.”.
Usa anotaciones con importancia semántica para las entidades del sistema. El significado semántico de una parte de la frase de entrenamiento seleccionada para una anotación puede verse afectado por el resto del texto de la frase. Por ejemplo:
  • Tengo 7 años (el significado semántico del texto anotado es la edad de una persona).
  • El contrato es válido por 7 años (el significado semántico del texto anotado es la duración de un tiempo).
Los modelos de aprendizaje automático de Dialogflow tienen en cuenta el significado semántico cuando hacen coincidir las entidades del sistema. El significado semántico de la parte de la frase de entrenamiento debe coincidir con el significado semántico previsto de la entidad del sistema.

Por ejemplo, no uses la entidad de sistema @sys.duration para la anotación del primer ejemplo de "7 años" anterior. El significado semántico de "7 años" no coincide con una duración de tiempo simple. En su lugar, debes usar la entidad del sistema @sys.age.
Las entidades personalizadas deberían abarcar una amplia gama de ejemplos. Las entidades son listas de elementos. El aprendizaje automático se hará cargo de las formas gramaticales, pero debes incluir todos los elementos posibles. Además, marca la opción definir sinónimos y, luego, incluye algunas variaciones.
Inhabilita el AA para la menor cantidad de intents posible. Las frases de entrenamiento de los intents con aprendizaje automático (AA) inhabilitado no se usan para entrenar al agente. Una consulta de usuario que es muy similar a una frase de entrenamiento en un intent con AA inhabilitado puede coincidir con un intent erróneo si otros intents con AA habilitado tienen un ligero parecido con la consulta del usuario. Si tienes problemas con falsos positivos, aumenta el umbral de clasificación de AA en lugar de inhabilitar el AA.
No establezcas un umbral de clasificación de AA alto para un agente con solo unos pocos datos de entrenamiento. Si el umbral es alto y no hay muchos datos de entrenamiento, solo las consultas de los usuarios que tienen coincidencias casi exactas con las frases de entrenamiento arrojarán una coincidencia de intent. Deberás proporcionar una gran cantidad de datos de entrenamiento si deseas usar un umbral alto.
Los agentes deberían tener un intent alternativo. Sin los intents alternativos, las consultas de usuario sin coincidencias darán como resultado respuestas vacías.
Los agentes deberían proporcionar ejemplos negativos. Los ejemplos negativos impiden que las consultas de usuario que son ligeramente similares a las frases de entrenamiento coincidan de manera involuntaria con los intents.
No definas entidades que coincidan con casi cualquier cosa. Esto degrada el rendimiento y la calidad del AA. Casi todo en cada frase de entrenamiento será evaluado como una posible coincidencia. En su lugar, usa @sys.any. Del mismo modo, las entidades compuestas no deberían contener una sola entidad @sys.any como sinónimo.
No definas entidades que estén compuestas por palabras de relleno o texto sin sentido. Algunos ejemplos de palabras de relleno y texto sin sentido son: “mmm”, “veamos”, “por favor”, “podrías por favor”. Si intentas usar entidades como esta para que haya variedad, degradarás el rendimiento del AA. Dialogflow aumenta los datos para manejar la variedad en este sentido. Deberías agregar frases como estas a tus frases de entrenamiento, no a las entidades.
Las entidades deben tener un alcance limitado que capture valores distintos de un tipo de información. Conserva tus entidades precisas, breves y simples. Si los valores de tu entidad son complicados, puede deberse a que las frases de entrenamiento de intent se adaptan mejor a tu situación. Por ejemplo, considera expresiones del usuario final como “¿Cómo puedo realizar una llamada internacional con el Plan A?” y “Uso de roaming de datos internacional con el Plan B”. No crees entidades para las acciones (“¿Cómo puedo realizar una llamada internacional?” y “Uso de roaming de datos internacional”) y los planes (“Plan A”, “Plan B”). En lugar de ello, debes usar frases de entrenamiento y coincidencia de intent para capturar las acciones, y entidades a fin de capturar los planes.
El texto anotado en las frases de entrenamiento debería ser variado. Por ejemplo, si proporcionas valores de hora que deberían analizarse como entidades del sistema @sys.time en las frases de entrenamiento, no proporciones la misma hora en todas las frases de entrenamiento. Tus frases de entrenamiento deberían tener una variedad de ejemplos de hora como: “7:00 a.m.”, “8:00 p.m.” o “9 en punto”.
Los intents con muchos parámetros también deberían tener muchas frases de entrenamiento. Como regla general, intenta tener al menos tres veces más frases de entrenamiento que parámetros y que sean al menos entre 10 y 20 (según la complejidad del intent).
Cada parámetro se debería usar en muchas frases de entrenamiento. Como regla general, cada parámetro se debería usar en al menos 5 frases de entrenamiento.
Evita usar varias entidades @sys.any en una frase de entrenamiento. Una frase de entrenamiento no debería contener dos entidades @sys.any consecutivas o un total de tres @sys.any. Es posible que Dialogflow no pueda distinguirlas.
No uses frases de entrenamiento similares en diferentes intents. Los diferentes intents no deberían contener frases de entrenamiento similares, ya que esto impedirá que Dialogflow aprenda a reconocer esas frases.
Habilita la corrección ortográfica automática. Si estás usando entradas de texto, deberías habilitar la corrección ortográfica automática.
No anides entidades compuestas. No utilices más de un nivel de anidación en las entidades compuestas. Cada nivel de anidación degrada significativamente la calidad.
Evita los caracteres especiales en las frases de entrenamiento. En las frases de entrenamiento, los caracteres especiales como {, _, # y [ se ignorarán. Los emojis son una excepción; funcionan como se espera.

Nombres de intents

Si tu agente tiene muchos intents, debes considerar un esquema de nombres que te ayude a mantenerlos organizados. Es común segmentar los nombres de los intents con puntuación, en la que la especificidad aumenta de izquierda a derecha. Además, un nombre de intent debe reflejar la intención del usuario final para un turno de conversación.

Existen muchos esquemas de nombres adecuados, pero este es un ejemplo:

  • phone-service.order.cancel
  • phone-service.order.create
  • phone-service.order.change
  • tv-service.order.cancel
  • tv-service.order.create
  • tv-service.order.change
  • account.balance.get
  • account.balance.pay
  • account.address.get
  • account.address.update

Características útiles del intent

Recomendación Detalles
Los agentes deberían admitir las solicitudes contextuales. Por ejemplo, si tu agente controla solicitudes para el clima y un usuario pregunta “¿Clima en San Francisco?”, asegúrate de agregar contextos que permitan admitir otras solicitudes, como “¿Qué tal mañana?”
Los agentes deberían tener seguimientos para frases como: sí, no, cancelar, siguiente, atrás, etcétera. Los intents de seguimiento se usan para responder a respuestas comunes. A fin de agregar un intent de seguimiento, desplázate sobre un intent y haz clic en Agregar seguimiento.
Los intents deberían tener al menos una respuesta de texto. La sección de respuestas está en la parte inferior de la página del intent. La adición de variaciones irá cambiando la respuesta elegida, lo que hará que la experiencia sea menos repetitiva.
Los agentes deberían recopilar toda la información necesaria para cumplir con la solicitud de un usuario. Considera crear parámetros requeridos necesarios. Tu agente le seguirá preguntando al usuario hasta que obtenga la información que necesita. Esto se llama relleno de espacios.
Las respuestas deberían repetir la información según sea necesario, como la confirmación de un pedido. Cuando un usuario realiza una solicitud, como realizar un pedido o cambiar información, tu agente debe repetir lo que está sucediendo para confirmar. Cuando se crean estas respuestas de confirmación, asegúrate de incluir todas las combinaciones posibles de los parámetros y entidades repetidas.

Reparación de conversación

Recomendación Detalles
Los agentes deben tener mensajes de recuperación útiles para cada paso del diálogo. Por ejemplo, si el mensaje inicial es “¿Qué color quieres?” y el usuario responde con “loro de la selva”, debes usar un intent de resguardo/seguimiento para reformular la pregunta (por ejemplo, “Perdón, ¿podrías repetir el color?”).
Los agentes deberían tener respuestas personalizadas y específicas de la marca en el intent alternativo predeterminado. Cuando un usuario dice algo que no coincide con un intent, se asocia con el intent alternativo predeterminado. Esto debe personalizarse a fin de reflejar tu marca, así como proporcionar información para guiar al usuario a realizar una solicitud válida.
En las entregas personalizadas, los agentes deberían tener un intent que permita a los usuarios repetir la información. Un intent puede controlar solicitudes como “di eso otra vez”, “repite eso”, “reproduce eso otra vez”, etc. Esto puede ser un intent de seguimiento.
Ayuda a los usuarios a realizarlo de forma correcta y dirigirlos para que les digas con exactitud como deseas que reciban una respuesta. Por ejemplo, si ofreces opciones, no preguntes “¿Te gustaría A o B?”. ,ya que un usuario podría responder “sí”, en lugar de preguntar: “Tengo A y B”. ¿Cuál prefieres?

Persona

Recomendación Detalles
Las respuestas de los agentes deberían tener un estilo y un tono que se ajusten a tu marca y que sean coherentes en todo el agente. A medida que tus usuarios conversan con tu agente, deberían sentir que están hablando con una persona. Asegúrate de que la calidad y la personalidad que has elegido estén representadas en todas tus respuestas.
Los agentes deberían ser sensibles a factores como cultura, género, creencia religiosa, capacidades y edad. Los estereotipos pueden ofender a los usuarios, incluso en bromas, y es posible que no regresen a tu agente.

Diseña para la voz

Recomendación Detalles
Evita el contenido que requiera visualización o interacción con el teclado y el mouse. No uses hipervínculos, tablas, imágenes ni abreviaturas. Puedes hacer referencia a un sitio web por nombre. Cuando se presenta una lista de opciones, se muestra la mejor coincidencia y se pregunta si el usuario desea escuchar alternativas.
No crees silencios incómodos. Siempre finaliza con una pregunta. Lleva la conversación y comienza las interacciones.
Escribe diálogos compactos que sean fáciles de entender. En una pantalla, el texto puede ser extenso y contener varios párrafos. Puedes omitir las partes que no te interesan. Sin embargo, si escuchas a un agente virtual hablar durante mucho tiempo, tus usuarios no estarán satisfechos.
Usa SSML Usa SSML para estructurar y cambiar la entonación de tus oraciones, de modo que las voces suenen más naturales.

Para obtener más información sobre el diseño para la voz, consulta Diseño de agentes de voz.

Protección de la privacidad del consumidor

Recomendación Detalles
Inhabilita el registro de datos en la configuración del agente para el cumplimiento del GDPR. En la configuración del agente, puedes inhabilitar el registro de interacciones en Dialogflow. Si se inhabilita esta función, no se almacenarán datos de PII en Dialogflow. Esto también significa que algunas funciones, como las estadísticas, no estarán disponibles.
Almacena los datos de las conversaciones de chat en BigQuery a fin de controlar el almacenamiento regional. A través de Cloud Logging o mediante la API de Dialogflow, puedes enviar declaraciones de chat entrantes a BigQuery. Si adoptas este enfoque, podrás controlar la región en la que deseas almacenar los datos. Además, puedes usar la API de Data Loss Prevention para enmascarar información sensible. Consulta el plano técnico para compilar la atención al cliente con la tecnología de IA en GCP.

Usa el conector de base de conocimiento

Recomendación Detalles
Cuando importes Preguntas frecuentes públicas, usa el lenguaje de marcado HTML5 válido. Por ejemplo, usa elementos de artículo con notación schema.org, como schema.org/Question y schema.org/Answer.
Asegúrate de que tu sitio web de Preguntas frecuentes esté indexado por robots de Google El sitio web deberá permitir a los robots de Google y debe agregarse al motor de Búsqueda de Google a través de la herramienta para webmasters de Google. Los sitios como pages.github no funcionarán, ya que no son accesibles.
Usa las Preguntas frecuentes de 1 a 200 Necesitas más de dos preguntas y no más de 200 por base de conocimiento. Puedes cargar varias bases de conocimiento si necesitas más.

Implementa las API de Dialogflow

Recomendación Detalles
No expongas la clave privada de tu cuenta de servicio en las bases de código del cliente para aplicaciones web o dispositivos móviles. No se considera seguro. Cualquier persona que sea hábil con las herramientas para desarrolladores de Chrome podría robar tu clave y realizar llamadas a la API (de pago) a través de tu cuenta. Siempre es mejor permitir que un servidor proxy de API controle la autenticación de Google Cloud. De esta manera, la cuenta de servicio no se expondrá al público y las claves se podrán almacenar de forma segura.}

Diseña para la voz y el texto en un agente

Recomendación Detalles
No uses SSML en respuestas de plataforma predeterminada. Cuando tu agente puede responder con voz y texto, una respuesta de texto incluirá el código de SSML sin procesar. Usa texto sin formato en la respuesta y la plataforma SSML predeterminadas de las respuestas específicas de la plataforma. De forma alternativa, puedes usar un webhook para generar SSML solo cuando se necesita una respuesta de voz.

Prueba la configuración

Recomendación Detalles
Prueba tu aplicación a fondo con alguien que no haya participado en el desarrollo. Hacer que alguien que no está familiarizado con el agente use la aplicación, te dará una idea de qué tan naturalmente fluye la conversación. Haz que presten atención a la exactitud, las pausas largas, las rutas de conversación faltantes, el ritmo, las transiciones incómodas, etcétera.
Prueba tu aplicación en todas las plataformas que planeas admitir. Si tu agente estará disponible en una o más plataformas, asegúrate de que los mensajes enriquecidos y las respuestas aparezcan como se espera en todas las plataformas.

Prácticas recomendadas para empresas

Guías de diseño de conversación adicionales