我过去几个月一直被同一个问题困扰,所有开发AI NPC的人都会遇到这个问题:
NPC要么记得你每一件事情,通过脚本标志来实现,要么在会话之间完全忘记你。两种情况都感觉不到真实。一个能从数据库中查出你所有交互记录的铁匠不像个人。同样,也不像一个完全没有记忆的铁匠。
所以我开发了MemoryLayer。
它是如何工作的:
→ 通过Ebbinghaus遗忘曲线(365天半衰期)来实现记忆的衰退
→ 高情绪事件衰退速度3倍慢—保存一个NPC的儿子会在多年后仍然记得,购买箭矢则在几周后就淡忘了
→ 老记忆会回忆起gist而不是verbatim文本—铁匠会说:“我感觉你曾经对我做过一次好事”而不是一个日志条目
→ 模拟了儿童的遗忘和回忆的爆发(编码年龄调节强度)
→ 激活扩散—回忆起一个记忆会激活相关的记忆
→ 总共7种机制,102个测试通过
网页上的NPC演示展示了一个铁匠,根据事件发生的时间和情感意义的重要性来记住玩家。
演示:https://memory-layer.netlify.app
pip install "memorylayer[full]"
已提交初步专利。
欢迎提问关于实现细节—尤其是感兴趣的人如果曾经开发过AI NPC时遇到过这个问题。
评论 (0)