Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Note
Este artigo descreve recursos usados em agentes ou fluxos de agente da plataforma do agente padrão.
O Copilot Studio permite que você transfira conversas de agente de forma contínua e contextual a um agente humano por meio de um hub de engajamento.
Usando desenvolvimento personalizado, você pode configurar seu agente para transferir conversas para qualquer hub de engajamento.
Prerequisites
- Você construiu seu agente usando o Copilot Studio.
- Você precisa de um hub de engajamento que possa interagir programaticamente usando APIs ou SDKs.
Important
Este artigo requer algumas habilidades de desenvolvimento de software. As etapas neste artigo são para profissionais de TI experientes com uma compreensão sólida de ferramentas de desenvolvedor, utilitários e IDEs (ambientes de desenvolvimento integrado).
Visão geral
Captura de tela do fluxo de dados do adaptador genérico para transferência a um hub de engajamento.
Uma transferência completa para um hub de engajamento segue este padrão:
- Um cliente interage com a tela de conversa do hub de interação.
- O hub de engajamento direciona o chat recebido por meio de funcionalidades integradas de roteamento de chat para um agente.
- Um adaptador personalizado retransmite as mensagens de conversa recebidas do hub de interação para um agente do Copilot Studio.
- Quando o cliente inicia a transferência, o Copilot Studio começa a transferência com o contexto conversacional completo.
- O adaptador personalizado intercepta a mensagem de entrega, analisa o contexto completo da conversa e roteia diretamente a conversa escalada para um agente humano qualificado, com base na disponibilidade.
- O chat do cliente é transmitido sem interrupções e com contexto a um agente humano, que pode retomar a conversa.
Para entregar a conversa a um agente humano, você precisa criar um adaptador de transferência personalizado.
Criar um adaptador de entrega personalizado
Um adaptador une as conversas do hub de interação do agente e para ele, retransmitindo e transformando mensagens entre clientes, agentes e agentes humanos.
Os hubs de interação mais populares do agente fornecem kits de desenvolvimento de software (SDKs) ou documentam suas APIs publicamente, permitindo que você crie esses adaptadores.
Este documento não aborda o que um adaptador personalizado pode conter. No entanto, a seguinte mensagem de entrega de exemplo, com base no que o Copilot Studio gera como parte de nossa entrega padrão para uma experiência de agente humano, pode ajudá-lo a começar.
Esses exemplos e trechos de código permitem que você extraia o contexto da conversa para transferir, de maneira contínua e contextualizada, as conversas do agente para qualquer hub de interação genérico.
Conteúdo de mensagem de exemplo de entrega
Atualmente, Handoff suporta apenas Direct Line. Para obter mais informações, consulte como interagir com um agente pelo Direct Line. Quando você inicia a transferência, o adaptador gera e envia uma atividade de evento denominada handoff.initiate.
Você pode ver um exemplo completo da atividade de entrega de mensagens em nosso site do GitHub.
Extrair contexto da mensagem de entrega
Para usar o contexto conversacional, analise a atividade do evento handoff.initiate.
O trecho de código a seguir analisa a handoff.initiate atividade do evento e extrai o contexto conversacional. Consulte o exemplo de código completo no GitHub.
public void InitiateHandoff(string botresponseJson)
{
BotResponse response = JsonConvert.DeserializeObject<BotResponse>(botresponseJson);
// Look for Handoff Initiate Activity. This indicates that conversation needs to be handed off to agent
Activity handoffInitiateActivity = response.Activities.ToList().FirstOrDefault(
item => string.Equals(item.Type, ActivityTypes.Event, System.StringComparison.Ordinal)
&& string.Equals(item.Name, HandoffInitiateActivityName, System.StringComparison.Ordinal));
if (handoffInitiateActivity != null)
{
// Read transcript from attachment
if (handoffInitiateActivity.Attachments?.Any() == true)
{
Attachment transcriptAttachment = handoffInitiateActivity.Attachments.FirstOrDefault(a => string.Equals(a.Name.ToLowerInvariant(), TranscriptAttachmentName, System.StringComparison.Ordinal));
if (transcriptAttachment != null)
{
Transcript transcript = JsonConvert.DeserializeObject<Transcript>(transcriptAttachment.Content.ToString());
}
}
// Read handoff context
HandoffContext context = JsonConvert.DeserializeObject<HandoffContext>(handoffInitiateActivity.Value.ToString());
// Connect to Agent Hub
// <YOUR CUSTOM ADAPTER CODE GOES HERE>
}
}