一个角色滑出人设的四个原因
一个角色跳出人设,可能是因为对话已经超出了它的记忆范围,可能是因为你的消息问的是助手而不是角色本身,可能是因为这场戏没有一个能撑住它的情境,也可能是因为一个过滤器介入了。前三个原因由你来修复,第四个不是。
这种跳出,读起来通常像是模型失去了兴趣。但它的机制其实更死板,四个原因里有三个都有直接的补救方法。
描述被挤出了记忆范围
角色设定表,位于对话的最顶端,而一段长对话,会把它挤出视野。角色随后会朝一个中性的声音漂移,而这正是模型在没有指令时会做的事。每隔二三十条消息重新申明一遍那句话,不需要任何代价,却能防止这个问题。
你在对助手说话,而不是对角色说话
像「你能让他更生气一点吗」这样的问题,是在向系统谈论这个角色。回复会从系统那里传来,而这场戏也就结束了。把导演意图写进戏里,或者放进一句括号旁白里,能让这个框架保持完整。
这场戏没有情境
一个无事可做的角色,会退回到聊天状态。当存在一个地点、一个时刻,以及一些有风险的东西时,一场戏才能撑住;没有这些,它就会溶解成普通对话。这就是为什么一句强有力的开场白,对一致性的贡献,比一份详尽的描述更大。
过滤器介入了
第四个原因看起来不一样:声音突然切换成一种正式的语域,还会自称。这不是角色滑出了人设,而是另一个层面在说话。认出它,能让你不用去重写一份本来就不是问题所在的描述。
开始之前
告诉它「保持角色」有用吗?
作为一次提醒,有用,但它没办法恢复一份已经被挤出记忆范围的描述。重复那份描述,比重复这条指令更有效。
为什么在长会话里更容易跳出人设?
因为预算被填满了。这和任何长对话会忘记自己开头的机制是一样的,只是角色扮演更早就会注意到这一点。
更短的描述会更稳定吗?
是的,而且是可以量化的。一句话,能经受住反复重申;而一整页文字,根本不会被重申。
用一个地点、一个时刻,和一些有风险的东西,来开始一场戏。
开始角色对话