Partilhar via


Configure a entrega a qualquer hub de cativação genérico

O Copilot Studio permite-lhe entregar conversas de agente de forma totalmente integrada e contextualmente a um agente humano através de um hub de cativação.

Com alguma programação personalizada, pode configurar o seu agente para entregar conversas a qualquer hub de cativação. Este guia descreve como pode fazê-lo.

Pré-requisitos

Importante

Algumas instruções nesta secção requerem programação de software da sua parte de ou dos seus programadores. Destina-se a profissionais de TI experientes, como administradores de TI ou programadores que tenham uma compreensão sólida de ferramentas de programação, utilitários e IDEs, que pretendam integrar hubs de cativação de terceiros com o Copilot Studio.

Visão geral

Captura de tela do fluxo de dados do adaptador genérico para transferência para um hub de engajamento.

Uma entrega completa para um hub de cativação segue este padrão:

  1. Um cliente interage com a tela de chat do hub de cativação.
  2. O hub de cativação encaminha o chat de entrada através das capacidades de encaminhamento de chat incorporadas num agente.
  3. Um adaptador personalizado reencaminha as mensagens de chat recebidas do hub de cativação para um bot do agente do Copilot Studio.
  4. Assim que o cliente acionar a entrega, o Copilot Studio inicia a entrega com contexto de conversa completo.
  5. O adaptador personalizado interceta a mensagem de entrega, analisa todo o contexto da conversa e encaminha de forma totalmente integrada a conversa escalada para um agente humano qualificado, com base na disponibilidade.
  6. O chat do cliente é entregue de forma totalmente integrada e contextualmente a um agente humano que pode retomar a conversa.

Para entregar a conversa a um agente humano, é preciso construir um adaptador de entrega personalizado.

Criar um adaptador de entrega personalizado

Um adaptador faz a ponte entre conversas de e para o seu centro de cativação de agentes, reencaminhando e transformando mensagens entre clientes, agentes e agentes humanos.

Os hubs de cativação de agentes mais populares fornecem kits de desenvolvimento de software (SDKs) ou documentam publicamente as suas APIs, permitindo-lhe criar esses adaptadores.

Está fora do âmbito deste documento cobrir o que um adaptador personalizado pode conter. No entanto, a seguinte mensagem de entrega de amostra, com base no que o Copilot Studio gera como parte de nossa entrega padrão para uma experiência de agente em direto, pode ajudá-lo a começar.

Estes fragmentos de código e exemplos permitem extrair o contexto da conversa para distribuir de forma totalmente integrada e contextualmente conversas de agentes para qualquer hub de cativação genérico.

Payload da mensagem de entrega de amostra

Atualmente, a entrega só é suportada através de Direct Line. Obtenha mais informações sobre como interagir com um agente através de Direct Line. Após a entrega, uma atividade de evento chamada handoff.initiate é criada e enviada para o adaptador.

Pode ver uma atividade de mensagem de entrega de amostra completa no nosso site GitHub.

Extrair contexto da mensagem de entrega

Para utilizar contexto de conversa, deve analisar a atividade do evento handoff.initiate. O seguinte fragmento de código analisa a atividade do evento handoff.initiate e extrai o contexto de conversa. 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>
    }
}