I samband med AI-agenter avser uppfyllande utförandet av uppgifter som involverar interaktion med externa system för att hämta, manipulera eller lagra data via API: er. I den här artikeln beskrivs exempelagenten som skapats för spårning av paket. Du kan använda den här agentmallen när du skapar en ny AI-agent för digitala interaktioner och röstinteraktioner.

För digitala kanaler måste uppfyllandet orkestreras via det anslutningsflöde som används för att distribuera AI-agenten. Med exemplet med en paketspårningsagent, som du kan importera från en mall när du skapar en ny skriptad agent, är flödet också tillgängligt för import när du skapar ett nytt Webex Connect flöde. Förutom uppfyllelse dirigerar det här anslutningsflödet även användaren till olika agentköer baserat på deras senaste avsikt.

  1. När du är klar med konfigurationen av den skriptade agenten identifierar du svaren som måste uppfyllas.

    I exempelagenten krävs uppfyllelse för "trackPackageResponse".

  2. I dessa mallar konfigurerar du ett "väntelägessvar" som visas för användaren medan uppfyllelsen sker.

    I det här exemplet konfigureras ett väntande svar för "trackPackageResponse".

  3. I flödet använder du en dataparsernod för att parsa agentsessionens metadata (utdatavariabel) från AI-agentens svar för att hämta svarsnamnet.

    Du kan hämta exempelindata för dataparsernoden genom att ladda ned transaktionsinformation från sessioner genom att välja lämplig transaktion och välja värdet för nyckeln "generatedDf" från den nedladdade filen.

  4. Om du vill göra avsiktsbaserad routning vid tidpunkten för agentöverlämnandet kan du hämta värdet för den tidigare aktiva avsikten i samma steg.

  5. Om du inte vill ladda ned och parsa JSON-exemplet kan du använda \$.model_state.template_key för svarsnamnet och \$.previous_intent_model_state.intent.name för det tidigare avsiktsnamnet.

    I vårt exempel använder vi flödesvariablerna "responseKey" och "previousIntent" för dessa värden.

  6. Använd en grennod för att kontrollera om ett svar behöver uppfyllas.

    • Grennoden avslutas genom noden "Inget av ovanstående" för svar som inte kräver uppfyllelse.

    • Eftersom det finns ett behov av uppfyllelse för "trackPackageResponse" i vårt exempel kontrollerar du värdet för "responseKey" i vår grennod.

  7. För svar som kräver uppfyllelse använder du en HTTP-nod för att ringa externa API-samtal.

    • Du kan parsa användbar information från HTTP-nodsvaret i samma nod genom att importera ett exempel och hämta utdatavariabler.

    • I det här exemplet hämtar vi "estimatedDelivery" och "status" för paketet.

  8. Bearbeta uppfyllelsesvaret med hjälp av noden Utvärdera för att formulera agentsvaret.

    I vårt exempel initierar vi variabeln 'fulfilmentResp' och ställer in dess värde baserat på paketstatus och beräknad leverans.

  9. Skicka distributionssvaret till användaren och bifoga det i konversationen.

  10. Gå tillbaka till noden Ta emot för att hålla konversationen igång mellan användaren och AI-agenten.

Avsiktsbaserad agentöverlämning

Vid tidpunkten för agentöverlämnandet kontrollerar du om det finns den senaste aktiva avsikten via en filialnod före köuppgiftsnoden .

Kontrollera värdet för 'previousIntent' och förgrena dig till olika köer baserat på dina krav. I det här exemplet, om kunden ber om en agentöverlämning efter avsikten med "Spåra paket", dirigera dem till kön "Specialist". Alla andra värden leder till en överlämning till "Chatt"-kön.

För röstkanaler måste distributionen orkestreras genom att lämna tillbaka kontrollen över konversationen till röstflödet genom anpassade händelser och senare återuppta AI-agentkonversationen med uppfyllelsedata. För detta ändamål återanvänds exempelskriptagenten för spårning av paket. Flödet är tillgängligt i "Importera från mallar" i Webex Contact Center Flow Designer. Förutom uppfyllelse dirigerar det här flödet även användaren till olika agentköer baserat på deras senaste avsikt.

Steg-för-steg-guide: Uppfyllelse

  1. Lägg till svarstypen Anpassad händelse.

    • Leta reda på mallnyckeln som du vill lägga till den anpassade händelsen för. I det här fallet använder du mallnyckeln "trackPackageResponse".

    • Lägg till svarstypen anpassad händelse i mallnyckeln.

  2. Konfigurera svaret för anpassad händelse.

    • Lägg till händelsenamn och händelsenyttolast:

      1. För det anpassade händelsesvaret anger du ett händelsenamn. I det här fallet "TrackPack_Exit".

      2. Lägg till händelsenyttolasten, som innehåller data som ska skickas till flödet. Detta måste vara i JSON-format. I det här exemplet {"PackageNumber":"${entity. PackageNum}"}.

  3. Använd händelsenyttolasten i flödet.

    • Få åtkomst till aktivitetsmetadata för virtuell agent v2 :
      1. I röstflödeskonfigurationen är händelsenyttolasten som du lade till tillgänglig som en del av aktivitetsmetadata för Virtual Agent V2 .

      2. Skapa flödesvariabeln PackageNum.

      3. Använd en Parse-aktivitet för att välja dina aktivitetsmetadata för Virtual Agent V2 som indatavariabel.

      4. Ställ in utdatavariabeln på 'PackageNum' och dess sökvägsuttryck på '$. PackageNum' (baserat på strukturen för händelsenyttolasten som konfigurerats i agentsvaret).

    • Använd aktiviteten Metadata i HTTP :
      1. Använd variabeln "PackageNum" från bearbetade metadata i ditt flöde för att spåra paketet.

      2. Importera det bifogade flödet för att hitta information om HTTP-aktiviteten .

      3. Definiera flödesvariablerna "estimatedDelivery" och ställ in den på "$.estimated_delivery" och en annan flödesvariabel "packStatus" och ställ in den på $.status.

    • Lägg till villkor baserat på HTTP-aktivitet :
      1. Lägg till en ny villkorsaktivitet i flödet. Den här aktiviteten används för att kontrollera svaret från HTTP-aktiviteten (om paketet finns och dess status).

        I det här exemplet används uttrycket  {{ HTTPRequest_8l3.httpStatusCode == 404 }} för att kontrollera om inget paket hittades.

  4. Lägg till aktivitet för Ange variabel baserat på villkor:
    1. För det villkor som paketet inte finns för:

      • Under grenen där inget paket hittas lägger du till aktiviteten Ange variabel .
      • Ange packageResp (en annan flödesvariabel) till:

        Inget paket hittades med dessa detaljer.

    2. För det skick för vilket paketet finns:

      • Under grenen där ett paket hittas (det vill säga HTTP-statuskoden är inte lika med 404) lägger du till ytterligare en aktivitet Ange variabel .
      • Ange packageResp (en annan flödesvariabel) till:

        Ditt paket har hämtats. Den levereras av {{estimatedDelivery}}.

    3. Lägg till ytterligare två Ange variabelaktiviteter för att konfigurera händelsenamn och händelsedata. Dessa data skickas till aktiviteten Virtual Agent V2.

      • Skapa flödesvariabler event_name och event_data.

      • Ange event_name till TrackPack_Entry och event_data till {'packageResp': '{{packageResp}}' | json}.

  5. Gå tillbaka till aktiviteten för Virtual Agent V2 :

    • Konfigurera aktiviteten Virtual Agent V2:
      1. Anslut den slutliga aktiviteten Ange variabel till aktiviteten Virtual Agent V2.

      2. Ange händelsenamnet till {{event_name}}.

      3. Ställ in händelsedata på {{event_data}}.

  6. Hantera inkommande händelser i din virtuella agent:

    1. Lägg till en ny mallnyckel:

      1. Gå till svaren Tab i panelen till vänster.

      2. Lägg till en ny mallnyckel med namnet packageStatus.

    2. Konfigurera inkommande händelse:

      1. Under röstkanalen anger du den inkommande händelsen till TrackPack_Entry (eller det som skickades till aktiviteten Virtual Agent V2 i flödet).

    3. Konfigurera svaret:

      1. Ställ in svaret på: <speak> <say-as interpret-as="date"> ${eventStore.packageResp} </say-as>. Kan jag hjälpa dig med något annat?</speak>

        I det här svaret används variablerna som skickas i nyttolasten från flödet. Alla variabler som skickas som en del av händelsedata är tillgängliga för utvecklare att komma åt som ${eventStore.<variable_name>}.

        Detta använder också SSML-taggar. Med SSML-taggen kan du särskilt styra hur text tolkas och läses upp av en text-till-tal-motor. Den här taggen kan användas för att ange hur tal, datum, tider, adresser och annan text ska uttalas. Här använder vi det för datum.

Agentroutning baserat på tidigare avsikt

  • Om aktiviteten Virtual Agent V2 avslutas via eskalerade utdata använder du en Parse-aktivitet för att hämta den tidigare avsikten från agentmetadata.

  • Använd en ärendeaktivitet för att söka efter olika värden i den tidigare avsikten som bestämmer kölogiken. I det här exemplet kontrollerar vi om den tidigare avsikten var "Spåra paket".

  • Koppla ärendeaktivitetsutdata till lämpliga kökontaktkanter.