Práticas recomendadas gerais de design de agentes

Neste guia, apresentamos as práticas recomendadas gerais para projetar todos os tipos de agentes.

Consulte também o guia de design de agentes de voz especificamente para projetar agentes de voz e o guia de práticas recomendadas para usar o serviço do Dialogflow.

Antes de criar um agente

Nesta seção, fornecemos as informações que você precisa considerar antes de começar a criar um agente.

Objetivo

Considere o objetivo geral do seu agente:

  • O que sua empresa quer conquistar?
  • O que os usuários esperam do seu agente?
  • Com que frequência os usuários interagirão com seu agente?

Plataforma

Pense como os usuários acessarão o agente. Analise as plataformas compatíveis com o Dialogflow antes de criar conteúdo. Prepare seu conteúdo de acordo com a escolha das plataformas compatíveis. Algumas das integrações de plataforma do Dialogflow aceitam mensagens avançadas, que podem incluir elementos como imagens, links e fragmentos de sugestões.

Criar agentes de modo iterativo

Caso seu agente seja grande ou complexo, comece criando um diálogo que atenda apenas às solicitações de nível superior. Depois de estabelecer a estrutura básica, itere os caminhos de conversa para garantir que todas as rotas possíveis que um usuário pode seguir foram incluídas.

Agentes pré-criados

O Dialogflow oferece agentes pré-criados para ajudar você a começar. Os agentes pré-criados abrangem casos de uso comuns, como reserva de hotéis, navegação e compras on-line. Eles vêm com intents e entidades que englobam as consultas de usuários mais comuns. Inclua respostas específicas à sua empresa e você criará um agente funcional rapidamente.

Entidades do sistema

Quando um usuário faz uma solicitação, há informações importantes para analisar o que foi solicitado. No Dialogflow, elas são chamadas de entidades. Em particular, as entidades do sistema são entidades pré-criadas fornecidas pelo Dialogflow para processar os tipos de informações mais conhecidos.

Small talk

Ao desenvolver o diálogo, podemos também incluir solicitações que não têm relação com o tópico principal. O Dialogflow oferece um recurso opcional chamado small talk. Ative esse recurso para que seu agente responda a assuntos gerais, reações emocionais e perguntas sobre o próprio agente. É possível personalizar todas as respostas desse recurso para garantir que a experiência seja casual, profissional ou uma mistura de ambos, de modo a representar sua marca.

Práticas recomendadas de projeto do agente

Nesta seção, apresentamos uma lista de práticas recomendadas para um agente robusto, preciso, eficiente e utilizável.

Saudações e despedidas

Prática recomendada Detalhes
As intents de boas-vindas precisam informar os usuários sobre os recursos do agente levando a marca em consideração. A intent de boas-vindas do seu agente precisa informar ao usuário sobre duas ou três tarefas com que o agente pode ajudar, além de fornecer descrições breves sobre como usar os recursos, conforme necessário.
Os agentes precisam ter uma mensagem de despedida adequada quando uma interação bem-sucedida tiver terminado. Quando um usuário conclui uma tarefa, o agente precisa resumir a transação/tarefa e dizer algo como “Até a próxima”.

Machine learning e treinamento

Prática recomendada Detalhes
As intents precisam ter pelo menos de 10 a 20 frases de treinamento (dependendo da complexidade). A complexidade do agente determinará o número real de frases de treinamento que cada intent precisa ter, mas entre 10 e 20 (dependendo da complexidade da intent) é um bom mínimo. Quanto mais parâmetros as intents tiverem, mais frases você precisará fornecer para treinar o modelo de machine learning.
As frases de treinamento precisam ser variadas. Inclua variações de perguntas, comandos, verbos e sinônimos de substantivos comuns para garantir que as frases englobem um amplo espectro de solicitações possíveis.
As anotações precisam ser consistentes.
  • Avalie suas frases de treinamento e verifique se as anotações destacadas apontam para as entidades corretas.
  • Não é necessário ter texto em frases de treinamento anotadas em alguns casos, mas não em outros.
  • O intervalo de texto selecionado para uma anotação precisa incluir todo o texto necessário para corresponder a uma entidade e não mais que isso.
  • Verifique se o texto anotado em várias frases de treinamento contém partes semelhantes. Por exemplo, suponha que você tem uma frase de treinamento "Definir alarme às 6h", em que "6h" é anotado como @sys.date. Se você tiver uma frase de treinamento "acorde-me às 7h", anote "7h", mas não anote "às 7h".
Use anotações semanticamente significativas para entidades do sistema. O significado semântico de uma parte da frase de treinamento selecionada para uma anotação pode ser afetado pelo restante do texto em uma frase de treinamento. Por exemplo:
  • Tenho 7 anos de idade (o significado semântico do texto anotado é a idade da pessoa)
  • O contrato é válido por 7 anos (o significado semântico do texto anotado é uma duração)
Os modelos de machine learning do Dialogflow consideram o significado semântico ao fazer a correspondência com entidades do sistema. O significado semântico da parte da frase de treinamento precisa corresponder ao significado semântico pretendido da entidade do sistema.

Por exemplo, não use a entidade do sistema @sys.duration para anotação do primeiro exemplo de "7 anos" acima. O significado semântico de "7 anos" não corresponde a uma duração de tempo simples. Em vez disso, use a entidade do sistema @sys.age.
As entidades personalizadas devem abranger uma grande diversidade de exemplos. As entidades são listas de itens. O machine learning cuidará das classes gramaticais, mas é necessário incluir todos os itens possíveis. Além disso, marque a opção definir sinônimos e inclua algumas variações.
Desative o ML para o menor número possível de intents. Frases de treinamento para intents com o ML desativado não são usadas durante o treino de seu agente. Uma consulta de usuário muito semelhante a uma frase de treinamento em uma intent com o ML desativado pode ser correspondida à intent errada se outras intents com o ML ativado tiverem uma leve semelhança com a consulta do usuário. Se você estiver com problemas com falsos positivos, aumente o limiar de classificação do ML em vez de desabilitá-lo.
Não defina um limiar de classificação do ML alto para um agente com apenas alguns dados de treinamento. Se o limiar for alto e não houver muitos dados de treinamento, somente as consultas de usuários que tiverem correspondências quase exatas às frases de treinamento resultarão em correspondência de intents. É preciso fornecer muitos dados de treinamento se você quiser um limiar alto.
Os agentes precisam ter uma intent de fallback. Sem as intents de fallback, as consultas de usuário sem correspondência resultarão em respostas vazias.
Os agentes precisam fornecer exemplos negativos. Exemplos negativos impedem que haja correspondências não intencionais de intents nas consultas do usuário que são um pouco semelhantes às frases de treinamento.
Não defina entidades que correspondam a praticamente tudo. Isso degrada o desempenho e a qualidade do ML. Quase tudo em cada frase de treinamento será avaliado como uma correspondência possível. Considere o uso de @sys.any em vez disso. Da mesma forma, entidades compostas não podem conter um único @sys.any como sinônimo.
Não defina entidades compostas de pausas discursivas ou texto sem sentido. Exemplos de pausas discursivas e texto sem sentido são: "hmmm", "vamos ver", "por favor" e "você poderia". Se você estiver tentando usar entidades como essa para introduzir uma variedade, estará apenas degradando o desempenho do ML. O Dialogflow já aumenta os dados para lidar com uma variedade como essa. Adicione frases como essa nas frases de treinamento, não nas entidades.
As entidades precisam ter um escopo limitado que capture valores distintos de um tipo de informação. Mantenha suas entidades focadas, curtas e simples. Se os valores de entidade forem complicados, talvez as frases de treinamento de intent sejam mais adequadas para sua situação. Por exemplo, considere estas expressões de usuário final: "Como posso fazer uma chamada internacional com o plano A?" e "Uso de roaming de dados internacional com o plano B". Não crie entidades para as ações ("Como posso fazer uma chamada internacional" e "Uso de roaming de dados internacional") e os planos ("Plano A", "Plano B"). Em vez disso, use frases de treinamento e correspondência de intent para detectar as ações/entidades e os planos.
O texto anotado nas frases de treinamento precisa ter variedade. Por exemplo, se você fornece valores de tempo que precisam ser analisados como entidades de sistema @sys.time em frases de treinamento, não forneça o mesmo horário em todas essas frases. As frases de treinamento precisam ter uma variedade de exemplos de horários como: "7h", "20h" e "9 horas".
Intents com muitos parâmetros também precisam ter muitas frases de treinamento. Como regra, tente ter pelo menos três vezes mais frases de treinamento do que parâmetros. O recomendado é ter, no mínimo, 10 a 20 frases de treinamento (dependendo da complexidade da intent).
Cada parâmetro precisa ser usado em muitas frases de treinamento. Como regra, cada parâmetro precisa ser usado em pelo menos cinco frases de treinamento.
Evite usar várias entidades @sys.any em uma frase de treinamento. Uma frase de treinamento não pode conter duas entidades @sys.any consecutivas ou um total de três entidades @sys.any. O Dialogflow pode não conseguir distingui-las.
Não use frases de treinamento semelhantes em intents diferentes. Intents diferentes não precisam conter frases de treinamento similares, porque isso evitará que o Dialogflow aprenda a reconhecer essas frases.
Ative a correção ortográfica automática. Se você estiver usando entrada de texto, será preciso ativar a correção automática de ortografia.
Não aninhe entidades compostas. Não use mais de um nível de aninhamento em entidades compostas. Cada nível de aninhamento degrada a qualidade de modo significativo.
Evite caracteres especiais em frases de treinamento. Caracteres especiais em frases de treinamento, como {, _, # e [ serão ignorados. Emojis são uma exceção. Eles funcionam como esperado.

Nomeação de intents

Caso seu agente tenha muitas intents, considere um esquema de nomenclatura que ajude a mantê-las organizadas. É comum segmentar nomes de intents com pontuação, em que a especificidade aumenta da esquerda para a direita. Além disso, o nome da intent precisa refletir a intenção do usuário final de fazer uma conversa.

Há ótimas esquemas de nomenclatura. Veja alguns exemplo a seguir:

  • 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

Recursos úteis para intents

Prática recomendada Detalhes
Os agentes precisam aceitar solicitações contextuais. Por exemplo, caso seu agente processe solicitações sobre a previsão do tempo e um usuário diga "Tempo em São Francisco", adicione contextos para aceitar outras solicitações, como "E amanhã?".
Os agentes precisam ter continuidades para "sim", "não", "cancelar", "avançar", "voltar" etc. As intents de continuidade são usadas para responder a respostas comuns. Para adicionar uma intent de continuidade, passe o mouse sobre uma intent e clique em Adicionar continuidade.
As intents precisam ter pelo menos uma resposta de texto. A seção de resposta está na parte inferior da página de intents. Adicionar variações embaralhará a resposta escolhida, criando uma experiência menos repetitiva.
Os agentes precisam coletar todas as informações necessárias para atender à solicitação do usuário. Pense em definir os parâmetros obrigatórios necessários. O agente continuará a fazer solicitações ao usuário até conseguir as informações necessárias. Isso é chamado de preenchimento de slot.
As respostas precisam repetir informações conforme necessário, como confirmar um pedido. Quando um usuário faz uma solicitação, como um pedido ou alteração de informações, o agente precisa repetir o que está acontecendo para fins de confirmação. Ao criar essas respostas de confirmação, inclua todas as combinações possíveis de entidades e parâmetros repetidos.

Correção da conversa

Prática recomendada Detalhes
Os agentes precisam ter prompts de recuperação úteis para cada etapa do diálogo. Por exemplo, se o prompt inicial for "Que cor você quer?" e o usuário responder com "papagaio da selva", um intent de continuidade/fallback precisa reformular a pergunta, como "Desculpe, qual é a cor?".
Os agentes precisam ter respostas personalizadas e específicas para a marca no intent de fallback padrão. Quando um usuário diz algo que não corresponde a uma intent, a correspondência é feita com a intent de fallback padrão. Ela precisa ser personalizada para refletir sua marca, bem como fornecer informações que orientam o usuário a fazer uma solicitação válida.
Para fulfillment personalizado, os agentes precisam ter uma intent que permita aos usuários repetir informações. Uma intent pode processar solicitações como “fale de novo”, “repita”, “reproduza novamente” etc. Essa pode ser uma intent de continuidade.
Ajude os usuários a ter sucesso, leve-os a dizer exatamente o que você gostaria de ouvir como resposta. Por exemplo: se você fornecer opções, não pergunte "Quer A ou B?" - porque um usuário pode responder "sim". Em vez disso, pergunte: "Eu tenho A e eu tenho B. Qual seu herói favorito?

Perfil

Prática recomendada Detalhes
As respostas dos agentes precisam ter estilo e tom adequados à marca e ser consistentes. À medida que os usuários conversam com o agente, o ideal é que eles tenham a impressão de que estão conversando com uma pessoa. Verifique se a personalidade e as qualidades escolhidas estão representadas em todas as respostas.
Os agentes precisam ser conscientes em relação a culturas, gêneros, crenças religiosas, deficiências e idades. Estereótipos podem ofender os usuários, mesmo em piadas, fazendo com que eles deixem de usar seu agente.

Como desenvolver um design para a voz

Prática recomendada Detalhes
Evite conteúdo que exija visualização ou interação com teclado e mouse. Não use hiperlinks, tabelas, imagens e abreviações. Você pode consultar um website por nome. Ao apresentar uma lista de opções, retorne a melhor correspondência e pergunte se o usuário quer ouvir opções alternativas.
Não crie silêncios estranhos. Sempre termine com uma pergunta. Incentive a conversa e inicie as interações.
Crie diálogos compactos e fáceis de entender. Em uma tela, o texto pode ser longo e conter vários parágrafos. Ignore as partes que não são interessantes para você. Porém, ouvir um agente virtual que fala por muito tempo não deixa os usuários felizes.
Use o SSML Use o SSML para estruturar e alterar a entonação das suas frases, para que as vozes fiquem mais naturais.

Para mais informações sobre design para voz, consulte Design do agente de voz.

Proteção da privacidade do consumidor

Prática recomendada Detalhes
Desative a geração de registros de dados nas configurações do agente para a conformidade com o GDPR. Nas configurações do agente, é possível desativar a geração de registros de interações no Dialogflow. Ao desativar esse recurso, nenhum dado de PII será armazenado no Dialogflow. Isso também significa que determinados recursos, como a análise, não estarão disponíveis.
Armazene dados de conversas de bate-papo no BigQuery para ter controle sobre o armazenamento regional. Por meio do Cloud Logging ou da API Dialogflow, é possível enviar expressões de bate-papo de entrada para o BigQuery. Ao adotar essa abordagem, você terá controle sobre a região em que quer armazenar os dados. Além disso, você pode usar a API Data Loss Prevention para mascarar informações confidenciais. Consulte o projeto para criar um serviço ao cliente com IA no GCP.

Como usar o conector da base de conhecimento

Prática recomendada Detalhes
Ao importar perguntas frequentes públicas, use marcação HTML5 válida. Por exemplo, use elementos de artigo com a notação schema.org, como schema.org/Question e schema.org/Answer.
Verifique se seu site de perguntas frequentes está indexado pelo Google Robots O site precisará permitir que o Google Robots seja adicionado ao mecanismo de pesquisa do Google por meio da ferramenta do Google para webmasters. Sites como pages.github não funcionarão, porque não são ágeis.
Use de uma a 200 perguntas frequentes Você precisa de mais de um par de perguntas e respostas e não mais de 200 por base de conhecimento. Você pode carregar várias bancos de conhecimento se precisar de mais.

Como implementar APIs do Dialogflow

Prática recomendada Detalhes
Não exponha a chave privada da conta de serviço em codebase do cliente para aplicativos móveis ou da Web. Isso não é considerado seguro. Qualquer pessoa que use as ferramentas do Chrome Dev poderá roubar sua chave e fazer chamadas de API (assinadas) por meio da sua conta. Sempre é melhor deixar que um servidor proxy de API lide com a autenticação do Google Cloud. Dessa forma, a conta de serviço não será exposta ao público e as chaves poderão ser armazenadas com segurança.

Como desenvolver um design para voz e texto em um agente

Prática recomendada Detalhes
Não use a SSML nas respostas de plataforma padrão. Quando o agente pode responder com voz e texto, uma resposta de texto incluirá o código SSML bruto. Use texto simples na resposta padrão da plataforma e SSML em respostas específicas da plataforma. Como alternativa, você pode usar um webhook para gerar o SSML somente quando uma resposta de voz for necessária.

testes

Prática recomendada Detalhes
Teste seu aplicativo completamente com alguém que não esteve envolvido no desenvolvimento. Pedir a alguém que não está familiarizado com o agente para usar o aplicativo trará insights sobre como as conversas fluem naturalmente. Peça à essa pessoa que preste atenção na precisão, nas pausas longas, na falta de caminhos de conversa, no ritmo, nas transições estranhas etc.
Teste seu aplicativo em todas as plataformas em que você queira que haja compatibilidade. Se o agente estiver disponível em uma ou mais plataformas, verifique se respostas e mensagens avançadas serão exibidas como esperado em todas as plataformas.

Práticas empresariais recomendadas

Guias de criação de conversas extras