Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
State i en agent følger de samme paradigmer som moderne webapplikationer. Agents SDK indeholder nogle abstraktioner, der gør det nemmere at administrere tilstanden.
Som med webapps er en agent i sagens natur tilstandsløs. En anden instans af din agent kan håndtere et hvilket som helst trin i samtalen. For nogle agenter foretrækkes denne enkelthed – agenten kan enten arbejde uden yderligere oplysninger, eller de påkrævede oplysninger er garanteret at være i den indgående meddelelse. For andre er tilstand (f.eks. hvor samtalen slap, eller data, der tidligere er modtaget om brugeren), nødvendig for, at agenten kan have en nyttig samtale.
Hvorfor har jeg brug for stat?
Vedligeholdelsestilstand gør det muligt for din agent at have mere meningsfulde samtaler ved at huske visse ting om en bruger eller samtale. Hvis du f.eks. tidligere har talt med en bruger, kan du gemme tidligere oplysninger om vedkommende, så du ikke behøver at bede om det igen. State bevarer også data i længere tid end den aktuelle tur, så din agent bevarer oplysninger i løbet af en samtale med flere sving.
Som det gælder for agenter, er der et par lag til at bruge tilstand: lagringslag, tilstandsstyring og AgentApplication.
Lagerlag
Når du starter ved backend, hvor tilstandsoplysningerne faktisk er gemt, er det lagringslag. Du kan betragte dette som dit fysiske lager, f.eks. i hukommelsen, Azure eller en tredjepartsserver.
Agents SDK indeholder nogle implementeringer for lagerlaget:
Hukommelseslager implementerer lager i hukommelsen til testformål. Datalageret i hukommelsen er kun beregnet til lokal test, da dette lager er ustabilt og midlertidigt. Dataene ryddes, hver gang agenten genstarter.
Azure Blob Storage opretter forbindelse til en Azure Blob Storage-objektdatabase.
Azure Cosmos DB-partitioneret lager opretter forbindelse til en partitioneret Cosmos DB NoSQL-database.
Du kan finde oplysninger om, hvordan du opretter forbindelse til andre lagerindstillinger, under Oversigt over Agents SDK Storage
Tilstandsstyring
Tilstandsstyring automatiserer læsning og skrivning af din agents tilstand til det underliggende lagerlag. State gemmes som tilstandsegenskaber, som effektivt er nøgleværdipar, som din agent kan læse og skrive via objektet til tilstandsstyring uden at bekymre sig om den specifikke underliggende implementering. Disse tilstandsegenskaber definerer, hvordan disse oplysninger gemmes. Når du f.eks. henter en egenskab, som du har defineret som en bestemt klasse eller et bestemt objekt, ved du, hvordan disse data struktureres.
Disse tilstandsegenskaber er grupperet i bestemte "buckets", som blot er samlinger, der hjælper med at organisere disse egenskaber. SDK'et indeholder tre af disse "buckets":
- Brugertilstand
- Samtaletilstand
Alle disse buckets er underklasser for agenttilstandsklassen, som kan afledes for at definere andre typer buckets med forskellige områder.
Disse foruddefinerede buckets er begrænset til en bestemt synlighed, afhængigt af bucketen:
- Brugertilstanden er tilgængelig på et hvilket som helst skift, som agenten taler med den pågældende bruger på den pågældende kanal, uanset samtalen
- Samtaletilstand er tilgængelig på alle skift i en bestemt samtale, uanset brugeren, f.eks. i gruppesamtaler
Brugertilstand og samtaletilstand er begrænset efter kanal. Den samme person, der bruger forskellige kanaler til at få adgang til din agent, vises som forskellige brugere, én for hver kanal og hver med en særskilt brugertilstand.
De nøgler, der bruges til hver af disse foruddefinerede buckets, er specifikke for brugeren og samtalen eller agenth. Når du angiver værdien for din tilstandsegenskab, defineres nøglen internt for dig med oplysninger i turn-konteksten for at sikre, at hver bruger eller samtale placeres i den korrekte bucket og egenskab. Nøglerne er specifikt defineret på følgende måde:
- Brugertilstanden opretter en nøgle ved hjælp af kanal-id'et og fra-ID'et. For eksempel
{Activity.ChannelId}/users/{Activity.From.Id}#YourPropertyName - Samtaletilstanden opretter en nøgle ved hjælp af kanal-id'et og samtale-id'et. For eksempel
{Activity.ChannelId}/conversations/{Activity.Conversation.Id}#YourPropertyName
Hvornår skal du bruge hver type tilstand?
Samtaletilstanden er god til at spore samtalens kontekst, f.eks.:
- Om agenten stillede brugeren et spørgsmål, og hvilket spørgsmål der blev
- Hvad det aktuelle samtaleemne er, eller hvad det sidste var
- Optagelse af chathistorik
Brugertilstand er god til sporing af oplysninger om brugeren, f.eks.:
- Ikke-kritiske brugeroplysninger, f.eks. navn og indstillinger, en alarmindstilling eller en beskedindstilling
- Oplysninger om den sidste samtale, de havde med agenten
- En produktsupportagent kan f.eks. spore, hvilke produkter brugeren har spurgt om.
AgentApplication
- De rutehandlere, du tilføjer, leveres med en
TurnStateforekomst. Få adgang til samtale- eller brugertilstand fra denne forekomst. - Tilstanden indlæses og gemmes automatisk.