Stage Whisper 如何在长冒险中处理叙事一致性
第一次一个 AI 引用了我三个会话前说过的话时,我知道这不一样。
不是"近似"的回忆。不是听起来好像发生过的即兴发挥。而是精确的引用,在恰到好处的时刻,由一个甚至不是场景焦点的 NPC 说出来。
这就是 Stage Whisper 的记忆系统使之成为可能的。但要理解为什么这很重要,你首先需要理解为什么大多数 AI 角色扮演工具在此处失败。
问题:上下文不仅有限,还会被稀释
AI 模型有一个有限的上下文窗口。除了 AI 从其训练中获得的嵌入式知识以外,它对你的冒险的唯一了解来自于上下文中的内容。一个好的现代 LLM 有大约 20 万 token 的上下文。更大的 LLM 有 100 万,但通常运行成本高昂。(这是截至 2026 年第一季度的情况,鉴于技术发展,我相信这篇文章很快就会过时)
20 万 token 可以存储大约一到三个会话的 TTRPG 游戏对话。但仅将完整会话对话放入上下文中,并不能万无一失地确保它真的被使用。还有一个因素是:上下文稀释。
AI 模型从上下文中的任何内容中查找和提取相关信息的能力有限。塞进去的东西越多,AI 的注意力就越分散。如果上下文中塞满了多个会话的游戏内容,AI 可能找不到玩家角色试图引用的那一个特定事物,或者叙事试图回应的那个事物。
结果:不准确的细节,叙事矛盾,听起来困惑的角色。例如,叙事可能会写关于"你们在那家酒馆中分享的温柔时刻",但可能搞错地点、搞错角色,或者编造从未发生过的细节。这些明显的矛盾很快会打破沉浸感。
因此,上下文稀释可能与根本没有将信息放在上下文中一样具有破坏性。两者都导致同样的问题:角色(或旁白)不知道他们应该知道的事情。
四层记忆系统
Stage Whisper 用四种不同的记忆类型来解决这个问题,每种解决不同的问题。
第一层:角色卡
Stage Whisper 解决的第一个问题是上下文不够大,无法容纳整个游戏的历史。我们需要记住每个会话之间的角色是谁。我们不能让每个新会话都引入一整套全新的角色阵容。
Stage Whisper 为每个主要角色写出完整的角色卡,包括玩家角色。这些信息存储在数据库中,并在角色出现的任何场景中加载到上下文中。因此,AI 始终知道这些角色是谁:他们的性格、外貌和背景故事。
它不需要加载每一个 NPC!因此我们可以拥有一个非常大且多样化的 NPC 阵容,可以按需引入。我目前为止玩了几个冒险,我是一艘大船或一列火车的船员之一,Stage Whisper 能够维护一个约 20 个角色的船员名册,在需要时可以以一致的性格出现。医疗舱里的医生、工程部门的总工程师和工程团队、货舱里的货物主管、舰桥上的驾驶员和船长,等等。
第二层:会话摘要
Stage Whisper 不会将整个聊天历史保留在上下文中,而是将会话总结成摘要。
只有上一会话的摘要被加载到上下文中,以及前五个会话概要的列表(摘要的更短的一段落版本)。AI 可以选择获取更多会话概要,并加载它认为真正需要参考的任何会话的完整摘要。这并不优雅,但确保重要信息要么在上下文的开头要么在结尾,这些位置是 AI 最能集中注意力的地方。
有了角色卡和会话摘要,AI 知道角色是谁,并且对最近发生的事有很好的了解。除此之外,还有冒险文件跟踪长期线索,实际上是 GM 关于冒险中发生了什么以及最近最紧迫事项的笔记。
第三层:NPC 记忆和场景摘要
但这通常还不够。在较长的冒险中,玩家和其他角色有着共同的历史。他们经历过高风险和高情感的事件。他们有共同的内部笑话。他们想引用之前成功的计策,或回忆起失败。
会话摘要给你大局:情节节拍、主要角色发展时刻。但你需要更详细的内容来捕捉特定事件或特定引用的细微差别。
Stage Whisper 还会生成 NPC 记忆和场景摘要。区别是:会话摘要侧重于发生了什么的客观叙事。NPC 记忆侧重于当时 NPC 的感受或想法,他们版本的事件,可能与干巴巴的摘要有所不同。场景摘要比摘要更详细地记录特定对话和行动序列。
在会话结束时,AI 通读消息历史,为每个 NPC 提取重要记忆。它将这些重新表述成包含以下内容的标准格式:
- 观察 — NPC 实际看到了什么
- 反思 — NPC 对此的感受
- 元数据 — 标签、主题、重要性分数
然后 AI 调用工具将其插入向量数据库,其中内容被向量化。这提供了语义搜索能力,允许记忆按意义匹配,而不仅仅是关键词。
之后,当 AI 需要搜索记忆时,它会写一个类似"Yuki 在走廊里哭"的查询,这会找出所有相关记忆,即使它们不匹配确切的措辞。AI 从结果中挑选它需要的。
第四层:知识库
角色需要记住发生了什么。但世界本身也需要保持一致。一座城市的政治结构需要在会话之间保持一致。一个以特定方式运作的魔法系统也需要保持一致性。
大多数冒险并不会从一开始就规划好所有这些。因此知识条目在会话进行中被添加和更新,然后作为新场景的参考以确保一致性。
当它生效时的感受
玩游戏和读书之间的区别特征是玩家拥有主导权。你决定你的行动、你的话语,叙事和其他角色对此做出回应。角色能够引用你几个会话前说过的话,这有助于强调那种主导权以及你与世界中的人物正在构建的联系。
以下是来自 Stage Whisper 会话的一个真实例子:
[玩家输入] "我很高兴我当时饿了,决定在凌晨两点打开我的门"
[叙事]
她把杯子放下。缓慢地。小心地。就像在处理什么易碎的东西。然后她在沙发上转身面对你,把一条腿收在身下,她的膝盖几乎碰到你的。
"你在凌晨两点打开了你的门,因为你饿了。"
"是的。"
"而我在走廊里哭,因为我……不太好。你看到了我。然后你说,'我不是在偷看。'"
背景:NPC 和我的 PC 正在回忆他们第一次见面的那个夜晚。NPC 刚刚承认她很高兴当时在那里,因为遇到了我的 PC。我通过回忆起那个晚上的一个具体细节来回应。NPC 以直接引用我几个会话前说过的话来回应,这只能来自于 NPC 记忆或场景记忆。
这个场景更有冲击力,因为 NPC 能够逐字引用我说过的话。不只是即兴或编造,也不是回忆干巴巴的事件。这是精确的回忆。而这种精确性让关系感觉真实。我的行动和话语是有意义的。
Stage Whisper 尚未解决的问题
即使有了这个记忆系统,仍然存在一些问题。
会话内上下文: 记忆系统在会话间有效,但不能解决单个大型会话中的上下文问题。会话可以运行很长时间并包含大量对话。仍然需要优化会话内的上下文管理,以避免上下文稀释效应。
秘密: 因为每个 NPC 卡都被加载,AI 对全部角色有完整视图,它往往忽略了某个特定角色不应该知道或做出行动的情况。AI 倾向于对其可用的所有信息采取行动,因此很难让它们不对某个角色不会知道的事情采取行动。这需要一个更复杂的设置。
这两者都是活跃的工作领域。秘密问题尤其是我现在正在攻克的——更多内容将在未来的文章中呈现。
Stage Whisper 是为人性化深度和长冒险一致性的单人 TTRPG 而构建的。立即开始或加入我们的 Discord来看看记忆系统在实践中如何运作。
有关 Stage Whisper 记忆系统的更多信息,请参见第二部分:上下文隔离和第三部分:NPC 梦境。