Bagaimana Stage Whisper Menyelesaikan Masalah 'NPC Maha Tahu': Seni Bina Pengasingan Konteks
NPC yang boleh memetik sesuatu yang watak saya katakan tiga sesi lalu agak menarik untuk dilihat. Sistem memori berfungsi. NPC merujuk peristiwa lalu, memetik perkara yang saya katakan. TETAPI, ia juga memulakan masalah berbeza: NPC mula menjadi maha tahu.
Berikut adalah petikan dari sesi baru-baru ini, bahagian yang relevan diserlahkan:
"Jadi," katanya, suaranya membawa mudah di atas desiran daun, "apa sebab sebenar awak mencari saya? Rasa ingin tahu, atau awak hanya cuba mengelak daripada mengemas sisa meja awak yang bersepah itu?"
Itu merujuk sesuatu yang berlaku dalam babak yang sama sekali berbeza yang watak ini bukan sebahagian daripadanya. Watak itu sepatutnya tidak mempunyai cara untuk mengetahuinya.
Ketidakkonsistenan kecil seperti ini memecahkan imersif. Tetapi dalam kes lain, ia boleh memusnahkan permainan. Contohnya, saya mempunyai kempen di mana watak saya adalah pontianak rahsia yang menavigasi dunia manusia yang tidak curiga. NPC mula secara santai membayangkan mereka tahu rahsia saya, yang tiba-tiba menjadikannya sangat sukar untuk saya melalui hari tanpa disyaki. Atau dalam contoh lain, jika saya mencuri artifak semasa rompakan, pemain adalah yang mencuri artifak itu semasa rompakan, dan kemudian watak yang tidak berkaitan membuat komen yang mencurigakan.
AI pada dasarnya memutuskan untuk menggunakan mana-mana dan semua rahsia yang tersedia dalam konteks untuk kesan dramatik, yang sepatutnya hanya berlaku sekali-sekala untuk alasan plot.
Jadi mengapa saya tidak boleh hanya memberitahu AI untuk tidak melakukan ini?
Masalahnya ialah anda cuba mencapai negatif. "Jangan gunakan maklumat ini." Itu adalah tugas yang berbeza secara asas dan jauh lebih sukar daripada kes positif: gunakan maklumat yang ada. Untuk melatih model untuk mengabaikan konteks yang relevan, anda memerlukan ribuan contoh situasi di mana maklumat itu jelas tersedia tetapi output sengaja tidak menggunakannya. Itu hampir antitesis dari apa yang AI direka untuk lakukan. Untuk kebanyakan tugas, mengabaikan konteks berguna akan menjadi kegagalan dalam kerja.
Boleh difikirkan model boleh dilatih dengan lebih banyak contoh tidak bertindak atas rahsia. Tetapi naratif dan roleplay belum menjadi tumpuan besar untuk pencipta model setakat ini, jadi masalah ini belum mendapat perhatian yang sepatutnya.
Saya menyedari saya perlu membetulkan ini pada kempen pontianak rahsia itu. Kempen itu disediakan supaya watak saya boleh menyamar sebagai manusia biasa kebanyakan masa, dan keseluruhan maksudnya adalah menavigasi ketegangan itu tanpa ditangkap. Ia akan menjadi momen naratif yang besar apabila mana-mana NPC mengetahui rahsia itu, kerana kemudian mereka perlu dipujuk untuk berdiam diri mengenainya.
Apa yang saya temui ialah hampir setiap antagonis berpotensi entah bagaimana tahu. Walaupun saya tidak mendedahkan apa-apa. Dan itu serta-merta memusnahkan plot. Ia terasa seolah-olah terdapat papan tanda besar di atas kepala saya mengumumkan bahawa saya adalah pontianak. Watak saya sentiasa melakukan kawalan kerosakan, atau berasa seperti setiap watak mempunyai pengaruh ke atas saya.
Saya bereksperimen dengan prompt untuk masa yang lama. Akhirnya saya menyedari saya terpaksa tidak memasukkan maklumat itu dalam konteks langsung.
Penyelesaiannya, maka, adalah pengasingan konteks. Jika AI tidak dapat menahan diri daripada menggunakan apa sahaja yang dilihatnya, maka maklumat itu benar-benar tidak boleh ada di situ. Ini boleh dicapai dalam Stage Whisper kerana setiap babak dan memori sudah ditag dengan NPC yang muncul di dalamnya, jadi kita boleh menapis dengan mudah untuk hanya memasukkan watak yang benar-benar berada di situ.
Tetapi inilah tangkapannya. Sesetengah rahsia adalah pendorong plot utama. Anda tidak boleh memadamkannya sepenuhnya, kerana cerita masih perlu mengambil kira mereka. Sama ada rompakan, atau pontianak rahsia, rahsia tersebut adalah teras kepada naratif, dan ia tidak akan menjadi cerita yang sama tanpa mereka.
Jadi kami terpaksa membahagikan penjanaan teks kami kepada dua.
Bahagian pertama saya panggil Pengarah Cerita. Ia mengarahkan keseluruhan cerita: plot, rentak naratif. Ia mempunyai semua rahsia, dan boleh memutuskan bagaimana terbaik untuk memutarkan cerita memandangkan rahsia tersebut. Ia memahami gambaran penuh, termasuk perkara yang belum patut diketahui oleh mana-mana watak.
Bahagian kedua saya panggil Pengarah Babak. Ia "melakonkan" babak yang diserahkan kepadanya oleh Pengarah Cerita. Ia mempunyai akses kepada semua memori dan personaliti NPC yang relevan, jadi ia mempunyai maklumat yang cukup untuk memainkan semua NPC dan menyediakan sedikit narasi perantara, tetapi ia benar-benar tidak tahu rahsia.
Beberapa maklumat perlu dilalui dari satu ke yang lain, supaya mereka boleh bekerja pada cerita yang sama tanpa bertentangan antara satu sama lain.
Pengarah Cerita menghasilkan sinopsis yang memberitahu Pengarah Babak segala yang perlu diketahui. Ia kelihatan seperti ini:
<synopsis>
Elian kembali ke Bilik 314 bersama Maeve, ward privasi yang biasa menawarkan rehat seketika dari perhatian yang terkumpul semasa pertunjukan hebat mereka. Merasakan keperluan Maeve untuk belajar selepas hari yang luar biasa, Elian memutuskan untuk meninggalkan bilik mereka untuk penerokaan bersendirian
<npc_list>maeve-corwin</npc_list>
<location>bilik-314</location>
<new_scene/>
</synopsis>
Ini memberitahu Pengarah Babak apa yang berlaku dalam babak, di mana ia, siapa yang ada di dalamnya, dan sama ada ia babak baharu. Kehadiran watak pemain diandaikan. Pengarah Cerita juga boleh secara pilihan mengeluarkan perbualan luar watak kepada pemain, dan membuat nota prestasi terperinci untuk kegunaan masa depannya sendiri.
Kedua-dua pengarah tidak melihat konteks yang sama. Inilah pembahagiannya:
Pengarah Cerita melihat:
- fail kempen penuh, termasuk nota GM, rancangan sesi, persediaan kempen, dan status kempen semasa
- helaian watak pemain penuh, termasuk semua rahsia
- senarai semua NPC, lokasi, dan lore
- ringkasan dan rekap sesi
- sejarah penuh dua babak terkini
Ini adalah semua yang Pengarah Cerita perlukan untuk membuat keputusan plot yang menarik dan konsisten. Ia adalah banyak data, tetapi cache KV memastikan kos terurus.
Pengarah Babak melihat:
- fail kempen separa tanpa nota GM
- versi awam helaian watak pemain, yang meninggalkan sebarang rahsia tetapi masih termasuk penampilan fizikal dan reputasi awam, perkara yang NPC biasa akan tahu secara munasabah
- ringkasan babak terakhir yang NPC benar-benar hadir
- perincian lokasi
- beberapa memori terakhir yang mungkin dimiliki setiap NPC
- sinopsis dari Pengarah Cerita
Ini adalah pandangan yang sengaja dikurangkan. Pengarah Babak mempunyai semua yang diperlukan untuk menjalankan babak, dan tiada apa yang tidak sepatutnya dimilikinya.
Dua helaian watak
Perbezaan helaian watak pemain awam berbanding penuh adalah kunci. Pengarah Cerita perlu mengetahui perincian penuh dan semua rahsia untuk menghasilkan cerita. Tetapi Pengarah Babak tidak sepatutnya mengetahui perincian tersebut. Ia masih perlu tahu siapa watak pemain secara fizikal, bagaimana rupa mereka, reputasi awam mereka, perkara yang mana-mana NPC akan dapat tangkap hanya dari berada di sekitar mereka. Mengekalkan helaian awam yang berasingan bermakna Pengarah Babak sentiasa mempunyai konteks itu tanpa perlu akses kepada rahsia.
Menapis memori mengikut babak
Setiap babak ditag dengan NPC mana yang hadir. Ini bermakna kita tahu dengan tepat babak baru-baru ini mana yang relevan kepada setiap NPC, dan kita menambahkannya ke konteks Pengarah Babak. Andaiannya ialah babak dalam sesi semasa adalah sangat relevan. Untuk memori yang lebih lama, carian semantik menimbulkan yang mungkin penting.
Hasilnya adalah Pengarah Babak yang benar-benar tidak dapat mengetahui perkara yang watak dalam babak tidak tahu. Bukan kerana ia diberitahu untuk tidak, tetapi kerana maklumat itu secara fizikal tidak ada di situ.
Saya telah menjalankan kempen di mana watak saya adalah wanita manusia yang perlu berpakaian sebagai lelaki untuk mendapatkan gelaran keluarganya sebagai bangsawan kecil, disebabkan undang-undang pewarisan. Ia adalah kempen komedi ringan, dan ia menampilkan beberapa senario komedi yang datang dari kekeliruan jantina itu.
Tanpa sistem ini, umumnya tiada cara untuk mengejutkan NPC. Mereka semua berkelakuan seperti mereka mengesyaki sesuatu. Mungkin tidak secara langsung, tetapi cara mereka bercakap dengan anda sentiasa mempunyai sisi mengetahui ini. Sukar untuk digambarkan, tetapi anda boleh merasakannya. Ketegangan dramatik identiti rahsia tidak ada.
Tetapi dengan sistem ini, NPC bermain sepenuhnya lurus. Mereka tidak tahu apa-apa. Dan babak di mana pendedahan besar berlaku benar-benar mengena, kerana sehingga saat itu tiada langsung kiasan kepadanya. Komedi berfungsi kerana penonton, NPC, benar-benar tidak melihatnya akan datang.
Terdapat satu kes tepi. Oleh kerana Pengarah Babak tidak tahu rahsia tepat, ia kadang-kadang membuat perincian yang tidak tepat secara anatomi. Ini sukar dielakkan, kerana Pengarah Babak bekerja dari helaian watak awam yang tidak termasuk perincian tersebut. Penyelesaiannya adalah menambah langkah ketiga: Pengarah Cerita menyemak babak yang dijana sebelum ia keluar, untuk menangkap sebarang percanggahan seperti ini. Itu menambah kos dan latensi, jadi ia dalam pelan hala tuju tetapi belum dilaksanakan.
Satu perkara yang mengejutkan saya: apabila rahsia didedahkan dalam permainan, ia merebak secara semula jadi. Pengarah Babak menyimpan babak yang dijana sebelumnya, jadi apabila NPC belajar sesuatu dalam babak, itu menjadi sebahagian daripada konteks mereka untuk giliran seterusnya. Pada akhir babak, babak tersebut membentuk memori untuk NPC. Pada akhir sesi, helaian NPC dikemas kini. Kedua-duanya bermakna pengetahuan NPC individu tentang rahsia direkodkan, dan cerita boleh diteruskan dengan NPC itu kini benar-benar mengetahui.
Tukar ganti
Pendekatan ini bukan percuma. Kos meningkat, walaupun tidak sampai dua kali ganda, kerana konteks Pengarah Babak agak ringan. Cache prompt membantu dengan ketara juga. Semasa babak berjalan, giliran baharu ditambah ke penghujung konteks, yang bermakna 90% prompt boleh datang dari cache dan bukannya dijana semula baharu setiap kali.
Pada masa ini ia didayakan untuk semua kempen. Perubahan seni bina cukup ketara sehingga tidak masuk akal untuk menyediakan laluan yang memintas persediaan ini. Untuk kebanyakan kempen, tukar ganti ini berbaloi, walaupun cerita anda tidak mempunyai rahsia besar, kerana konsistensi NPC penting walau apa pun.
Apa yang dibuka ini: Pengarah Permainan
Saluran paip dua peringkat menunjukkan sesuatu yang berguna: membahagikan tugas antara AI yang lebih khusus dengan konteks yang dioptimumkan memberikan hasil yang lebih baik daripada satu AI melakukan segala-galanya. Itu membawa kepada peringkat ketiga yang semula jadi.
Saya memanggilnya Pengarah Permainan. Tugasnya adalah mengendalikan mekanik TTRPG: balingan dadu, pemeriksaan kemahiran, penjejakan status. Konteksnya boleh dioptimumkan secara berbeza dari yang lain, kerana ia kurang mengambil berat tentang sejarah naratif dan lebih tentang peraturan permainan dan keadaan permainan.
Menambah Pengarah Permainan mempunyai faedah yang tidak dijangka. Oleh kerana ia berjalan setiap giliran sekiranya pemain mencuba sesuatu yang memerlukan pemeriksaan kemahiran, ia juga boleh memutuskan sama ada input pemain adalah sambungan babak terakhir atau sesuatu yang baharu. Jika pemain hanya bersembang dengan NPC tanpa menggerakkan plot, Pengarah Permainan boleh melangkau Pengarah Cerita sepenuhnya dan membiarkan Pengarah Babak meneruskan babak sendiri. Pengarah Babak mempunyai helaian NPC dan boleh melakukan carian memori, jadi ia boleh meneruskan dialog seperti ini tanpa overhed panggilan Pengarah Cerita penuh.
Ini adalah arah seni bina yang sedang menuju: saluran paip tiga peringkat yang menjadi semakin khusus secara progresif, dengan pengoptimuman penjimatan kos terbina dalam setiap lapisan.
Stage Whisper dibina untuk orang yang mahu bermain TTRPG solo dengan kedalaman dan konsistensi kempen jangka panjang. Sistem memori, termasuk seni bina pengasingan konteks ini, adalah apa yang memungkinkannya. Mulakan atau sertai Discord kami untuk melihat bagaimana ia berfungsi dalam praktik.
Untuk lebih lanjut tentang sistem memori Stage Whisper, lihat Bahagian 1: Konsistensi Naratif dan Bahagian 3: NPC Bermimpi.