Det finns två sätt en chatbot kan verka minnas dig på. Det ena är ett långt kontextfönster, som glömmer i samma stund fönstret glider vidare. Det andra är att skriva ner saker.
Den här skriver ner saker, och — det ovanliga — låter dig läsa vad den skrev.
Varför karaktärer glider iväg
En modell har inget minne mellan meddelanden. Allt den verkar minnas skickades till den på nytt i prompten. När en konversation växer förbi vad som får plats måste något släppas eller komprimeras, och det är där glidningen börjar: karaktären slutar veta vad din syster heter, motsäger sedan vad den sa förra veckan, och blir till slut tyst en annan person som använder samma ord.
De flesta produkter hanterar det genom att sammanfatta i bakgrunden. Det fungerar tills sammanfattningen blir fel, och då är den fel för alltid, eftersom du aldrig ser den och inte kan rätta den.
Vad som faktiskt lagras
Korta fakta, extraherade ur konversationen medan den pågår. Inte en utskrift, inte en vektorklump — rader du kan läsa.
De avgränsas på tre sätt samtidigt, och den avgränsningen är det som hindrar berättelser från att blöda in i varandra:
- Per karaktär — vad en karaktär vet, vet inte en annan.
- Per ämne — separata trådar med samma karaktär har separata minnen.
- Per person — inget du berättar för en karaktär är någonsin synligt för någon annan som pratar med samma karaktär.
Läsa det, rätta det, radera det
Minneslistan är en skärm i chattinställningarna. Öppna den och du ser fakta, i ordning. Om en är fel, rätta den. Om en aldrig borde ha skrivits, radera den. Om du inte vill ha något av det, stäng av minnet för den konversationen så lagras inget mer.
Det låter litet men det ändrar felläget helt. En felaktig uppgift i en dold sammanfattning förgiftar varje senare svar och du kan bara gissa varför karaktären blivit konstig. En felaktig uppgift i en lista är en rad du rättar på fem sekunder.
Första gången en karaktär skriver ner något får du veta det, en gång. Inte vid varje meddelande — en gång, så att du vet att mekanismen finns och var den hittas.
Vad som aldrig skrivs ner
Ett filter körs över varje extraherad uppgift och tar bort det som inte alls hör hemma i ett minneslager: e-postadresser, telefonnummer, kortnummer, id-nummer.
Det här är ett filter, inte ett löfte om vad du skriver. Det tar bort mönster det känner igen. Det säkraste med ett riktigt kortnummer är fortfarande att inte skicka det till en chatbot.
Minnet när scenen förgrenar sig
Du kan förgrena vilket svar som helst och behålla båda trådarna. När du gör det ärver den nya tråden det minne föräldern hade i det ögonblicket — så en gren börjar från samma gemensamma förflutna i stället för från ingenting, och divergerar sedan på egen hand.
Det är poängen med förgrening: två versioner av samma relation, inte två främlingar.
Vart minnet följer med
Om en karaktär blir en egen Telegram-bot fungerar minnet där precis som i huvudchatten — fortfarande per karaktär, per ämne, per person. Den som pratar med din bot bygger sitt eget minne med den karaktären, och det är bara deras.