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 para diseñar agentes de voz y la guía de prácticas recomendadas para usar el servicio Dialogflow.
Antes de crear un agente
En esta sección se proporciona información que debes tener en cuenta antes de empezar a crear un agente.
Objetivo
Ten en cuenta el objetivo general de tu agente:
- ¿Qué quiere conseguir tu empresa?
- ¿Qué esperarán los usuarios de tu agente?
- ¿Con qué frecuencia interactuarán los usuarios con tu agente?
Plataforma
Piensa en cómo accederán los usuarios a tu agente. Consulta las plataformas compatibles con Dialogflow antes de crear contenido. Cuando elijas las plataformas que vas a admitir, prepara tu contenido en consecuencia. Algunas de las integraciones de la plataforma de Dialogflow admiten mensajes enriquecidos, que pueden incluir elementos como imágenes, enlaces y chips de sugerencia.
Crear agentes de forma iterativa
Si tu agente va a ser grande o complejo, empieza creando un diálogo que solo responda a las solicitudes de nivel superior. Una vez que hayas establecido la estructura básica, itera en las rutas de conversación para asegurarte de que cubres todas las rutas posibles que puede seguir un usuario.
Agentes prediseñados
Dialogflow ofrece agentes predefinidos para ayudarte a dar tus primeros pasos. Los agentes prediseñados cubren casos prácticos habituales, como reservas de hotel, navegación y compras online. Estos agentes incluyen intenciones y entidades para cubrir las consultas de los usuarios más habituales. Añade respuestas específicas para tu empresa y podrás crear rápidamente un agente funcional.
Entidades del sistema
Cuando un usuario hace una solicitud, hay información importante que analizar de lo que ha dicho. En Dialogflow, se denominan entidades. En concreto, las entidades de sistema son entidades prediseñadas que proporciona Dialogflow y que gestionan los tipos de información más habituales.
Conversaciones triviales
Al desarrollar tu conversación, puede que hayas pensado en gestionar solicitudes que no estén relacionadas con el tema. Dialogflow ofrece una función opcional llamada conversación. Si esta función está habilitada, tu agente responderá a conversaciones generales, respuestas emocionales y preguntas sobre el propio agente. Todas las respuestas de conversaciones informales se pueden personalizar para que la experiencia, ya sea informal, profesional o algo intermedio, represente a tu marca.
Prácticas recomendadas para el diseño de agentes
En esta sección se ofrece una lista de prácticas recomendadas para crear un agente sólido, preciso, eficaz y usable.
Saludos y despedidas
Práctica recomendada | Detalles |
---|---|
Los intents de bienvenida deben informar a los usuarios sobre las funciones del agente teniendo en cuenta la marca. | La intención de bienvenida de tu agente debe informar al usuario de 2 o 3 tareas para las que puede ayudarle, así como descripciones breves (si es necesario) de cómo usar estas funciones. |
Los agentes deben tener un mensaje de salida adecuado cuando se haya completado una interacción correctamente. | Cuando un usuario complete una tarea en tu agente, este debe resumir la transacción o la tarea y decir algo como "Hasta la próxima", etc. |
Aprendizaje automático y formación
Práctica recomendada | Detalles |
---|---|
Las intenciones deben tener al menos entre 10 y 20 frases de entrenamiento (en función de la complejidad de la intención). | La complejidad de tu agente determinará el número real de frases de entrenamiento que debe tener cada intención, pero entre 10 y 20 (en función de la complejidad de la intención) es un buen mínimo. Cuantos más parámetros tengas en tus intenciones, más frases deberás proporcionar para entrenar el modelo de aprendizaje automático. |
Las frases de entrenamiento deben ser variadas. | Incluye variaciones de preguntas, comandos, verbos y sinónimos de nombres comunes para asegurarte de que tus frases cubran un amplio espectro de posibles solicitudes. |
Las anotaciones deben ser coherentes. |
|
Usa anotaciones semánticamente significativas para las entidades del sistema. | El significado semántico de una parte de una frase de entrenamiento seleccionada para una anotación puede verse afectado por el resto del texto de la frase de entrenamiento. Por ejemplo:
Por ejemplo, no uses la entidad de sistema @sys.duration para anotar el primer ejemplo de "7 años" que se muestra arriba. El significado semántico de "7 años" no coincide con una duración simple. En su lugar, debes usar la entidad de sistema @sys.age . |
Las entidades personalizadas deben abarcar una amplia gama de ejemplos. | Las entidades son listas de elementos. El aprendizaje automático se encargará de las formas gramaticales, pero debes incluir todos los elementos posibles. También puedes marcar la opción Definir sinónimos e incluir algunas variaciones. |
Inhabilita el aprendizaje automático en el menor número posible de intenciones. | Las frases de entrenamiento de los intents con el aprendizaje automático inhabilitado no se usan al entrenar tu agente. Una consulta de usuario que sea muy similar a una frase de entrenamiento de una intención con el aprendizaje automático inhabilitado puede coincidir con la intención incorrecta si otras intenciones con el aprendizaje automático habilitado tienen un ligero parecido con la consulta del usuario. Si tienes problemas con los falsos positivos, aumenta el umbral de clasificación de aprendizaje automático en lugar de inhabilitarlo. |
No definas un umbral de clasificación de aprendizaje automático alto para un agente que solo tenga unos pocos datos de entrenamiento. | Si el umbral es alto y no hay muchos datos de entrenamiento, solo las consultas de los usuarios que tengan coincidencias casi exactas con las frases de entrenamiento darán lugar a coincidencias de intenciones. Si quieres que el umbral sea alto, debes proporcionar muchos datos de entrenamiento. |
Los agentes deben tener una intención de reserva. | Si no hay intents de reserva, las consultas de los usuarios que no coincidan con ningún intent darán lugar a respuestas vacías. |
Los agentes deben proporcionar ejemplos negativos. | Los ejemplos negativos evitan que las consultas de los usuarios que son ligeramente similares a las frases de entrenamiento coincidan con las intenciones por error. |
No definas entidades que coincidan con prácticamente cualquier cosa. | Esto reduce el rendimiento y la calidad del aprendizaje automático. Casi todo lo que se incluya en cada frase de entrenamiento se evaluará como una posible coincidencia. Prueba a usar @sys.any . Del mismo modo, las entidades compuestas no deben contener un solo @sys.any como sinónimo. |
No defina entidades compuestas por palabras de relleno o texto sin sentido. | Algunos ejemplos de palabras de relleno y texto sin sentido son: "hmmm", "a ver", "por favor", "¿podrías...?". Si intentas usar entidades como esta para introducir variedad, solo estarás empeorando el rendimiento del aprendizaje automático. Dialogflow ya aumenta los datos para gestionar este tipo de variedad. Deberías añadir frases como esta a tus frases de entrenamiento, no a tus entidades. |
Las entidades deben tener un ámbito limitado que capture valores distintos de un tipo de información. | Las entidades deben ser concisas, breves y sencillas. Si los valores de tus entidades son complicados, puede que las frases de entrenamiento de las intenciones se adapten mejor a tu situación. Por ejemplo, considera expresiones de usuarios finales como "¿Cómo puedo hacer una llamada internacional con el Plan A?" y "Usar la itinerancia de datos internacional con el Plan B". No crees entidades para las acciones ("How can I make an international call" y "Using international data roaming") y los planes ("Plan A" y "Plan B"). En su lugar, debes usar frases de entrenamiento y la coincidencia de intenciones para registrar las acciones y las entidades que se deben registrar en los planes. |
El texto anotado de las frases de entrenamiento debe ser variado. | Por ejemplo, si proporciona valores de tiempo que deben analizarse como @sys.time entidades del sistema en frases de entrenamiento, no proporcione el mismo tiempo en todas las frases de entrenamiento. Tus frases de entrenamiento deben incluir ejemplos de horas variados, como "las 7 de la mañana", "8 p.m.", "las nueve". |
Las intenciones con muchos parámetros también deben tener muchas frases de entrenamiento. | Por lo general, intenta tener al menos tres veces más frases de entrenamiento que parámetros y al menos entre 10 y 20 frases de entrenamiento (en función de la complejidad de la intención). |
Cada parámetro debe usarse en muchas frases de entrenamiento. | Por lo general, cada parámetro debe usarse en al menos 5 frases de entrenamiento. |
Evita usar varias entidades @sys.any en una frase de entrenamiento. |
Una frase de entrenamiento no debe contener dos @sys.any consecutivas ni un total de tres entidades @sys.any. Es posible que Dialogflow no pueda distinguirlos. |
No uses frases de entrenamiento similares en diferentes intenciones. | Los intents no deben contener frases de entrenamiento similares, ya que esto impedirá que Dialogflow aprenda a reconocerlas. |
Habilita la corrección ortográfica automática. | Si usas la entrada de texto, debes habilitar la corrección ortográfica automática. |
No anides entidades compuestas | No uses más de un nivel de anidación en las entidades compuestas. Cada nivel de anidación reduce significativamente la calidad. |
No uses caracteres especiales en las frases de entrenamiento. | Los caracteres especiales de las frases de entrenamiento, como { , _ , # y [ , se ignorarán. Los emojis son una excepción, ya que funcionan correctamente. |
Nombres de intents
Si tu agente tiene muchos intentos, te recomendamos que utilices un sistema de nomenclatura que te ayude a mantenerlos organizados. Es habitual segmentar los nombres de las intenciones con signos de puntuación, donde la especificidad aumenta de izquierda a derecha. Además, el nombre de una intención debe reflejar la intención del usuario final en una conversación.
Hay muchos buenos esquemas de nomenclatura, pero aquí tienes 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
Funciones de intención útiles
Práctica recomendada | Detalles |
---|---|
Los agentes deben admitir solicitudes contextuales. | Por ejemplo, si tu agente gestiona solicitudes sobre el tiempo y un usuario pregunta "Tiempo en San Francisco", asegúrate de añadir contextos para admitir más solicitudes, como "¿Y mañana?". |
Los agentes deben tener respuestas de seguimiento para sí, no, cancelar, siguiente, volver, etc. | Los intents de seguimiento se usan para responder a respuestas habituales. Para añadir un intent de seguimiento, coloca el cursor sobre un intent y haz clic en Añadir seguimiento. |
Los intents deben tener al menos una respuesta de texto. | La sección de respuesta se encuentra en la parte inferior de la página de la intención. Si añades variaciones, la respuesta elegida se mostrará de forma aleatoria, lo que hará que la experiencia sea menos repetitiva. |
Los agentes deben recoger toda la información necesaria para atender la solicitud de un usuario. | Plantéate hacer obligatorios los parámetros necesarios. Tu agente seguirá pidiendo información al usuario hasta que la obtenga. Esto se denomina "relleno de espacios". |
Las respuestas deben repetir la información según sea necesario, como confirmar un pedido. | Cuando un usuario haga una solicitud, como realizar un pedido o cambiar información, tu agente debe repetir lo que está sucediendo para confirmar la acción. Cuando crees estas respuestas de confirmación, asegúrate de incluir todas las combinaciones posibles de entidades y parámetros repetidos. |
Reparación de conversaciones
Práctica recomendada | Detalles |
---|---|
Los agentes deben tener peticiones de recuperación útiles para cada paso del diálogo. | Por ejemplo, si la petición inicial es "¿Qué color quieres?" y el usuario responde "loro de la selva", un intent de reserva o de seguimiento debería reformular la pregunta, como "¿Perdón, qué color era?". |
Los agentes deben tener respuestas personalizadas y específicas de la marca en la intención de reserva predeterminada. | Cuando un usuario dice algo que no coincide con ninguna intención, se activa la intención de reserva predeterminada. Debe personalizarse para reflejar su marca, así como proporcionar información para guiar al usuario a la hora de hacer una solicitud válida. |
Para ofrecer una respuesta personalizada, los agentes deben tener una intención que permita a los usuarios repetir información. | Un intent puede gestionar solicitudes como "Repítelo", "Ponlo de nuevo", etc. Puede ser un intent de seguimiento. |
Ayuda a los usuarios a conseguir sus objetivos y guíalos para que te digan exactamente lo que quieres oír como respuesta. | Por ejemplo, si ofreces opciones, no preguntes "¿Quieres A o B?". - Porque, de lo contrario, un usuario podría responder "sí". En su lugar, pregunta: "Tengo A y tengo B. ¿Cuál prefieres? |
Perfil ficticio
Práctica recomendada | Detalles |
---|---|
Las respuestas del agente deben tener un estilo y un tono que se adapten a tu marca, y deben ser coherentes en todo el agente. | Cuando los usuarios hablen con tu agente, deben tener la sensación de que están hablando con una sola persona. Asegúrate de que las cualidades y la personalidad que has elegido se reflejen en todas tus respuestas. |
Los agentes deben ser sensibles a las culturas, los géneros, las creencias religiosas, las capacidades y las edades. | Los estereotipos pueden ofender a los usuarios, incluso en chistes, y es posible que no vuelvan a tu agente. |
Diseñar para la voz
Práctica recomendada | Detalles |
---|---|
Evita el contenido que requiera visualización o interacción con el teclado y el ratón. | No uses hiperenlaces, tablas, imágenes ni abreviaturas. Puedes hacer referencia a un sitio web por su nombre. Cuando presentes una lista de opciones, devuelve la que mejor se ajuste a la consulta y pregunta al usuario si quiere oír otras opciones. |
No crees silencios incómodos. Termina siempre con una pregunta. Dirigir la conversación y fomentar las interacciones. | |
Escribe diálogos compactos que sean fáciles de entender. | En una pantalla, el texto puede ser largo y contener varios párrafos. Puedes saltarte las partes que no te interesen. Sin embargo, si un agente virtual habla durante demasiado tiempo, los usuarios no estarán contentos. |
Usar SSML | Usa SSML para estructurar y cambiar la entonación de tus frases, de modo que las voces suenen más naturales. |
Para obtener más información sobre el diseño para voz, consulta Diseño de agentes de voz.
Protección de la privacidad de los consumidores
Práctica recomendada | Detalles |
---|---|
Inhabilita el registro de datos en la configuración del agente para cumplir el RGPD. | En los ajustes del agente, puedes inhabilitar el registro de interacciones en Dialogflow. Si inhabilita esta función, no se almacenarán datos personales en Dialogflow. Esto también significa que algunas funciones, como las analíticas, no estarán disponibles. |
Almacena los datos de las conversaciones de chat en BigQuery para controlar el almacenamiento regional. | A través de Cloud Logging o mediante la API de Dialogflow, puede enviar las expresiones de chat entrantes a BigQuery. De esta forma, tendrás control sobre la región en la que quieras almacenar los datos. Además, puedes usar la API Data Loss Prevention para enmascarar la información sensible. Consulta el plan para crear un servicio de atención al cliente basado en IA en GCP. |
Usar el conector de base de conocimientos
Práctica recomendada | Detalles |
---|---|
Cuando importe preguntas frecuentes públicas, utilice un marcado HTML5 válido. | Por ejemplo, usa elementos de artículo con la notación de schema.org, como schema.org/Question y schema.org/Answer. |
Asegúrate de que el archivo robots.txt de tu sitio web de preguntas frecuentes esté indexado por Google | El sitio web debe permitir el acceso a los robots de Google y añadirse al motor de búsqueda de Google a través de la herramienta Google Webmasters. Los sitios como pages.github no funcionarán porque no se pueden rastrear. |
Usar entre 1 y 200 preguntas frecuentes | Necesitas más de un par de preguntas y respuestas, pero no más de 200 por base de conocimientos. Puedes cargar varias bases de conocimientos si necesitas más. |
Implementar las APIs de Dialogflow
Práctica recomendada | Detalles |
---|---|
No expongas la clave privada de tu cuenta de servicio en bases de código de cliente para aplicaciones móviles o web. | No se considera seguro. Cualquier persona que sepa usar las herramientas para desarrolladores de Chrome podría robar tu clave y hacer llamadas a la API (de pago) a través de tu cuenta. Es mejor dejar que un servidor proxy de API gestione siempre la autenticación de Google Cloud. De esta forma, la cuenta de servicio no estará expuesta públicamente y las claves se podrán almacenar de forma segura.} |
Diseñar un agente para voz y texto
Práctica recomendada | Detalles |
---|---|
No uses SSML en las respuestas predeterminadas de la plataforma. | Cuando tu agente pueda responder con voz y texto, la respuesta de texto incluirá el código SSML sin formato. Usa texto sin formato en la respuesta predeterminada de la plataforma y SSML en las respuestas específicas de la plataforma. También puedes usar un webhook para generar SSML solo cuando sea necesaria una respuesta de voz. |
Pruebas
Práctica recomendada | Detalles |
---|---|
Prueba tu aplicación a fondo con alguien que no haya participado en su desarrollo. | Si una persona que no esté familiarizada con el agente usa la aplicación, podrás ver cómo fluye la conversación de forma natural. Pídeles que se fijen en la precisión, las pausas largas, las rutas de conversación que faltan, el ritmo, las transiciones incómodas, etc. |
Prueba tu aplicación en todas las plataformas en las que quieras que esté disponible. | Si tu agente estará disponible en una o varias plataformas, asegúrate de que los mensajes enriquecidos y las respuestas se muestren correctamente en todas las plataformas. |
Prácticas recomendadas para empresas
- Consulta el Google Cloud Well-Architected Framework.
Guías adicionales de diseño de conversaciones
- Consulta la guía de diseño de conversaciones que ofrece el equipo de Actions on Google.
- Consulta la guía de SSML que ha elaborado el equipo de Actions on Google.