Compartir vía


Configurar la transferencia a un centro de interacción genérico

Importante

Las capacidades y características de Power Virtual Agents son ahora parte de Microsoft Copilot Studio tras importantes inversiones en IA generativa e integraciones mejoradas en Microsoft Copilot.

Algunos artículos y capturas de pantalla pueden hacer referencia a Power Virtual Agents mientras actualizamos la documentación y el contenido de capacitación.

Copilot Studio le permite transferir conversaciones de copiloto de manera ágil y contextual a un agente humano a través de un centro de interacción.

Con un desarrollo personalizado, puede configurar su copiloto para transferir conversaciones a cualquier centro de interacción. Esta guía describe cómo puede hacer esto.

Requisitos previos

Importante

Las instrucciones de esta sección requieren que usted o sus desarrolladores realicen tareas de desarrollo de software. Está destinado a profesionales de TI con experiencia, como administradores de TI o desarrolladores que tienen una sólida comprensión de las herramientas de desarrollo, las utilidades y los entornos de desarrollo integrado (IDE) y que consideren integrar centros de interacción de terceros con Copilot Studio.

Introducción

ILUSTRACIÓN QUE MUESTRA EL FLUJO DE DATOS DEL ADAPTADOR GENÉRICO.

Una transferencia completa a un centro de interacción sigue este patrón:

  1. Un usuario final interactúa con el lienzo de chat del centro de interacción.

  2. El centro de interacción enruta el chat entrante a través de capacidades de enrutamiento de chat integradas a un copiloto.

  3. Un adaptador personalizado transmite mensajes de chat entrantes desde el centro de interacción a un copiloto de Copilot Studio.

  4. Una vez que el usuario final desencadene la transferencia, Copilot Studio comienza la transferencia con un contexto de conversación completo.

  5. El adaptador personalizado intercepta el mensaje de transferencia, analiza el contexto completo de la conversación y enruta sin problemas la conversación derivada a un agente humano experto, según la disponibilidad.

  6. El chat del usuario final se transfiere de manera ágil y contextual a un agente humano que puede reanudar la conversación.

Para transferir la conversación a un agente humano, debe crear un adaptador de transferencias personalizado.

Cree un adaptador de transferencias personalizado

Un adaptador conecta las conversaciones hacia y desde su centro de interacción con el agente al transmitir y transformar mensajes entre usuarios finales, copilotos y agentes humanos.

Los centros de participación de agentes más populares proporcionan SDK o documentan sus API públicamente, lo que le permite construir dichos adaptadores.

Si bien está fuera del alcance de este documento cubrir lo que podría contener un adaptador personalizado, el siguiente mensaje de transferencia de muestra, basado en qué genera Copilot Studio como parte de nuestro traspaso estándar a una experiencia de agente de chat, puede ayudarlo a comenzar.

Estos fragmentos y ejemplos de código le permiten extraer el contexto de la conversación del copiloto para pasar con agilidad y de forma contextual las conversaciones del copiloto a cualquier centro de interacción genérico.

Ejemplo de carga útil de mensajes de transferencia

El traspaso solo se admite actualmente a través de Direct Line. Obtenga más información sobre interactuar con un copiloto en Direct Line. Tras la transferencia, una actividad de evento llamada handoff.initiate se eleva y se envía al adaptador.

Puede ver un ejemplo completo de actividad de mensajes de transferencia en nuestro sitio de GitHub.

Extraer contexto del mensaje de transferencia

Para usar contexto conversacional, debe analizar la actividad del evento handoff.initiate del evento. El siguiente fragmento de código analiza la actividad del evento handoff.initiate y extrae el contexto conversacional. Vea el ejemplo completo de código en 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>
    }
}