Ada dua cara sebuah chatbot bisa tampak mengingatmu. Yang pertama jendela konteks yang panjang, dan itu lupa begitu jendelanya bergeser. Yang kedua adalah mencatat.
Yang ini mencatat — dan bagian yang tidak biasa: kamu boleh membaca apa yang dicatatnya.
Kenapa karakter melenceng
Sebuah model tidak punya memori antar pesan. Semua yang tampak diingatnya sebenarnya dikirim ulang di dalam prompt. Ketika percakapan tumbuh melewati apa yang muat, sesuatu harus dibuang atau dipadatkan, dan di situlah melencengnya mulai: karakter berhenti tahu nama adikmu, lalu bertentangan dengan ucapannya minggu lalu, lalu diam-diam jadi orang lain yang memakai kata-kata yang sama.
Kebanyakan produk mengatasinya dengan merangkum di latar belakang. Itu berhasil sampai rangkumannya salah, dan setelah itu salah selamanya, karena kamu tidak pernah melihatnya dan tidak bisa membetulkannya.
Apa yang sebenarnya disimpan
Fakta-fakta pendek, diambil dari percakapan sambil jalan. Bukan transkrip, bukan gumpalan vektor — baris yang bisa kamu baca.
Cakupannya dibatasi tiga arah sekaligus, dan pembatasan itulah yang membuat cerita tidak saling meluber:
- Per karakter — apa yang diketahui satu karakter tidak diketahui karakter lain.
- Per topik — utas terpisah dengan karakter yang sama menyimpan memori terpisah.
- Per orang — apa pun yang kamu ceritakan ke sebuah karakter tidak pernah terlihat oleh orang lain yang bicara dengan karakter itu.
Membacanya, memperbaikinya, menghapusnya
Daftar memori adalah satu layar di pengaturan chat. Buka dan kamu melihat faktanya, berurutan. Kalau ada yang salah, perbaiki. Kalau ada yang seharusnya tidak pernah ditulis, hapus. Kalau kamu tidak mau ada memori sama sekali, matikan memori untuk percakapan itu dan tidak ada lagi yang disimpan.
Kedengarannya sepele dan itu mengubah bentuk kegagalannya sama sekali. Fakta salah di dalam rangkuman tersembunyi meracuni setiap balasan berikutnya dan kamu cuma bisa menebak kenapa karakternya jadi aneh. Fakta salah di dalam daftar cuma satu baris yang kamu betulkan dalam lima detik.
Pertama kali sebuah karakter mencatat sesuatu, kamu diberi tahu satu kali. Bukan di setiap pesan — satu kali, supaya kamu tahu mekanismenya ada dan di mana mencarinya.
Yang tidak pernah ditulis
Sebuah filter berjalan di atas setiap fakta yang diambil dan membuang hal-hal yang memang tidak pantas ada di penyimpanan memori: alamat email, nomor telepon, nomor kartu, nomor identitas.
Ini filter, bukan janji soal apa yang kamu ketik. Yang dibuang adalah pola yang dikenalinya. Hal paling aman dengan nomor kartu asli tetap sama: jangan kirim ke chatbot.
Memori saat adegan bercabang
Kamu bisa mencabangkan balasan mana pun dan menjaga dua utas tetap jalan. Saat itu terjadi, utas baru mewarisi memori yang dipunyai utas asalnya pada saat itu — jadi cabangnya berangkat dari masa lalu yang sama, bukan dari nol, lalu menyimpang sendiri.
Itulah gunanya bercabang: dua versi dari hubungan yang sama, bukan dua orang asing.
Ke mana memori ikut
Kalau sebuah karakter jadi bot Telegram-nya sendiri, memori bekerja di sana persis seperti di chat utama — tetap per karakter, per topik, per orang. Orang yang mengobrol dengan botmu membangun memorinya sendiri dengan karakter itu, dan memori itu miliknya sendiri.