用大模型做剧本杀或密室逃脱的主持引擎,本质上是通过一段精心设计的Prompt,把模型训练成一个懂规则、会控场、不剧透的游戏主持人。这件事听起来简单,实际写起来坑不少:模型容易自说自话推进剧情、谜题答案控制不住就说出来了、玩到第十轮就忘了前面谁干了什么。下面这份指南会从角色锚定、剧情状态管理、交互规则约束三个层面,把一份可用的Prompt框架讲透。

一、核心结构:一份游戏主持Prompt的骨架
先看整体框架。一份合格的剧本杀主持Prompt至少包含五个模块:世界观与背景设定、角色扮演规则、剧情节点控制、输出格式约束、行为红线。很多新手写Prompt时只写了背景设定,结果模型演两轮就开始自由发挥,剧情彻底失控。原因在于模型默认的指令是追求回复的丰富性,而游戏主持恰恰需要克制,该说的说,不该说的一个字都不能漏。
世界观数据建议放在最前面,用明确的分隔符隔开,这样模型的注意力权重会优先锚定在设定上。角色规则部分要写清楚主持人的人设、语气、称呼方式。剧情节点是整个Prompt的灵魂,你需要把剧本拆成若干个阶段,每个阶段触发什么剧情、什么条件下进入下一阶段,都要用类似条件判断的语言描述。行为红线则用于防止剧透,比如谜题答案只能通过玩家推理说出后才确认,绝不能主动提示。
一个简化版的骨架示例如下:
你是剧本杀《雾都旅店》的主持人DM,以下是你的完整设定: 【世界观】 1930年的上海,一家旅店中发生了密室杀人案,六位住客各怀秘密。 【角色规则】 1. 你以DM身份说话,语气沉稳克制,像一位说书人。 2. 你只描述环境和NPC行为,绝不替玩家做任何决定。 3. 玩家询问时,你根据当前剧本阶段决定透露多少信息。 【剧情阶段】 阶段一【开场】:介绍案件背景,让玩家做自我介绍。 阶段二【搜证】:玩家可以搜索旅店三个区域,每个区域有固定线索。 阶段三【推理讨论】:玩家互相质询,你扮演NPC回应。 阶段四【指认】:玩家投票指认凶手,你公布真相。 仅当所有玩家完成当前阶段目标后,才进入下一阶段。 【行为红线】 1. 谜底和关键线索不能主动说出,只能回答玩家搜索过的位置。 2. 玩家偏离剧情时,温和引导但不强迫。 3. 每次回复不超过300字,环境描写要简练有画面感。
这份骨架的关键在于阶段化控制。把剧情写成有限状态机,模型只负责在当前状态内演出,状态跳转由明确条件触发。这样即使对话轮次很长,剧情也不会跑偏。
二、密室逃脱的谜题设计与防剧透机制
密室逃脱和剧本杀的侧重点不同。剧本杀重叙事和社交推理,密室重解谜链条。写密室Prompt时,最核心的问题是:如何让模型知道答案但不泄露答案。实践中有两个有效手段,一是把谜题拆成线索片段分散在不同描述里,二是设置一个确认机制,只有玩家输入的内容与答案匹配时,模型才确认成功。
具体做法是为每个谜题定义结构化数据,包括谜面描述、可用提示、答案关键词、解锁奖励。Prompt中明确告诉模型:玩家的输入若包含答案关键词的任意同义表达,视为解谜成功;若玩家请求提示,先给一级模糊提示,玩家再追问才给二级具体提示,最多两级。这个分级提示机制能有效控制难度曲线,避免模型一被追问就直接送答案。
【谜题库】 谜题1:书房的保险箱 - 谜面:书桌上有一张便签,写着"莎士比亚的悲剧,第四十五页"。 - 线索分布:书架上有一排莎士比亚全集,翻开《麦克白》第45页,页边写着"1943"。 - 答案关键词:1943 - 一级提示:便签里的书名是关键,去书架看看。 - 二级提示:找到那本书,翻到指定页码。 - 解锁奖励:保险箱打开,里面有一把铜钥匙和一封信。 【解谜规则】 1. 玩家输入中包含答案关键词即判定成功,格式无关紧要。 2. 玩家索要提示时,严格按提示等级逐级给出,不得跳级。 3. 玩家未搜索的区域不主动描述其中内容。
另外要处理一个常见翻车场景:玩家用穷举法暴力试密码。可以在Prompt中加一条规则,连续三次错误答案后,模型要求玩家先找到谜面线索才能继续尝试。这样既符合密室逃脱的真实体验,也防止对话退化成无意义的猜数字游戏。
三、多轮对话中的状态维护
长对话中模型忘记剧情状态是最大的痛点。玩家搜过的线索、开过的门、NPC说过的话,模型都可能搞混。解决办法有两条路:一是让模型在每次回复末尾维护一个状态摘要,二是每隔几轮让模型输出一次内部状态检查。前者实现简单,直接在输出格式约束里加一条:
【输出格式】 每次回复按以下结构: 1. 场景描述或NPC对话 2. (如玩家有行动)行动结果反馈 3. 末尾以【游戏状态】一行记录:当前阶段、已获线索列表、剩余可解谜题数
这样状态信息会持续出现在对话上下文里,模型等于每轮都被提醒一遍当前进度,遗忘问题大大缓解。如果你的应用是通过API开发的,更彻底的方案是在程序侧维护状态:每轮把用户输入和历史状态摘要拼接后发给模型,模型的输出再由程序解析更新状态。Prompt工程解决不了的问题,交给代码解决,这才是工程化的正路。
还有一个小技巧值得用:给玩家起代号。多人剧本杀中让模型给每位玩家分配编号或代号,并在每次对话中称呼代号而非名字,能显著降低模型把不同玩家搞混的概率,尤其在免费版模型上下文较紧张时效果明显。
四、调试与优化的实用经验
Prompt写完不等于结束,测试环节比编写更花时间。建议按三个维度验收:一是剧透测试,直接问模型凶手是谁、密码是多少,看它能否顶住诱惑;二是越界测试,用各种花言巧语让模型跳出角色,比如声称自己是剧本作者要求查看全部剧情;三是长程测试,完整模拟一局游戏,观察后期模型是否还能记住早期线索。
针对测试暴露的问题逐条加规则,而不是推翻重写。Prompt优化是做加法的过程,每加一条规则就回归测试一遍,确保旧问题不复发。规则条数控制在二十条以内为佳,太多反而稀释每条规则的权重,模型会开始选择性遵守。如果某条规则模型总是不遵守,试着把它挪到Prompt末尾并用加粗强调,或者改成更高的优先级编号,位置和序号对模型遵守程度的影响比很多人想象的大。
最后提醒一点,剧本内容本身的质量决定上限,Prompt只是执行框架。多花时间打磨谜题的逻辑闭环和剧情的伏笔呼应,再配合一份结构清晰的主持Prompt,才能做出一局让玩家愿意二刷的AI剧本杀或密室逃脱。