Konfigurer oppfyllelse for skriptede AI-agenter
I sammenheng med AI-agenter refererer oppfyllelse til utførelsen av oppgaver som involverer samhandling med eksterne systemer for å hente, manipulere eller lagre data gjennom API-er. Denne artikkelen beskriver eksempelagenten som er opprettet for sporing av pakker. Du kan bruke denne agentmalen når du oppretter en ny AI-agent for digitale og taleinteraksjoner.
For digitale kanaler må oppfyllelsen orkestreres gjennom tilkoblingsflyten som brukes til å distribuere AI-agenten. Hvis vi tar eksempelet med en pakkesporingsagent, som du kan importere fra en mal mens du oppretter en ny skriptbasert agent, er flyten også tilgjengelig for import mens du oppretter en ny Webex Connect-flyt. I tillegg til oppfyllelse, ruter denne tilkoblingsflyten også brukeren til forskjellige agentkøer basert på deres siste intensjon.
-
Når du er ferdig med å konfigurere den skriptbaserte agenten, identifiser svarene som krever oppfyllelse.
I eksempelagenten kreves det oppfyllelse for 'trackPackageResponse'.
-
I disse malene konfigurerer du et «ventesvar» som vises til brukeren mens oppfyllelsen finner sted.
I dette eksemplet er et holdingsvar konfigurert for 'trackPackageResponse'.
-
I flyten bruker du en Data Parser -node til å analysere agentøktens metadata (utdatavariabel) fra AI-agentens svar for å hente svarnavnet.
Du kan hente eksempelinndata for dataparsernoden ved å laste ned transaksjonsinformasjon fra økter ved å velge riktig transaksjon og velge verdien til «generatedDf»-nøkkelen fra den nedlastede filen.
-
Hvis du ønsker å bruke intensjonsbasert ruting ved agentoverlevering, kan du hente verdien av den forrige aktive intensjonen i samme trinn.
-
Hvis du ikke ønsker å laste ned og analysere JSON-eksempelfilen, kan du bruke
\$.model_state.template_key
for svarnavnet og\$.previous_intent_model_state.intent.name
for det forrige intentnavnet.I vårt eksempel bruker vi flytvariablene «responseKey» og «previousIntent» for disse verdiene.
-
Bruk en gren node for å sjekke om et svar må oppfylles.
-
Grennoden avslutter gjennom nodeutfallet «Ingen av de ovennevnte» for svar som ikke krever oppfyllelse.
-
I vårt eksempel, siden det er behov for oppfyllelse for «trackPackageResponse», må du sjekke verdien til «responseKey» i grennoden vår.
-
-
For svar som krever oppfyllelse, bruk en HTTP node for å foreta eksterne API-kall.
-
Du kan analysere nyttig informasjon fra HTTP-nodesvaret i samme node ved å importere et eksempel og hente utdatavariabler.
-
I dette eksemplet får vi «estimatedDelivery» og «status» for pakken.
-
-
Behandle oppfyllelsessvaret ved hjelp av en Evaluate -node for å formulere agentsvaret.
I vårt eksempel initialiserer vi variabelen «fulfilmentResp» og setter verdien basert på pakkestatus og estimert levering.
-
Send oppfyllelsessvaret til brukeren og legg det til i samtalen.
-
Gå tilbake til Motta -noden for å holde samtalen i gang mellom brukeren og AI-agenten.
Intensjonsbasert agentoverlevering
Ved agentoverlevering, sjekk den siste aktive intensjonen gjennom en gren node før køoppgave noden.
Sjekk verdien til «previousIntent» og forgren til forskjellige køer basert på dine krav. I dette eksemplet, hvis kunden ber om en agentoverlevering etter «Spor pakke»-intensjonen, rutes de til «Spesialist»-køen. Alle andre verdier fører til en overføring til «Chat»-køen.
For talekanaler må oppfyllelse orkestreres ved å overføre kontrollen over samtalen tilbake til taleflyten gjennom tilpassede hendelser og senere gjenoppta AI-agentsamtalen med oppfyllelsesdataene. For dette formålet brukes den skriptede eksempelagenten for sporing av pakker på nytt. Flyten er tilgjengelig i «Importer fra maler» i Webex Contact Center Flytdesigner. I tillegg til oppfyllelse, ruter denne flyten også brukeren til forskjellige agentkøer basert på deres siste intensjon.
Steg-for-steg-guide: Oppfyllelse
-
Legg til svartypen «Tilpasset hendelse».
-
Finn malnøkkelen du vil legge til den tilpassede hendelsen for. I dette tilfellet bruker du malnøkkelen «trackPackageResponse».
-
Legg til svartypen «tilpasset hendelse» i malnøkkelen.
-
-
Konfigurer svaret for den tilpassede hendelsen.
-
Legg til hendelsesnavn og hendelsesnyttelast:
-
For det tilpassede hendelsessvaret, oppgi et hendelsesnavn. I dette tilfellet «TrackPack_Exit».
-
Legg til hendelsesnyttelasten, som inneholder data som skal sendes til flyten. Dette må være i JSON-format. I dette eksemplet,
{"Pakkenummer":"${entity.Pakkenummer}"}
.
-
-
-
Bruk hendelsesnyttelasten i flyten.
- Tilgang til Virtuell agent V2 Aktivitetsmetadata:
I konfigurasjonen av taleflyten din er hendelsesnyttelasten du la til tilgjengelig som en del av metadataene for aktiviteten til Virtual Agent V2.
Opprett flytvariabelen PackageNum.
Bruk en Parse aktivitet for å velge din Virtuell agent V2 aktivitetsmetadata som inputvariabel.
Sett utdatavariabelen til 'PackageNum' og dens baneuttrykk til '$.PackageNum' (basert på strukturen til hendelsesnyttelasten som er konfigurert i agentresponsen).
- Bruk metadataene i HTTP aktivitet:
Bruk variabelen «PackageNum» fra de behandlede metadataene i flyten din for å spore pakken.
Importer den vedlagte flyten for å finne detaljene om HTTP aktivitet.
Definer flytvariablene 'estimatedDelivery' og sett den til '$.estimated_delivery' og en annen flytvariabel 'packStatus' og sett den til $.status.
- Legg til betingelser basert på HTTP aktivitet:
Legg til en ny Betingelse aktivitet til strømmen. Denne aktiviteten brukes til å sjekke responsen til HTTP aktivitet (om pakken finnes og dens status).
I dette eksemplet er uttrykket
{{ HTTPRequest_8l3.httpStatusCode == 404 }}
brukes til å sjekke om ingen pakke ble funnet.
- Tilgang til Virtuell agent V2 Aktivitetsmetadata:
- Legge til Angi variabel aktivitet basert på betingelser:
For tilstanden der pakken ikke finnes:
- Under grenen der ingen pakke finnes, legg til en Angi variabel aktivitet.
- Sett packageResp (en annen flytvariabel) til:
Ingen pakke funnet med disse detaljene.
For tilstanden som pakken eksisterer for:
- Under grenen der en pakke finnes (det vil si at HTTP-statuskoden ikke er lik 404), legg til en annen Angi variabel aktivitet.
Sett packageResp (en annen flytvariabel) til:
Pakken din er hentet. Den vil bli levert innen {{estimatedDelivery}}.
Legg til to flere Set-variable aktiviteter for å konfigurere hendelsesnavn og hendelsesdata. Disse dataene vil bli sendt til aktiviteten Virtual Agent V2.
Opprett flytvariablene hendelsesnavn og hendelsesdata.
Sett event_name til TrackPack_Entry og event_data til {'packageResp': '{{packageResp}}' | json}.
-
Løft tilbake til Virtuell agent V2 aktivitet:
- Konfigurer aktiviteten for virtuell agent V2:
Koble til den endelige Angi variabel aktivitet til Virtual Agent V2-aktiviteten.
Sett hendelsesnavnet til {{event_name}}.
Sett hendelsesdataene til {{event_data}}.
- Konfigurer aktiviteten for virtuell agent V2:
-
Håndter innkommende hendelse i din virtuelle agent:
-
Legg til en ny malnøkkel:
-
Gå til Svar Tab i panelet til venstre.
-
Legg til en ny malnøkkel med navnet packageStatus.
-
-
Konfigurer innkommende hendelse:
-
Under talekanalen angir du den innkommende hendelsen til TrackPack_Entry (eller det som ble sendt til Virtual Agent V2-aktiviteten i flyten).
-
-
Konfigurer svaret:
-
Sett svaret til: <speak><say-as interpret-as="date"> ${eventStore.packageResp} </say-as>. Kan jeg hjelpe deg med noe annet?
Dette svaret bruker variablene som sendes i nyttelasten fra flyten. Alle variabler som sendes som en del av hendelsesdataene er tilgjengelige for utviklere som ${eventStore.<variable_name>}.
Dette bruker også SSML-tagger. Spesielt lar SSML-taggen deg kontrollere hvordan tekst tolkes og leses opp av en tekst-til-tale-motor. Denne taggen kan brukes til å angi hvordan tall, datoer, klokkeslett, adresser og annen tekst skal uttales. Her bruker vi det om dato.
-
-
Agentruting basert på tidligere intensjon
-
Hvis Virtuell agent V2 aktiviteten avsluttes gjennom «Eskalert»-utgangen, bruk en Parse aktivitet for å hente den forrige intensjonen fra agentmetadata.
-
Bruk en saksaktivitet til å se etter ulike verdier for den forrige hensikten som bestemmer kølogikken. I dette eksemplet sjekker vi om den forrige hensikten var «Spor pakke».
-
Koble saksaktivitetsutdataene til de aktuelle køkontaktkantene.