Práticas recomendadas gerais de design de agentes

Este guia fornece práticas recomendadas gerais para a conceção de todos os tipos de agentes.

Também deve consultar o guia de design de agentes de voz especificamente para criar agentes de voz e o guia de práticas recomendadas para usar o serviço Dialogflow.

Antes de criar um agente

Esta secção fornece informações que deve considerar antes de começar a criar um agente.

Objetivo

Considere o objetivo geral do seu agente:

  • O que é que a sua empresa está a tentar alcançar?
  • O que é que os seus utilizadores vão esperar do seu agente?
  • Com que frequência os utilizadores vão interagir com o seu agente?

Plataforma

Considere como os utilizadores vão aceder ao seu agente. Reveja as plataformas suportadas pelo Dialogflow antes de criar conteúdo. Quando escolhe plataformas para suportar, prepare o seu conteúdo em conformidade. Algumas das integrações de plataformas do Dialogflow suportam mensagens formatadas que podem incluir elementos como imagens, links e chips de sugestões.

Crie agentes iterativamente

Se o seu agente for grande ou complexo, comece por criar uma caixa de diálogo que apenas responda aos pedidos de nível superior. Assim que a estrutura básica estiver estabelecida, itere nos caminhos de conversa para garantir que abrange todos os caminhos possíveis que um utilizador pode seguir.

Agentes pré-criados

O Dialogflow oferece agentes pré-criados para ajudar a começar. Os agentes pré-criados abrangem exemplos de utilização comuns, como a reserva de hotéis, a navegação e as compras online. Estes agentes incluem intenções e entidades para abranger as consultas de utilizadores mais comuns. Adicione respostas específicas à sua empresa e crie rapidamente um agente funcional.

Entidades do sistema

Quando um utilizador faz um pedido, existem informações importantes a analisar a partir do que disse. No Dialogflow, estes elementos são denominados entidades. Em particular, as entidades do sistema são entidades pré-criadas fornecidas pelo Dialogflow que processam os tipos de informações mais populares.

Conversa de circunstância

Ao desenvolver o seu diálogo, pode ter considerado processar pedidos fora do tópico. O Dialogflow oferece uma funcionalidade opcional denominada conversa informal. Com esta funcionalidade ativada, o seu agente responde a conversas gerais, respostas emocionais e perguntas sobre o próprio agente. Todas as respostas de conversa informal podem ser personalizadas para garantir que a experiência, quer seja casual, profissional ou algo intermédio, é representativa da sua marca.

Práticas recomendadas de design de agentes

Esta secção fornece uma lista de práticas recomendadas para um agente robusto, preciso, com bom desempenho e útil.

Saudações e despedidas

Prática recomendada Detalhes
As intenções de boas-vindas devem informar os utilizadores sobre as capacidades do agente tendo em conta o branding. A intenção de boas-vindas do seu agente deve informar o utilizador de 2 a 3 tarefas com as quais o agente pode ajudar, bem como breves descrições (conforme necessário) de como usar estas funcionalidades.
Os agentes devem ter uma mensagem de saída adequada quando uma interação bem-sucedida terminar. Quando um utilizador conclui uma tarefa no seu agente, este deve resumir a transação/tarefa e dizer algo como "Até à próxima", etc.

Aprendizagem automática e formação

Prática recomendada Detalhes
Os objetivos devem ter, pelo menos, 10 a 20 expressões de preparação (consoante a complexidade do objetivo). A complexidade do seu agente determina o número real de frases de preparação que cada intenção deve ter, mas 10 a 20 (dependendo da complexidade da intenção) é um bom mínimo. Quanto mais parâmetros tiver nas suas intenções, mais expressões deve fornecer para preparar o modelo de aprendizagem automática.
As expressões de treino devem ser variadas. Inclua variações de perguntas, comandos, verbos e sinónimos para substantivos comuns para garantir que as suas expressões abrangem um amplo espetro de possíveis pedidos.
As anotações devem ser consistentes.
  • Reveja as expressões de treino e certifique-se de que as anotações realçadas apontam para as entidades corretas.
  • Não deve ter texto em expressões de preparação que seja anotado em alguns casos, mas não noutros.
  • O intervalo de texto selecionado para uma anotação deve incluir todo o texto necessário para corresponder a uma entidade e não mais do que isso.
  • Certifique-se de que o texto anotado em várias expressões de preparação contém partes semelhantes da expressão de preparação. Por exemplo, considere que tem uma expressão de treino "Define um alarme para as 06:00", em que "06:00" está anotado como @sys.date. Se tiver outra expressão de comando "acorda-me às 7 da manhã", anote "7 da manhã", mas não anote "acorda-me às 7 da manhã".
Use anotações semanticamente significativas para entidades do sistema. O significado semântico de uma parte da expressão de preparação selecionada para uma anotação pode ser afetado pelo resto do texto numa expressão de preparação. Por exemplo:
  • Tenho 7 anos (o significado semântico do texto anotado é a idade de uma pessoa)
  • O contrato é válido durante 7 anos (o significado semântico do texto anotado é uma duração)
Os modelos de aprendizagem automática do Dialogflow consideram o significado semântico quando fazem a correspondência de entidades do sistema. O significado semântico da parte da expressão de treino tem de corresponder ao significado semântico pretendido da entidade do sistema.

Por exemplo, não use a entidade do sistema @sys.duration para a anotação do primeiro exemplo "7 anos" acima. O significado semântico de "7 anos" não corresponde a uma duração simples. Em alternativa, deve usar a entidade do sistema @sys.age.
As entidades personalizadas devem abranger uma vasta gama de exemplos. As entidades são listas de itens. A aprendizagem automática cuida das formas gramaticais, mas tem de incluir todos os itens possíveis. Além disso, selecione a opção Definir sinónimos e inclua algumas variações.
Desative a aprendizagem automática para o menor número possível de intenções. As expressões de preparação para intenções com a ML desativada não são usadas quando prepara o seu agente. Uma consulta do utilizador muito semelhante a uma expressão de preparação num objetivo com a aprendizagem automática desativada pode ser associada ao objetivo errado se outros objetivos com a aprendizagem automática ativada tiverem uma ligeira semelhança com a consulta do utilizador. Se estiver a ter problemas com falsos positivos, aumente o limiar de classificação da aprendizagem automática em vez de desativar a aprendizagem automática.
Não defina um limiar de classificação de ML elevado para um agente com poucos dados de preparação. Se o limite for elevado e não existirem muitos dados de preparação, apenas as consultas de utilizadores que tenham correspondências quase exatas com as expressões de preparação resultam na correspondência de intenções. Tem de fornecer muitos dados de preparação se quiser um limite elevado.
Os agentes devem ter um intento alternativo. Sem intenções alternativas, as consultas de utilizadores não correspondentes resultam em respostas vazias.
Os agentes devem fornecer exemplos negativos. Os exemplos negativos impedem que as consultas de utilizadores ligeiramente semelhantes às expressões de preparação correspondam involuntariamente a intenções.
Não defina entidades que correspondam a praticamente tudo. Isto degrada o desempenho e a qualidade da aprendizagem automática. Quase tudo em cada frase de preparação é avaliado como uma possível correspondência. Em alternativa, considere usar @sys.any. Da mesma forma, as entidades compostas não devem conter um único @sys.any como sinónimo.
Não defina entidades compostas por palavras desnecessárias ou texto sem significado. Exemplos de palavras de preenchimento e texto sem significado: "hmmm", "vamos ver", "por favor", "pode". Se estiver a tentar usar entidades como esta para introduzir variedade, está apenas a degradar o desempenho da aprendizagem automática. O Dialogflow já aumenta os dados para processar a variedade deste tipo. Deve adicionar expressões como esta às suas expressões de preparação e não às suas entidades.
As entidades devem ter um âmbito limitado que capture valores distintos de um tipo de informação. Mantenha as suas entidades focadas, curtas e simples. Se os valores das entidades forem complicados, pode dever-se ao facto de as expressões de preparação de intenções serem mais adequadas à sua situação. Por exemplo, considere expressões do utilizador final como "Como posso fazer uma chamada internacional com o plano A?" e "Usar roaming de dados internacional com o plano B". Não crie entidades para as ações ("Como posso fazer uma chamada internacional" e "Usar roaming de dados internacional") e os planos ("Plano A", "Plano B"). Em alternativa, deve usar expressões de treino e correspondência de intenções para captar as ações e as entidades para captar os planos.
O texto anotado nas expressões de preparação deve ter variedade. Por exemplo, se estiver a fornecer valores de tempo que devem ser analisados como entidades do sistema nas expressões de preparação, não forneça o mesmo tempo em todas as expressões de preparação.@sys.time As suas expressões de preparação devem ter vários exemplos de horas, como: "7 da manhã", "8 p.m.", "9 o'clock" (9 horas).
Os comandos com muitos parâmetros também devem ter muitas expressões de preparação. Por norma, tente ter, pelo menos, três vezes mais expressões de preparação do que parâmetros e, pelo menos, 10 a 20 expressões de preparação (consoante a complexidade da intenção).
Cada parâmetro deve ser usado em muitas expressões de preparação. Por norma, cada parâmetro deve ser usado em, pelo menos, 5 expressões de preparação.
Evite usar várias entidades @sys.any numa expressão de preparação. Uma expressão de preparação não deve conter dois @sys.any consecutivos nem um total de três entidades @sys.any. O Dialogflow pode não conseguir distingui-los.
Não use expressões de preparação semelhantes em intenções diferentes. As intenções diferentes não devem conter expressões de preparação semelhantes, porque isso impede o Dialogflow de aprender a reconhecer essas expressões.
Ativar correção ortográfica automática. Se estiver a usar a entrada de texto, deve ativar a correção ortográfica automática.
Não aninhe entidades compostas Não use mais do que um nível de aninhamento em entidades compostas. Cada nível de aninhamento degrada significativamente a qualidade.
Evite carateres especiais em expressões de preparação. Os carateres especiais nas expressões de preparação, como {, _, # e [, são ignorados. Os emojis são uma exceção e funcionam conforme esperado.

Nomenclatura de intenções

Se o seu agente tiver muitas intenções, deve considerar um esquema de nomenclatura que ajude a mantê-las organizadas. É comum segmentar os nomes de intenções com pontuação, em que a especificidade aumenta da esquerda para a direita. Além disso, um nome de intenção deve refletir a intenção do utilizador final para uma interação de conversa.

Existem muitos bons esquemas de nomenclatura, mas aqui está um exemplo:

  • 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

Funcionalidades de intenção úteis

Prática recomendada Detalhes
Os agentes devem suportar pedidos contextuais. Por exemplo, se o seu agente processar pedidos sobre o tempo e um utilizador perguntar "Qual é o tempo em São Francisco?", certifique-se de que adiciona contextos para suportar pedidos adicionais, como "E amanhã?"
Os agentes devem ter seguimentos para sim, não, cancelar, seguinte, anterior, etc. As intenções de seguimento são usadas para responder a respostas comuns. Para adicionar um objetivo de acompanhamento, passe o cursor do rato sobre um objetivo e clique em Adicionar acompanhamento.
Os comandos devem ter, pelo menos, uma resposta de texto. A secção de resposta encontra-se na parte inferior da página da intenção. A adição de variações muda a ordem da resposta escolhida, o que torna a experiência menos repetitiva.
Os agentes devem recolher todas as informações necessárias para satisfazer o pedido de um utilizador. Considere tornar os parâmetros necessários. O agente continua a pedir informações ao utilizador até obter as informações necessárias. A isto chama-se preenchimento de espaços.
As respostas devem repetir as informações conforme necessário, como confirmar uma encomenda. Quando um utilizador faz um pedido, como fazer uma encomenda ou alterar informações, o seu agente deve repetir o que está a acontecer para fins de confirmação. Ao criar estas respostas de confirmação, certifique-se de que inclui todas as combinações possíveis de entidades e parâmetros repetidos.

Reparação de conversas

Prática recomendada Detalhes
Os agentes devem ter comandos de recuperação úteis para cada passo da caixa de diálogo. Por exemplo, se o comando inicial for "Que cor quer?" e o utilizador responder "papagaio da selva", um intento de alternativa/seguimento deve reformular a pergunta, como "Desculpe, que cor disse?"
Os agentes devem ter respostas personalizadas e específicas da marca na intenção de alternativa predefinida. Quando um utilizador diz algo que não corresponde a uma intenção, é feita a correspondência com a intenção alternativa predefinida. Deve ser personalizado para refletir a sua marca, bem como fornecer informações para orientar o utilizador a fazer um pedido válido.
Para o processamento personalizado, os agentes devem ter uma intenção que permita aos utilizadores repetir informações. Um objetivo pode processar pedidos como "diz isso novamente", "repete isso", "toca isso novamente", etc. Este pode ser um objetivo de seguimento.
Ajudar os utilizadores a ter sucesso, orientá-los para dizer exatamente o que quer ouvir como resposta Por exemplo, se fornecer opções, não pergunte "Quer A ou B?". – Porque, nesse caso, um utilizador poderia responder "sim". Em alternativa, pergunte: "Tenho A e tenho B. Qual prefere?

Perfil

Prática recomendada Detalhes
As respostas do agente devem ter um estilo e um tom adequados à sua marca e ser consistentes em todo o agente. À medida que os utilizadores conversam com o seu agente, devem sentir que estão a falar com uma única personagem. Certifique-se de que as qualidades e a personalidade que escolheu estão representadas em todas as suas respostas.
Os agentes devem ser sensíveis em relação a culturas, géneros, crenças religiosas, capacidades e idades. Os estereótipos podem ofender os utilizadores, mesmo em piadas, e estes podem não voltar a interagir com o seu agente.

Conceber para a voz

Prática recomendada Detalhes
Evite conteúdo que exija visualização ou interação com teclado e rato. Não use hiperligações, tabelas, imagens nem abreviaturas. Pode referir-se a um Website pelo nome. Quando apresentar uma lista de opções, devolva a melhor correspondência e pergunte se o utilizador quer ouvir opções alternativas.
Não crie silêncios constrangedores. Termine sempre com uma pergunta. Orientar a conversa e iniciar as interações.
Escreva diálogos compactos e fáceis de compreender. Num ecrã, o texto pode ser longo e conter vários parágrafos. Pode ignorar as partes que não lhe interessam. No entanto, ouvir um agente virtual a falar durante demasiado tempo não vai agradar aos seus utilizadores.
Use SSML Use SSML para estruturar e alterar a entoação das suas frases, para que as vozes soem mais naturais.

Para mais informações sobre a conceção para voz, consulte o artigo Conceção de agentes de voz.

Proteção da privacidade do consumidor

Prática recomendada Detalhes
Desative o registo de dados nas definições do agente para conformidade com o RGPD. Nas definições do agente, pode desativar o registo de interações no Dialogflow. Se desativar esta funcionalidade, não são armazenados dados PII no Dialogflow. Isto também significa que determinadas funcionalidades, como as estatísticas, não vão estar disponíveis.
Armazene dados de conversas de chat no BigQuery para ter controlo sobre o armazenamento regional. Através do Cloud Logging ou da API Dialogflow, pode enviar expressões de chat recebidas para o BigQuery. Ao adotar esta abordagem, tem controlo sobre a região onde quer armazenar os dados. Além disso, pode usar a API Data Loss Prevention para ocultar informações confidenciais. Consulte o projeto para criar um serviço de apoio ao cliente com tecnologia de IA na GCP.

Usar o conetor da base de conhecimentos

Prática recomendada Detalhes
Quando importar Perguntas frequentes públicas, use uma marcação HTML5 válida. Por exemplo, use elementos de artigos com a notação schema.org, como schema.org/Question e schema.org/Answer.
Certifique-se de que o seu Website de Perguntas frequentes está indexado pelos robôs do Google O Website tem de permitir o acesso aos robôs do Google e tem de ser adicionado ao motor de pesquisa Google através da ferramenta Google Webmasters. Os sites como pages.github não funcionam porque não são rastreáveis.
Use 1 a 200 Perguntas frequentes Precisa de mais de um par de perguntas e respostas e não mais de 200 por base de conhecimentos. Pode carregar várias bases de conhecimentos se precisar de mais.

Implementar APIs Dialogflow

Prática recomendada Detalhes
Não exponha a chave privada da conta de serviço em bases de código de cliente para aplicações Web ou para dispositivos móveis. Isto não é considerado seguro. Qualquer pessoa com conhecimentos das ferramentas de programador do Chrome pode roubar a sua chave e fazer chamadas de API (pagas) através da sua conta. É uma abordagem melhor deixar sempre que um servidor proxy de API processe a autenticação do Google Cloud. Desta forma, a conta de serviço não fica exposta ao público, e as chaves podem ser armazenadas em segurança.}

Conceber para voz e texto num único agente

Prática recomendada Detalhes
Não use SSML em respostas predefinidas da plataforma. Quando o seu agente pode responder com voz e texto, uma resposta de texto inclui o código SSML não processado. Use texto simples na resposta da plataforma predefinida e SSML em respostas específicas da plataforma. Em alternativa, pode usar um webhook para gerar SSML apenas quando for necessária uma resposta de voz.

Testes

Prática recomendada Detalhes
Teste exaustivamente a app com alguém que não tenha estado envolvido no respetivo desenvolvimento. Pedir a alguém que não esteja familiarizado com o agente para usar a app dá-lhe informações sobre o fluxo natural da conversa. Peça-lhes que verifiquem a precisão, as pausas longas, os caminhos de conversa em falta, o ritmo, as transições estranhas, etc.
Teste a sua app em todas as plataformas que planeia suportar. Se o seu agente estiver disponível numa ou mais plataformas, certifique-se de que as mensagens multimédia e as respostas são apresentadas conforme esperado em todas as plataformas.

Práticas recomendadas para empresas

Guias de design de conversas adicionais