跳到正文
Hidden Door · AI 叙事与游戏工程· 一手来源·· 8 天前精选AI 评分68

一个时间旅行的叙事框架

A time-traveling narrative harness

推荐理由

原文给出快慢双时间线架构,把玩家等待放在短回复上,后台完成长程叙事规划,为 AI 游戏降低感知延迟提供可迁移方法。

正文 · AI 翻译

在实时游戏中,玩家行动与世界回应之间的停顿,其可容忍窗口非常狭窄。如果回应太慢,这个瞬间就会失去冲击力,玩家会拿起手机或切换标签页。一位优秀的人类 DM 即使在自己思考时,也会让桌面保持推进。他们可能会用一点描述来拖延时间,同时查看笔记,或者让玩家彼此交谈,但不会让所有人坐在没有反馈的沉默中一分钟。与此同时,即时回应也并非必要——玩家愿意在合理范围内稍等片刻,以换取一个出色的结果。

我们的叙事世界模型意味着故事可以追踪自身的世界状态,并在数小时的会话中保持连贯,但如果每一轮回复都要等一分钟才出现,那也没什么价值。那么模型需要思考什么?我们又如何把所有内容都容纳进去?

秘诀在于并非所有延迟的感觉都一样。发布一个使用多种机器学习的产品,意味着在一个多维空间中工作,其中产品设计、机器学习和软件工程都会相互影响彼此的约束和可能性。每一个都可以巧妙运用,借助那个经典的解题技巧——“让问题根本无需解决”——来帮助规避其他方面的问题。

在这篇文章中,我们将介绍我们的回合架构如何为保持故事质量较高的代理式故事框架腾出空间,围绕玩家实际等待内容做出的谨慎产品选择如何为后台推理争取宝贵时间,以及机器学习方面如何帮助化解棘手的工程挑战(例如在程序上合理但在叙事上不合理的状态协调),并实现原本难以落地的产品功能。

感知延迟与时间上的双重收益

共同创作一个令人满意的故事需要大量的思考,无论 DM 是谁(或是什么)。模型的思考以 token 衡量,模型做出良好决策所需的输入上下文也是如此。决定每个角色想要什么、什么时候一个秘密准备好被揭露、以及一场戏在结束前还需要哪些情节节拍或揭示来兑现,都是判断性决策,它们依赖于从一堆信息中筛选出最相关的内容。它们需要强大的模型和推理空间,并且越来越需要空间来使用工具整理自己的信息。把所有东西塞进一个提示中,无论哪种方式都无济于事。它更慢,而且模型会被最响亮或最近的内容分心(参见Choose your own demise中 LLM 故事讲述者的 5 个坏习惯。)

在聊天工具或角色聊天应用中通过自定义提示词获得的 AI 故事体验的基本情况下,你正在与一个模型交互,具有线性的输入和输出,并在一条时间线上运行。所有的思考都发生在调用内部,玩家等待每一回合,这就是它往往要么快速而肤浅,要么深思熟虑而缓慢的原因。即使使用角色卡和上下文摘要等常见工具,随着故事历史的增长,它往往也会随时间变得越来越不连贯。

在 Hidden Door,我们得以兼得两者。我们的叙事世界模型不仅以结构化信息、记忆和差异信息来管理长期运行的故事,而且由我们的 agentic story harness 运行的每一回合都在两条时间线上运行,以保持故事质量高且延迟低。

快速时间线是玩家提交动作时所等待的那条时间线。它响应玩家的意图,叙述发生的事件,计算并应用由此产生的世界状态变化,为文本设置样式,并建议下一步可供玩家选择的动作。快速时间线只包含本次回复不可或缺的任务,并且它依据上一回合准备好的指导来行动。而我们的叙事世界模型意味着,随着游戏进行,这一步不会因上下文膨胀 → 压缩循环而失去连贯性。

负责更长周期思考、规划和故事质量的,是慢速时间线。这是 Hidden Door 平台内 AI DM 的核心。它不会把所有内容都塞进提示词,而是使用工具在需要时即时检索结构化上下文,并以适合当前任务或决策的详细程度进行检索:场景历史、玩家当前关注点、秘密、章节计划、两个角色之间的共同历史。它管理每个 NPC 的目标和信念,遵循情境剧本,判断场景是否准备结束,调整节奏和张力,并撰写一份简报,为下一次快速回复提供指导。这是叙事规划的一半工作,也是每一回合中大多数模型调用所在,数量从几个到 20 个不等。在规划任务之外,我们还会运行一些较小的维护任务:对场景进行持续摘要,整理故事变量和游戏状态,跟踪秘密与揭示,并保持描述的最新状态。

诀窍在于玩家几乎从不等待这些更慢的思考任务。

慢时间线中的任务会在快速回复发出时在后台启动,并在玩家本来就要花费的几秒内运行,用来阅读剧情节拍并决定下一步做什么。这让我们能够有效地双重利用时间,因为除非玩家在慢任务完成前提交下一回合,否则玩家不会感知到额外延迟。在实践中,这种情况很少发生;在最近两周的时间窗口内,只有 0.5% 的玩家提交回合因正在运行的后台任务而需要等待任意时长。

当然,存在一些权衡。更深层的规划任务必须在不知道玩家下一步行动的情况下,为下一回合提供建议。在这里,我们受到人类 DM 准备方式的启发,既要在会话开始前准备,也要在回合之间准备:调整玩家正在前往的方向,改编剧情弧线及其可能的结局,考虑可以给出哪些提示,以及哪个角色需要一个高光时刻。

这些都不依赖于预测玩家的精确下一步行动。一位事先准备好了地牢的人类 DM,看到队伍转而前往酒馆时,并不会把他们拖回地下。伏击、线索和高光时刻会跟着来到酒馆,有时只需一点叙事上的障眼法。在我们的系统中,慢时间线的引导只被当作引导,因此当玩家做出出人意料的選擇时,它会随之调整,而不是继续强化不一致,或抛弃那些有助于引导出高质量故事的周密计划。

差异化知识伴随差异化时机

拆分回合不那么明显的收益在于,负责撰写逐回合回复的系统,应当比更全面、更慢的规划步骤知道得更少。一个什么都知道的单一模型,即使被指示不要使用,也倾向于把一切都用上。本该隐藏继承人的店主会在你第一杯酒时随意泄露那个秘密,你的其他酒吧同伴会像这是常识一样对消息作出反应,而计划放在故事弧线终章的背叛,要么被遗忘,要么在几回合内就上演(参见急于化解张力,这是AI 叙事最糟糕的习惯之一)。即使是前沿模型,也很不擅长克制那些它们暂时不该付诸行动的知识,而在长上下文中,关于它的指令往往会被当下与情节最相关的内容所覆盖。

因此,我们故意对快速写作者隐瞒信息。它只会收到一份简短、聚焦的简报,说明当前这一刻需要什么,从而可以把全部注意力都放在这一刻上。

同样的问题也出现在角色知道什么上。如果你的角色刚刚从我们平凡的世界跌入一个魔法世界,你的室友第一次看到你施展魔法时应该大惊失色,但魔法世界的当地人却不应感到惊讶。给一个简单的 AI 工具足够的上下文来理解魔法体系,它往往会把魔法视为对所有人、在所有地方都理所当然且平淡无奇的事。追踪谁知道什么,既是记忆问题,也是时机问题!

同样的拆分让我们能够向快速写作者精确提供我们所知道它可能需要做出决策所需的上下文——因此,如果玩家角色在他们毫无察觉的室友面前施放法术,从而向他们揭示了魔法的存在,系统已经准备好处理这种情况……但它也无法泄露关于魔法世界中推翻统治家族日益增长的阴谋的更深层秘密,因为我们没有告诉它。

总结

把延迟仅仅当作一个工程问题来对待是很诱人的,去追求更快的服务商、更小的模型和更少的调用。这些当然都很重要!但我们最大的收获来自做出彼此互补的架构、机器学习和产品选择。借助这些工具在时间上双重获益,为讲好故事所必需的深入思考、规划和维护腾出了空间——从玩家的角度来看,这一切都是免费的。

来源:Hidden Door · AI 叙事与游戏工程 · hiddendoor.co