Geheugen (Klantgesprek) (preview)

[Dit artikel maakt deel uit van de voorlopige documentatie en kan nog veranderen.]

Geheugen stelt een agent die werkt met de Customer Conversation-harness in staat goedgekeurde context van eerdere gesprekken mee te nemen naar het volgende, zodat een terugkerende klant met continuïteit wordt geholpen in plaats van met een cold start. De agent kan open intenten herkennen, zich herinneren wat besproken is en het verhaal oppikken waar het laatste gesprek eindigde.

Geheugen voor agenten die worden aangedreven door de Customer Conversation-harness is een aparte functie ten opzichte van Memory (preview), die van toepassing is op agenten die worden aangedreven door de GitHub Copilot-harness. In plaats van vrije, ongestructureerde herinnering legt Customer Conversation-geheugen gestructureerde context vast via een gedefinieerd schema van ingebouwde en aangepaste parameters, en dekt het alleen kortetermijnconversatiecontext, met een retentieperiode van 30 dagen.

Het geheugen wordt één keer geconfigureerd op agentniveau en geldt voor de root-agent en alle onderliggende agenten. Het werkt in zowel spraak- als chatgesprekken, en wanneer een gedeelde contactidentificatie wordt ingesteld, is context die in het ene kanaal is opgenomen beschikbaar in het andere.

Wat je agent zich herinnert

Ingebouwde contexttypen

Twee ingebouwde contexttypes zijn actief wanneer Memory is ingeschakeld. Elk item heeft een gedefinieerd schema, zodat je de waarden in instructies kunt refereren zonder extra setup.

Contexttype Variables Wat wordt vastgelegd
Klantprofiel /customerName Klantgegevens die tijdens gesprekken worden vastgelegd en worden gebruikt om toekomstige interacties te personaliseren.
Gespreksgeschiedenis /pastOpenIntentList, /pastConversationSummary Belangrijke details uit eerdere gesprekken, zoals open intenties en een samenvatting, werden meegenomen naar toekomstige interacties.

Aangepaste parameters

Naast de ingebouwde types kun je parameters definiëren voor de details waarop je bedrijf afhankelijk is, zoals een lidmaatschapsniveau, een gevraagde serviceactie of een vlag die routing aanstuurt. Elke aangepaste parameter wordt gedefinieerd door:

  • Een unieke naam.
  • Een datatype van string, getal of booleaan.
  • Een eenvoudige beschrijving die de agent vertelt waar hij op moet letten. De beschrijving doet het meeste werk, dus schrijf het als een expliciete instructie in plaats van als een label.
  • De verzameling waarden die de parameter mag houden.

De volgende beperkingen gelden wanneer je een aangepaste parameter aanmaakt of bewerkt:

Setting Requirement
Name Uniek binnen de agent. Spaties worden automatisch geaccepteerd en verwijderd wanneer de naam als variabele wordt gebruikt.
Gegevenstype Snaar, getal of booleaan.
Description Required. Tussen de 30 en 300 tekens.
Toegestane waarden Required. Tot 10 waarden, elk tot 30 tekens.
Aantal parameters Tot 5 aangepaste parameters.

Kiezen hoe een waarde wordt bijgewerkt

Elke aangepaste parameter gebruikt een van twee consolidatiemodi, die bepalen hoe een nieuw geëxtraheerde waarde samenvoegt met het geheugen dat al voor die parameter staat over gesprekken heen. Je kiest de modus wanneer je de parameter aanmaakt.

  • Vervang: Past waarden door één actuele feit, zoals een lidmaatschapsniveau of een fraude-vlag. Elke nieuw geëxtraheerde waarde overschrijft de opgeslagen waarde, en alleen de meest recente waarde wordt behouden. Als een gesprek geen nieuwe waarde oplevert, blijft de eerder opgeslagen waarde op zijn plaats in plaats van verwijderd te worden.
  • Bijvoeging: Past bij waarden die zich opstapelen, zoals de serviceacties die een klant heeft aangevraagd. Elke extractie wordt toegevoegd aan een lopende lijst als een eigen tijdgestempelde invoer, en herhaalde waarden worden apart bewaard zodat de sequentie nauwkeurig blijft. De agent leest de meest recente vermelding voor een gegeven waarde als de huidige toestand. Als een gesprek geen nieuwe waarde oplevert, blijft de lijst ongewijzigd en worden de vermeldingen verwijderd naarmate ze ouder worden dan het retentievenster, zodat lijsten niet onbeperkt groeien.

Geheugen in- of uitschakelen

Met één instelling op agentniveau zet je Memory aan of uit. Het beheerst alles: context genereren, opslaan, ophalen, geheugenvariabelen oplossen in instructies en context naar menselijke agenten brengen. De instelling dekt de root-agent en al zijn kindagenten, en het wijzigen ervan moet worden bevestigd voordat het effect heeft.

Terwijl Memory uit staat, wordt er nergens in de agent context gegenereerd, opgeslagen, opgehaald of verwezen. Het weer aanzetten hervat normaal gedrag voor nieuwe gesprekken; eerder opgeslagen context wordt alleen weer beschikbaar als deze nog binnen het retentievenster valt.

Instructies voor auteurs met geheugenvariabelen

Verwijs rechtstreeks naar ingebouwde en aangepaste parameters in instructies voor agents. Referenties voor systeemparameters zien eruit als pastOpenIntentList en pastConversationSummary.

Cross-channel continuïteit

Context is gekoppeld aan een kanaalspecifieke identificator, zoals het telefoonnummer van de beller bij spraak en een geauthenticeerde sessie-identificator voor webchat. Op zichzelf houdt dat het geheugen van elk kanaal gescheiden.

Door een gedeeld contact-ID te configureren, worden de identiteiten van die kanalen aan één klant gekoppeld, zodat context die tijdens een telefoongesprek is vastgelegd beschikbaar is bij de volgende chat van de klant, en andersom. De context wordt pas vrijgegeven zodra de klant is geïdentificeerd: chatkanalen authenticeren eerst de gebruiker, en spraak vertrouwt op het telefoonnummer van de beller.

Dit betekent dat een klant die met je agent op één kanaal communiceert, hetzelfde gesprek op een ander kanaal kan voortzetten, en de agent behoudt de relevante context, inclusief voorkeuren of eerder gedeelde details, zoals een voorkeurscontactmethode of een accountidentificatie.

Zoals bij alle geheugencontext, onderhoudt elke agent per gebruiker een aparte geheugenopslag, zodat de context en voorkeuren van de ene klant nooit met een andere worden gedeeld.