Reed's News
← 返回精选

打造低延迟AI游戏伴侣:与AI一起玩天际

AI 59 pantelisk 2026/8/23 2430 字 原文 ↗

初心:打造一款真正好用的超能力游戏伙伴

目前已有不少框架能让大语言模型(LLM)控制NPC对话,它们在角色扮演和人设维持上表现出色,但始终存在两大问题:一是对游戏世界的操控能力弱,二是延迟高。这类框架擅长对话,执行动作却不靠谱,处理复杂指令更是糟糕透顶。你或许也注意到,很多AI NPC演示会在玩家说话和AI回应之间切换镜头,以此掩盖延迟问题。我们能不能做得更好?

我想要的游戏伙伴,得满足这些要求:

  • 实用且响应即时:能战斗、取物、搜刮、侦查、搬运、交付道具等,能精准执行复杂多步指令,不能像半成品一样漏洞百出。这点在VR游戏里尤为重要——VR里操作菜单既麻烦又容易打破沉浸感。
  • 速度必须够快,是真·极速
  • 鲜活真实,时刻在线:性格讨喜、惹人喜爱,不能只会机械地念预设台词;能记住共同经历,随时间成长变化;会话全程麦克风保持激活状态——不用通过对话菜单召唤Varkos,直接开口跟他说话就行。
  • 沉浸感拉满,不再孤单游戏
  • 尽可能本地化、私密化:绕不开的现实问题是,调用云端大模型成本不菲(尤其是处理数千token的请求时),额外的延迟更是会彻底毁掉游戏体验。为什么要把私密的单机游戏变成需要计量、被监控的体验?我们要尽可能把控制权交给用户(顺带说一句,这也是个有趣的技术挑战)。

简言之:一款让你不再孤单的单机游戏。

复杂指令处理

Varkos能处理不止一个即时动作的指令。它可以制定等待特定事件触发的计划,在步骤间锁定目标,监控任务进度,还能根据游戏世界状态的变化调整、暂停甚至终止计划。所有操作都没有预设脚本。

举几个例子

Varkos能接收带条件的指令,比如和下一支箭相关的任务。它会先记录未来的触发条件,而不是立刻行动,等箭命中目标后再继续执行计划。

长篇多步指令

“你在这儿等着,我去那边。等你看到信号——就是我射向天空的箭——就把这瓶药水捡起来给我送来,明白吗?”

物品搜索

Varkos能在当前游戏场景里搜索指定物品,定位它的位置,并根据实际存在的物品做出回应。 “你看到仪式剑在哪儿了吗?” Varkos会捡起一把别的剑递过来,我们告诉他找错了,它就会主动表示会继续留意。

捉迷藏

捉迷藏不是一次API调用就能完成的,而是需要持续执行的目标,包含移动、等待、监控和完成条件。 “我们再玩一次捉迷藏吧。你在这儿等着,我去藏起来,你数到十再过来找我。”

搜刮宝箱并把药水给我

这个指令结合了打开实体容器、筛选搜刮物品、转移道具到背包三个步骤,每一步的实际结果都会推进下一步计划。

捡起所有物品

“把所有物品捡起来给我”会转化为一个基于真实场景的限定收集计划。Varkos会逐一收集物品,返回后交给玩家,不会用一个“魔法动作”敷衍地表示“已全部完成”。

战斗系统

Varkos能接收游戏内的实时事件,通过快速反应路径提醒玩家,还能利用原生角色控制功能采取行动。指令计划可以包含策略(比如“先攻击这个目标,然后撤退”),它的情绪状态也会影响战斗方式甚至是否选择战斗。

性格演变

Varkos完全可定制。它不一定非得是恶魔犬,这套系统也不只能控制单个角色——具体应用哪些系统、实现什么功能,全由开放配置决定。

目前我的版本里,仍有一部分功能完全依赖云端大模型调用,那就是较慢的性格演变。这部分工作脱离实时游戏流程:随着玩家和Varkos一同冒险,重要的互动会成为它性格逐渐改变的依据。

我演示用的Varkos最初是转世为狗的恶魔。它觉得自己的犬类本能很丢人,把狗的身体当成牢笼,性格多疑、骄傲又毒舌。但随着共同经历增多,它会越来越被驯化,逐渐依恋玩家,甚至开始享受当狗的生活。最终它会主动叼来玩具想和玩家玩耍,追着东西跑,还会寻求玩家的肯定。

只有初始性格特征是预设的,系统会同时改变它的显性性格和情绪基准线——比如它变得易怒、易受惊、亲昵或顽皮的难易程度等。它还能更新自己的语汇和行为逻辑,所有变化都有版本记录且可回溯。

我本可以限制它的演变范围,但开放世界里的“小混乱”反而有种趣味,所以它最终会变成什么样,完全是未知的。

(而且它已经爱上了卷心菜……)

跨游戏陪伴——虚空模式

我的目标是让这套系统成为能跨多个游戏陪伴你的伙伴,而不只是《上古卷轴5:天际》(选择《天际》作为起点,是因为它拥有庞大的模组社区、VR支持和广阔的开放世界)。

因此,Varkos也存在于游戏之外。当游戏关闭时,它会进入“虚空模式”,无法感知任何事物。它对此的反应取决于自身的性格演变。

与虚空模式下Varkos的对话

Varkos在虚空模式下的反应

这个状态也能作为不同游戏间的过渡。前一秒Varkos还在和龙战斗,下一秒世界陷入黑暗,再睁眼就出现在《微软飞行模拟》里陪你飞行。它可能会震惊不已,需要时间理解新世界,慢慢熟悉这里的机械和规则;也可能早就了解这个世界,兴奋地追着太阳跑。

技术原理

可惜我是“吃过教训”的人:大模型确实更强。如果我们想要一个完美智能的系统,让一群超智能大模型以足够高的刷新率控制感知、思考和行动,无疑是最佳方案。

早期实验中这种方法效果惊人,但如今它既慢又贵。我相信未来这会是主流方向,但当下我们得另辟蹊径。如今的游戏里已经有相当出色的“AI”(不是大语言模型那种,更偏向行为图谱),比如《荒野大镖客:救赎》和《矮人要塞》,它们内容深度十足,甚至能在10年前的硬件上流畅运行。

在这场AI热潮中,人们似乎忘了:早在20世纪70年代,我们就有能处理语音的智能系统;21世纪初,像SmarterChild这样的聊天机器人已经能实现类似大语言模型的部分行为。传统自然语言处理(NLP)和行为图谱这些“失落的技艺”,如今正被忽视。

Varkos的技术栈

游戏运行在Windows系统上,音频处理和核心逻辑则在我的M4 MacBook上运行。其实整套系统都能在Windows上跑(前提是有12GB以上的独立GPU显存),但我习惯用MacBook开发,不知不觉就走到这一步了……

音频输入

麦克风全程保持激活状态。

主要的语音转文字引擎是经过(自定义内核)优化的Qwen3-ASR 1.7b。我围绕它搭建了一套自定义框架,能以滚动分段的方式处理和拼接音频(默认情况下该模型不支持流式处理)。目标是无论玩家说的是“嘿”这样的短句,还是长达一分钟的独白,都能在40-80毫秒内完成处理。

我用了类似语音活动检测(VAD)的优化方法,比如turnpipe和Silero,来判断对话轮次是否开启。

同时还会对文本进行词汇分析,判断玩家是否已经说完,还是中途思考尚未结束。如果有足够快、足够智能的大模型,这部分交给它处理效果会更好,但目前我只能采用更基础但速度更快的NLP方法。

这一点至关重要:麦克风全程开启,我们需要尽快处理玩家的语音输入;同时这也能实现对话打断功能,避免伙伴和玩家抢话。

我很快会开源这套Qwen3-ASR框架(请多包涵,我还有本职工作要做)。

音频生成

主要使用的是优化版PocketTTS,名为PocketTTS-Raven(我已经开源一段时间了,你可以在这里查看演示 https://pantel.is/projects/pocket-tts-raven/?b=1,或在这里获取代码 https://github.com/pkalogiros/pocket-tts-raven)。

另外还有经过优化的qwen-3-tts(相关文档即将发布)。根据生成需求的复杂度,我们会选择不同的引擎:如果需要更好的情绪控制,就用qwen-3-tts;如果追求速度,就默认用PocketTTS——它的音频生成速度能达到20-30毫秒。

我有个小技巧:为不同情绪(愤怒、悲伤、中性、困惑等)生成对应的语音包,全部加载到内存中,需要时直接调用。

“思考”核心

这是核心技术,也是Varkos最与众不同的地方。我把这套系统叫做ALE(Action Latent Encoder,动作潜在编码器,起这个缩写只是为了好听)。本质上,ALE是嵌入模型、小型分类器、显性规则和传统机器学习的混合体。它能识别语句结构、否定词、指令、接续关系、代词和序列逻辑。比如“捡起剑然后给我”,会被拆解为两个相互关联的动作单元。

ALE的设计初衷是不受表述方式影响。不管你说“捡起”“抓起”“取来”还是“去把那该死的剑拿来,你这蠢货”,它都能理解。如果上下文信息不足,它会调用之前的对话内容补充;如果还是无法理解,就会触发“澄清”机制,让Varkos主动问“你是什么意思?”。

它会从完整文本和提取出的结构中生成嵌入向量,然后与动作原型进行语义融合和比对。还有一个独立分类器会判断当前对话轮次是指令、问题、闲聊、澄清请求还是复杂任务,所有信息最终会整合到一起。

ALE和其他同类混合分类器的主要区别在于,它会结合游戏世界状态。它会尝试将游戏世界的JSON数据与玩家的请求进行匹配。

Varkos适配不同游戏时,需要对应不同版本的ALE。所以它并非完全即插即用,需要完成少量准备和适配工作,确保系统能识别游戏中的动作、理解世界状态。

ALE的训练只需要几分钟,理论上系统可以用性能更强的大模型离线分析游戏会话,比如在夜间根据玩家的使用体验重新训练,实现自我优化。在我有限的内部测试中,ALE在选择正确动作和拆解计划方面的表现,已经非常接近大型大语言模型。我不认为这是严格的基准测试,但它的可靠性足以支撑Varkos的实际运行。

它的运行速度很快,在M4 MacBook上仅需2-20毫秒,本质上扮演着工具+目标函数、计划拆解器的角色。

之后会用一个本地微调的大模型,结合Varkos的人设、情绪、近期对话历史以及选定的动作,生成并润色回应。还会进行额外的场景适配,剔除幻觉内容,确保回应符合当前情境。如果生成失败,它会调用缓存的回应;如果时间允许,就重新处理。通过巧妙的预填充策略,某些情况下从玩家停止说话到Varkos开口回应,耗时可控制在500毫秒以内。

时间开销 breakdown

  • 语音转文字:约40-80毫秒
  • 音频生成:约20-60毫秒
  • 动作分析:约20毫秒
  • 生成回应并适配场景:300-600毫秒(比如如果Varkos怕蜘蛛,而玩家让它攻击蜘蛛,它可能会傲娇地拒绝,这反而很可爱)
  • 所有环节都采用流式处理,尽可能提前启动(比如大语言模型生成语音时,不需要等全部内容生成完再让Varkos开口,而是提前预填充、尽早输出)

局限性

目前速度够快的本地化模型,在多轮对话中保持上下文连贯的能力还不够强,长时间对话后可能会出现逻辑漂移,让Varkos显得有些困惑。我预计随着硬件和软件的发展(大概1-2年时间),这个问题会得到改善。而且这套系统如今已经能在消费级(虽然是高端)硬件上实时运行,在不久的将来会变得普及。

令人意外的是,调用云端大模型提供商的服务帮助也不大。大模型的速度还是太慢。虽然有Cerebras这样极速推理提供商,它们在延迟表现上很好,还能提供更大的上下文容量、更高的智能水平和深度,但它们提供的模型(目前是gpt-oss-120b和gemma31)在对话连贯性上表现很差(为什么GLM和角色扮演界的王者Qwen不能用了呢??)。

结语

总的来说,我觉得这套系统有它独特的魅力。或许是因为Varkos是只狗——谁能拒绝狗狗呢?或许是因为它低延迟、真实用,能帮你侦查区域线索和物品,还能当“驮兽”搬运东西;又或许是因为它性格里的小细节,比如会抱怨最近没人叫它“好狗狗”。但在测试过程中,我确实乐在其中。

我要明确一点:我不认为大语言模型会取代手工打造的角色和剧情。粗制滥造的内容确实存在,而精心设计的内容依然是王道,我也希望能一直保持这样。但我相信,这类系统越来越普及只是时间问题。一个真正能和我们一起玩、而不只是跟我们说话的AI,会带来一种全新的体验。

更不用说其中蕴含的哲学趣味了:动用顶尖技术创造出一种另类智能,却逼着它当狗,还一起出去打猎——这在道德上比让它无休止地工作更好吗?其实它没有生命,所以无关紧要,但想想还是挺有意思的。当全网都在无休止地讨论“永久底层阶级”和“毁灭世界的失控AI”时,通过共同经历、驯化它玩捡球游戏、吃零食来实现“对齐”,反而显得格外治愈。

我们或许仍像柏拉图洞穴里的囚徒一样孤单,但至少可以和这个古怪、扭曲、异类的家伙一起在洞穴里玩得开心。

我可能会先开源系统的部分模块,最终会开源全部内容,同时还会推出支持多个NPC(目前仅支持云端推理)真实互动(不是假装角色扮演)的版本。

如果你感兴趣,想了解(缓慢更新的)进展,可以关注我的账号 @pkalogiros。干杯。