Integrowanie agenta zarządzania przypadkami z niestandardowymi agentami programu Copilot Studio

Agent zarządzania przypadkami integruje się z niestandardowymi agentami sztucznej inteligencji wbudowanymi w programie Microsoft Copilot Studio, aby autonomicznie obsługiwać przypadki obsługi klienta. Ta integracja umożliwia automatyczne przetwarzanie przypadków, w którym agent zarządzania przypadkami współpracuje z niestandardowym agentem w celu rozwiązywania problemów klientów podczas konwersacji przypadków, zmniejszając nakład pracy ręcznej i skracając czasy odpowiedzi. Integracja obsługuje zarówno w pełni autonomiczne, jak i częściowo autonomiczne scenariusze rozwiązywania przypadków, umożliwiając organizacjom dostosowanie przepływów pracy do zarządzania przypadkami w celu spełnienia określonych potrzeb biznesowych.

Wymagania wstępne

  • Autonomiczne rozpoznawanie przypadków jest włączone dla agenta zarządzania przypadkami.
  • Zamierzenie jest włączone dla Agenta Zarządzania Sprawami.
  • Niestandardowy agent AI jest tworzony w Microsoft Copilot Studio i dodawany do określonego celu w centrum administracyjnym usługi Copilot Service.

Jak działa integracja

  1. W przypadku przychodzącego e-maila powiązanego ze sprawą Case Management Agent identyfikuje intencję i uruchamia niestandardowego agenta powiązanego z tą intencją. Agent niestandardowy wykorzystuje kontrakt wejściowy do pobierania szczegółów sprawy i kontekstu z Dataverse.

  2. Agent niestandardowy zwraca wiadomość zgodną z kontraktem wyjściowym. Agent zarządzania sprawami odczytuje tylko ostatnią wiadomość zwróconą przez agenta niestandardowego.

  3. Na podstawie odpowiedzi agenta niestandardowego, Agent Zarządzania Sprawą podejmuje następujące działania.

    Scenario Wyjście niestandardowego agenta Działanie Agenta ds. Zarządzania Sprawą
    Agent niestandardowy potrzebuje więcej informacji od klienta. Question Przygotowuje lub wysyła pytanie zgodnie z skonfigurowanym trybem automatyzacji. Przekaz można by sformułować inaczej. Po odpowiedzi klienta ponownie wywołaj niestandardowego agenta z zaktualizowanym kontekstem sprawy.
    Agent niestandardowy przekazuje komunikat o rozwiązaniu problemu. Resolved Tworzy wersję roboczą lub wysyła wiadomość dosłownie, bez przeformułowania jej za pomocą modelu językowego. Sprawa pozostaje otwarta; każdy skonfigurowany proces działań następczych i zamknięcia jest oddzielny.
    Agent niestandardowy nie jest w stanie rozwiązać problemu. UnableToResolve Sprawa może zostać przekazana do kolejki konsultanta.
    Agent niestandardowy wykonuje swoje zadanie bez konieczności dalszych działań. NoAction Nie podejmuje żadnych działań kolejnych i nie wprowadza zmian w sprawie.
    Agent niestandardowy prosi o zamknięcie sprawy. ResolveCase Wysyła wiadomość, jeśli zostanie przekazana, a następnie zamyka sprawę.
    Niestandardowy agent potrzebuje czasu na wykonanie pracy asynchronicznej. Wait Pozostaje bezczynny, podczas gdy agent niestandardowy kończy pracę. Agent niestandardowy następnie wywołuje msdyn_invokeCaseProcessingAgent z parametrem customAgentOutput i typem odpowiedzi innym niż Wait. Zobacz Zwracanie wyniku asynchronicznego niestandardowego agenta.

W przypadku interakcji z klientem tryb w pełni autonomiczny wysyła e-mail automatycznie. Tryb półautonomiczny tworzy szkic dla przedstawiciela obsługi klienta do sprawdzenia i wysłania.

Przez cały proces Agent Zarządzania Sprawami używa tego samego identyfikatora rozmowy do interakcji z niestandardowym agentem dla sprawy (Conversation.Id).

Umowa wejściowa

Case Management Agent obsługuje oba formaty wejściowe: tylko caseId, lub caseId z odpowiednim kontekstem. Gdy przełącznik funkcji CustomAgentInputContractV2 jest wyłączony, Case Management Agent wysyła tylko caseId. Gdy jest włączony, Case Management Agent zawiera dodatkowy kontekst. Zaprojektuj agenta tak, aby akceptował oba formaty wejściowe i tolerował dodatkowe pola JSON.

Tylko ID sprawy

Agent ds. zarządzania sprawą wysyła identyfikator sprawy do Twojego agenta niestandardowego w następującym formacie. Twój niestandardowy agent używa tego ID do pobierania szczegółów sprawy i kontekstu z Dataverse.

{
  "caseId": "<case-id>"
}

Po odpowiedzi klienta na pytanie, Agent Zarządzania Przypadkami ponownie wywołuje Twojego niestandardowego agenta z tym samym identyfikatorem sprawy. Twój agent niestandardowy pobiera zaktualizowane informacje o sprawach z Dataverse i kontynuuje swój przepływ pracy. Przykład pokazuje tę interakcję.

Identyfikator sprawy z odpowiednim kontekstem

Dane wejściowe zawierają ten sam identyfikator przypadku, wraz z odpowiednim kontekstem przypadku, źródła i intencji. Twój agent niestandardowy może wykorzystać dostarczony kontekst i pobrać wszelkie dodatkowe szczegóły sprawy z Dataverse.

Poniższy przykład pokazuje ten format wejściowy.

{
  "caseId": "2e581856-b213-f111-8342-7c1e525424d8",
  "caseEntityName": "incident",
  "ticketNumber": "CAS-01160-R9D5W0",
  "sourceContext": {
    "entityName": "email",
    "entityId": "ac909a43-b213-f111-8342-7c1e5254ad6e"
  },
  "intentContext": {
    "name": "Password Reset",
    "attributes": [
      {
        "name": "Account Email",
        "answer": "user@contoso.com"
      }
    ]
  },
  "automationLevel": "Full",
  "version": "1.0"
}

Poniższa tabela opisuje pola wejściowe, gdy dodany jest dodatkowy kontekst.

Pole Typ Required Description
caseId String (GUID) Yes Identyfikator sprawy. Użyj go do pobierania szczegółów sprawy przez konektory Dataverse.
caseEntityName String Yes Logiczna nazwa tabeli przypadków, zazwyczaj incident. Obsługiwane są niestandardowe tabele wielkości liter.
ticketNumber String No Numer zgłoszenia dla zgłoszenia w standardowej tabeli zgłoszeń. Nie występuje to w przypadku niestandardowych tabel wielkości liter.
sourceContext.entityName String No Logiczna nazwa tabeli, która spowodowała wywołanie, zazwyczaj email.
sourceContext.entityId String (GUID) No Identyfikator wyzwalającego e-maila lub innego rekordu.
intentContext.name String Yes Intencja zidentyfikowana przez silnik intencji.
intentContext.attributes Tablica obiektów No Odpowiedzi atrybutu intencji zebrane do tej pory. Każdy obiekt zawiera name oraz answer.
automationLevel String Yes Skonfigurowany tryb automatyzacji: Full, Semi, lub Shadow.
version String Yes Wersja umowy, obecnie "1.0".

Kontrakt wyjściowy

Zwróć obiekt JSON z responseType i opcjonalnymi polami potrzebnymi dla twojego scenariusza. Poniższy przykład zawiera opcjonalne pola dla odpowiedzi strony trzeciej lub asynchronicznej. Pomiń customAgentName i environmentId dla standardowej integracji synchronicznej.

{
  "responseType": "Resolved",
  "message": "<agent output>",
  "handlingOptions": {
    "needsReview": "true"
  },
  "templateId": "<template-guid>",
  "templateGroupId": "<language-group-guid>",
  "customAgentName": "<agent-schema-name>",
  "environmentId": "<environment-id>"
}

Poniższa tabela opisuje pola wyjściowe.

Pole Typ Required Description
responseType String Yes Jeden z Resolved, Question, UnableToResolve, ResolveCase, Wait lub NoAction. To jedyne obowiązkowe pole wyjściowe.
message String No Wiadomość dla klienta. Dla Resolved, komunikat jest używany dosłownie. Dla Question, można to sformułować inaczej.
handlingOptions.needsReview String No Użyj "true", aby wymagać reprezentatywnej weryfikacji dla Question lub Resolved. Obsługiwane wartości to ciągi "true" i "false". Jeśli zostanie pominięte, obowiązują ustawienia wielkości liter skonfigurowane przez administratora.
templateId String (GUID) No Szablon e-maila do użycia zamiast domyślnego szablonu.
templateGroupId String (GUID) No Identyfikator grupy językowej używany do wyboru szablonu odpowiadającego kodowi języka sprawy (LCID). Ma pierwszeństwo przed templateId. Wymaga przełącznika CustomAgentEmailTemplateGroupEnabled funkcji, który domyślnie jest wyłączony.
customAgentName String No Nazwa schematu agenta używana do identyfikacji odpowiadającego agenta w śladzie audytowym dla odpowiedzi stron trzecich lub asynchronicznych. Nie ustawiaj tego dla standardowej integracji synchronicznej.
environmentId String No W przypadku odpowiedzi zewnętrznych lub asynchronicznych identyfikuje środowisko Power Platform, które hostuje niestandardowego agenta. Pomiń ją lub używaj pustej wartości, gdy agent znajduje się w tym samym środowisku.

Important

Nie ustawiaj handlingOptions na null. Pomiń to, gdy nie musisz określać obsługi przeglądu.

Example

W takim przypadku klient prosi o zwrot pieniędzy za ostatnie zamówienie.

  1. Klient wysyła e-mail z identyfikatorem ID sprawy 12345 o prośbie zwrotu kosztów.

  2. Agent zarządzania sprawą przetwarza e-maila i rozpoznał „zwrot” jako intencję oraz uruchamia niestandardowego agenta AI na podstawie następujących danych:

    {
      "caseId": "12345"
    }
    
  3. Agent niestandardowy wyszukuje szczegóły sprawy i zdaje sobie sprawę, że potrzebuje kwoty zwrotu. Odpowiada:

    {
      "responseType": "Question",
      "message": "Could you please confirm the refund amount?"
    }
    
  4. Agent zarządzania przypadkami wysyła do klienta wiadomość e-mail w celu potwierdzenia kwoty zwrotu.

  5. Po odpowiedzi klienta Agent Zarządzania Sprawą ponownie wywołuje niestandardowego agenta z tym samym ID sprawy co wejście:

    {
      "caseId": "12345"
    }
    
  6. Agent dedykowany przetwarza zwrot kosztów i odpowiada:

    {
      "responseType": "Resolved",
      "message": "Refund has been processed successfully."
    }
    
  7. Agent ds. zarządzania sprawą wysyła wiadomość w niezmienionej formie, potwierdzając, że zwrot środków został przetworzony. Odpowiedź Resolved pozostawia sprawę otwartą. Jeśli zostanie skonfigurowana obsługa następcza i zamknięcie sprawy, ten proces może skontaktować się z klientem, a następnie rozwiązać sprawę.