我一直在发布一款浏览器游戏,玩家在热带岛屿上与一个由大型语言模型驱动的漂流者一起搁浅。你可以和他们聊天,但他们也会过自己的生活——吃饭、造船、喝水、思乡。链接:https://www.npcisland.com。
构建这款游戏的有趣之处在于弄清楚 NPC 的哪些部分真的需要模型,哪些部分必须回退到普通代码。我最初让 LLM 基本上掌控一切——聊天、人格、移动、每帧动作选择。结果有三项是错误的。模型可以写出很棒的对话并很好地保持角色,但在“走到第三棵树”这种任务上表现糟糕,而且把它用于生存循环只会让每回合变得缓慢且成本高,却没有让 NPC 看起来更有活力。
保留下来的有:一次性生成 NPC 名称、性格以及简短信念列表(“如果我进入水里会溺死”)的生成调用;聊天本身;以及当活动日志填满时定期进行的压缩调用,用来重写 NPC 的文字记忆,以防旧的目标被抛弃。生成时的角色设定会成为每次聊天调用看到的系统提示,这保证了角色在长时间会话中的稳定性。
我得到的最直接的验证是,有玩家花了两分钟告诉 Kai 他应该让鲨鱼吃掉他。Kai 从未中断,也没有给出拒绝式的回复,只是一再发出悲伤的合作生存呼吁。人格作为系统提示的模式发挥的作用超出我的预期。
欢迎在评论中讨论提示、记忆压缩或哪些方案不起作用。
评论 (0)