Transição de conversas de bot para humano

APLICA-SE A: SDK v4

Independentemente da quantidade de inteligência artificial que um bot possui, ele ainda pode precisar passar a conversa para um ser humano. Essa transferência pode ser necessária se o bot não entender o usuário (por causa de uma limitação de IA), ou se a solicitação não puder ser automatizada e exigir uma ação humana. Nesses casos, o bot deve reconhecer quando precisa entregar a conversa e fornecer ao usuário uma transição suave.

O Microsoft Bot Framework é uma plataforma aberta que permite que os desenvolvedores se integrem a várias plataformas de envolvimento de agentes.

Modelos de integração Handoff

O Microsoft Bot Framework suporta dois modelos para integração com plataformas de envolvimento de agentes. O protocolo de transferência é idêntico para ambos os modelos, no entanto, os detalhes de integração diferem entre os modelos e as plataformas de envolvimento do agente.

O objetivo não é oferecer uma solução universal para integração com o sistema de qualquer cliente, mas sim fornecer uma linguagem comum e melhores práticas para desenvolvedores de bots e integradores de sistemas com os quais construir sistemas de IA conversacionais com um humano no loop.

Bot como agente

No primeiro modelo, conhecido como bot como agente, o bot se junta às fileiras dos agentes ao vivo conectados ao hub do agente e responde às solicitações do usuário como se as solicitações viessem de qualquer outro canal do Bot Framework. A conversa entre o usuário e o bot pode ser escalada para um agente humano, momento em que o bot se desliga da conversa ativa.

A principal vantagem desse modelo é sua simplicidade — você pode adicionar um bot existente ao hub do agente com o mínimo de esforço, e o hub do agente lidará com a complexidade do roteamento de mensagens.

Diagram of an agent hub that can direct messages to a bot or human agents.

Bot como proxy

O segundo modelo é conhecido como bot como proxy. O usuário fala diretamente com o bot, até que o bot decida que precisa da ajuda de um agente humano. O componente do roteador de mensagens no bot redireciona a conversa para o hub do agente, que a envia para o agente apropriado. O bot permanece no loop e pode coletar a transcrição da conversa, filtrar mensagens ou fornecer conteúdo adicional para o agente e o usuário.

Flexibilidade e controlo são as principais vantagens deste modelo. O bot pode suportar vários canais e ter controle sobre como as conversas são escaladas e roteadas entre o usuário, o bot e o hub do agente.

Diagram of a bot that can route messages to an agent hub.

Protocolo de transferência

O protocolo é centrado em eventos para iniciação, enviados pelo bot para o canal, e atualização de status, enviada pelo canal para o bot.

Iniciação Handoff

Um evento de iniciação de handoff é criado pelo bot para iniciar o handoff.

O evento pode incluir:

  • O contexto da solicitação de transferência, para encaminhar a conversa para um agente apropriado.
  • Uma transcrição da conversa, para que um agente possa ler a conversa que ocorreu entre o cliente e o bot antes da transferência ser iniciada.

A seguir estão as propriedades comuns do evento de iniciação de handoff:

  • Name: Obrigatório, a propriedade name deve ser definida como "handoff.initiate".

  • Conversação: Obrigatório, a propriedade conversation descreve a conversa na qual a atividade existe. A conversa deve incluir a conversa Id.

  • Value: opcional, a propriedade value pode conter conteúdo JSON específico do hub do agente que o hub pode usar para rotear a conversa para um agente relevante.

  • Anexos: Opcionalmente, a propriedade attachments pode incluir uma transcrição como anexo. O Bot Framework define um tipo de anexo de transcrição . Um anexo pode ser enviado em linha (sujeito a um limite de tamanho) ou offline fornecendo ContentUrl.

    handoffEvent.Attachments = new List<Attachment> {
        new Attachment {
            Content = transcript,
            ContentType = "application/json",
            Name = "Transcript",
        }
    };
    

    Nota

    Os hubs de agente devem ignorar os tipos de anexo que não entendem.

Quando um bot deteta a necessidade de entregar a conversa a um agente, ele sinaliza sua intenção enviando um evento de iniciação de entrega. O SDK para C# inclui um método para criar um CreateHandoffInitiation evento de iniciação de transferência válido.

var activities = GetRecentActivities();
var handoffContext = new { Skill = "credit cards" };
var handoffEvent =
    EventFactory.CreateHandoffInitiation(
        turnContext, handoffContext, new Transcript(activities));
await turnContext.SendActivityAsync(handoffEvent);

Estado de transferência

Um evento de status de transferência é enviado ao bot pelo hub do agente. O evento informa o bot sobre o status da operação de transferência iniciada.

Nota

Os bots não são obrigados a lidar com um evento de status de transferência, no entanto, eles não devem rejeitá-lo.

A seguir estão os campos comuns do evento de status de transferência:

  • Nome: Obrigatório, a propriedade name deve ser definida como "handoff.status".

  • Conversação: Obrigatório, a propriedade conversation descreve a conversa na qual a atividade existe. A conversa deve incluir a conversa Id.

  • Value: Required, a propriedade value que descreve o status atual da operação de handoff. O valor tem as seguintes propriedades.

    • State: Obrigatório, a propriedade state pode ter um destes valores:

      Valor Significado
      "aceito" Um agente aceitou o pedido e assumiu o controle da conversa.
      "falhou" O pedido de transferência falhou. A propriedade message pode conter informações adicionais relevantes para a falha.
      "concluído" O pedido de transferência foi concluído.
    • Mensagem: Opcional, a propriedade message é um objeto definido pelo hub do agente.

    Aqui estão alguns exemplos de objetos de valor:

    { "state" : "completed" }
    
    { "state" : "failed", "message" : "Can't find agent with requested skill" }
    

Biblioteca Handoff

A Biblioteca Handoff foi criada para complementar o SDK do Bot Framework v4 no suporte à transferência, especificamente:

  • Implementa as adições ao SDK do Bot Framework para dar suporte à transferência para um agente (também conhecido como escalonamento).
  • Contém definições de três tipos de eventos para operações de transferência de sinalização.

Nota

As integrações com hubs de agente específicos não fazem parte da biblioteca.

Recursos adicionais