Hola amigos de CodigoFacilito, durante las últimas semanas se lanzaron 2 cursos increíbles para la creación de Agentes Inteligentes (Chatbots), los cuales nos muestran una nueva forma de interacción con nuestros dispositivos mediante el procesamiento de voz a texto y viceversa.
Es común que al comenzar con estas tecnologías encontremos un mar de confusión en cuanto a términos y conceptos que si bien en el desarrollo móvil no aparecen, la idea de desarrollo y diseño centrado en el usuario es algo que permea durante la evolución de nuestros prototipos/productos.
Tal y como nos lo dice la Guía de Diseño Conversacional que proporciona Google, es un área que requiere basta experiencia en diseño en todos sus derivados: visual, de movimiento y de experiencia conversacional. Es por ello que Google propone sus principios para el diseño de conversaciones. Y es que no los culpo, realmente diseñar una conversación efectiva es complejo cuando intentamos no parecer un robot y aparentar ser otro ser humano más con el que platicas por chat.
Éste principio se conoce como The Cooperative Principle el cuál justamente nos habla de cómo diseñar conversaciones cómodas, fluidas y agradables al usuario.
De acuerdo con este principio la comunicación eficiente se basa en el supuesto de que hay una cooperación mutua e implícita.
Este principio podemos resumirlo en 4 reglas principales, llamadas Grice's Maxims y es que no busquemos hacer traducciones forzadas por que pueden resultarnos muy incómodas para definir.
Cooperación Instintiva en términos de... | Maxim (Regla) |
---|---|
... la verdad de lo que decimos | Regla de Calidad |
... la cantidad de información que proporcionamos | Regla de Cantidad |
... la relevancia de lo que aportamos | Regla de Relenvancia |
... la forma en que nos esforzamos por comunicarnos con claridad, sin ambigüedades | Regla de la Manera |
La investigación ha demostrado que las personas se comunican con la tecnología como si se tratase de otro humano. Lo que significa que los usuarios confian en su estructura de comunicación de persona a persona y siguen el Principio Cooperativo incluso cuando interactúan con un agente inteligente esperando que éste les responda.
Un ejemplo sencillo de éste fenómeno es cuando tratamos de entablar una conversación con Siri, sabemos que es incapaz de mantener un diálogo, no hay una respuesta consecutiva, sin embargo nuestro instinto de comunicación humana nos lleva a querer hacerlo.
Ahora, éstas reglas nos ayudan a entender cómo podemos diseñar una conversación efectiva, fluida y relevante. Ya que una conversación tiene como base los cuestionamientos, sin embargo sólo son la base y no queremos que nuestro usuario se sienta entrevistado.
Debemos asegurarnos de que nos proporcione por lo menos toda la información que nosotros necesitamos, sin embargo no podemos hacer un formulario dentro de un Agente, ya que no es su objetivo, al menos no el principal. Todo esto puede resultar muy complicado cuando no tenemos las herramientas o incluso somos un poco introvertidos y nuestras conversaciones resulten incomodas y poco fluidas en la vida real.
¿Han notado cómo reaccionamos al hablar de algo que nos APASIONA?
Nuestro tono de voz cambia, tenemos otras expresiones faciales, no paramos de hablar. Somos usuarios cooperativos por naturaleza y depende del contexto para que podamos sentirnos lo suficientemente cómodos para expresarnos libremente. Precisamente eso es lo que buscamos al tomarnos el tiempo para diseñar una conversación.
Sí, lo sé, somos programadores, no hacemos eso... tranquilos les traigo algunos tips que seguramente les ayudarán no solo a sus Agentes.
Define un objetivo para tu Agente
Para comenzar es necesario plantearnos las siguientes preguntas, lo que nos ayudará a entender que debemos hacer y disminuir la ambigüedad en el flujo de nuestra conversación.
- ¿Cuál es el principal propósito de tu Agente? * Es un agente de ventas, de reserva, de caracter informativo, de asistencia, etc.
- ¿Cuáles son las acciones que puede realizar? * Reservas, Compras, Consultas, Consumo de 3eros, Llamadas, etc.
- ¿A quién va dirgido? * Es decir, quienes son las personas que lo van a usar.
- ¿Cuál es el canal principal de comunicación? * De todas las integraciones con las que cuenta DialogFlow, cuál es la que mayor uso tendrá, puede ser messenger o slack, etc. Dependiendo del público al que esté dirigido.
Diseña una persona
Una vez definido el que, para que y por que, debemos establecer algunos posibles casos de uso de nuestro Agente, para ello podemos auxiliarnos de un template que proporciona Google para el diseño de una persona. Es importante realizarlo ya que nos ayuda a comprender mejor el contexto en el que nuestro agente funcionará y del que aprenderá. Podemos establecer la personalidad de nuestro agente, el vocabulario y podemos definir la plataforma en la que funcionará.
Plantilla Basta con hacer click en Make a Copy y tendrán su propia versión.
Durante este proceso también podemos establecer algunos puntos importantes de la conversación.
Conversación
Una vez que nuestro agente se define, podemos hablar de como escribir una conversación, tal vez hasta este punto ya estén ansiosos por programar su agente, aunque no lo crean la experiencia me ha enseñado que entre más detallado este mi agente y mejor estructurado lo tenga, la programación es cosa de minutos. Por que ya solo es pasar a código todo lo que ya está definido, dándome la oportunidad de corregir antes y no sobre producción.
Lo más sencillo para diseñarlo es una hoja de papel y lápiz, puedes auxiliarte de un procesador de textos, etc. La finalidad aquí es realizar una conversación normal como si fueran dos personas platicando. Dependiendo del tipo de Agente te puedes auxiliar de algunos hacks extra como por ej:
Agente de Reserva: * Suelo llamar por telefono a dos hoteles y grabar la conversación de una reservación. * También utilizo plataformas y apps para revisar el flujo de interacción.
Atención a Clientes: * Contesto las llamadas de cambio de telefonía jajaja * Hago una queja por redes sociales * Acudo a una sucursal a quejarme de algo
Pedidos en Línea: * Llamo por telefono para hacer un pedido * Acudo a sucursal (Para ver la diferencia) * Pruebo algunos servicios de Agentes que ya estan disponibles (Dominos) * Hago la simulación del proceso de compra
Así podríamos seguir para cada uno aunque el concepto ya quedo más claro, es realmente sencillo obtener todo el flujo al que nuestros usuarios ya están acostumbrados y cómo podemos mejorarlo o bien, adaptarlo a lo que necesitamos hacer.
Lenguaje
Si bien es parte del diseño del Agente y de la conversación, hay que prestar atención a estos detalles, ya que son simples y descuidarlos puede costarnos o no el mantener la conversación.
No es lo mismo un Agente de Reportes a un Agente de Compras, por lo que debemos extremar precauciones al momento de establecer el lenguaje que nuestro Agente puede entender. Cuando definimos al Agente sabemos como debe hablar y comunicarse, sin embargo nuestros usuarios dependiendo de la región, del país incluso siendo el mismo idioma tendrán diferentes formas de expresar lo mismo.
Para ello les recomiendo establecer un buen alcance, algo que el Agente pueda comprender y conforme interactúe aprenda nuevos sinónimos, siempre es importante darle una revisada y aplicar ciertos filtros o capas para que no aprenda cosas que no debe.
Humaniza al Agente
Los agentes no son formularios o cuestionarios, son asistentes que poseen cierto grado de inteligencia y esperamos que pasen desapercibidos, es decir, pensar que alguién realmente está detrás de la pantalla y no un robot limitado lleno de errores.
Una regla importante es que los agentes no se equivocan, los humanos lo hacemos sin embargo cuando conversamos no decimos "Lo siento, no me puedo conectar a la base de datos intenta más tarde", imaginen lo raro que nos veríamos, así pues funciona con nuestros agentes, aún cuando no debemos tener errores, puede llegar a suceder y debemos estar listos para ello. La forma más simple es proporcionando al usuario nuevas opciones para continuar, "Lo siento, podrías repetirlo", es definitivamente mejor a el primer ejemplo.
Podemos encontrar una larga lista de ejemplos aquí.
Conclusión
Como mencioné anteriormente, puede ser que todo esto resulte un proceso largo y talvez innecesario, sin embargo si ustedes se toman el tiempo de realizarlo al momento de pasar a codificarlo, ya tienen todo resuelto y además tienen una forma más sencilla de escalar su proyecto, en caso de que requieran agregar más módulos a la estructura.
No soy ninguna experta en Agentes, sólo una persona que se equivocó bastante e intenta que ustedes no pasen por lo mismo, en temas de conversación hay mucho por dónde explorar y mejorar, ¿Qué es lo que determinará que plataforma usar?, la respuesta siempre será DEPENDE, ¿De qué? de todo lo que hemos visto el día de hoy, entre algunos otros factores que descubrirán después.
Si te interesó el tema y quieres profundizar un poco más en CódigoFacilito tenemos 2 cursos para que aprendas desde cero y sin conocimientos previos a construir tus propios Agentes.
Espero leernos o encontrarnos en próximos cursos, eventos o artículos.