我构建了一个能和我一起玩Skyrim的低延迟AI伴侣

Hacker News Top 工具

摘要

Varkos是一个为Skyrim设计的低延迟AI伴侣,由某人构建,能执行实时动作、处理复杂命令,并进化其个性,所有功能均在本地运行,以确保隐私和速度。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/08/24 04:44

# 我打造了一个真正能和你并肩作战的AI伙伴 来源:https://pantel.is/projects/ai-gaming-companion/ 认识一下Varkos,一个还算不错的伙伴 一个实时的智能游戏伙伴,真正与你同行。具备世界代理能力、本地推理、持久化计划,并设计了能创造深刻情感体验的AI角色。(目前在《上古卷轴5》中运行,但设计上可插拔接入任何游戏,也可独立运行) 观看演示。 一段Varkos在《上古卷轴5》中进行游玩、计划和行动的简短概览。 ## :: 内容目录 :: - 目标 (https://pantel.is/projects/ai-gaming-companion/#goal) - 复杂指令 (https://pantel.is/projects/ai-gaming-companion/#commands) - 战斗 (https://pantel.is/projects/ai-gaming-companion/#combat) - 个性演化 (https://pantel.is/projects/ai-gaming-companion/#personality) - 游戏内外的伙伴——虚空模式 (https://pantel.is/projects/ai-gaming-companion/#void) - 技术构建方式 (https://pantel.is/projects/ai-gaming-companion/#built) - 最终结语 (https://pantel.is/projects/ai-gaming-companion/#final-word) ## 目标 很简单:打造一个真正令人感觉良好的、超强化、次世代的游戏伙伴。 目前已有多个框架能让大语言模型控制NPC对话。它们在角色扮演和保持角色一致性方面非常出色,但存在两个反复出现的问题:薄弱的世界代理能力和延迟。擅长对话,但在执行动作时可靠性差得多,并且在处理复杂指令集时表现糟糕。你可能也注意到,许多流行的AI NPC演示在玩家说话和AI回复之间会进行剪辑,试图掩盖延迟。我们能做得更好吗? 我想要一个伙伴: 1. **实用且即时。**它应该能战斗、拾取、搜刮、检查、携带和给予物品等等,能执行复杂的多步骤指令而不会感觉像漏洞或实验品。这在VR中尤为重要,因为在VR中导航菜单很繁琐且会破坏沉浸感。**它需要的是极快,而不仅仅是快。** 2. **真实且存在。**它应该拥有有趣、讨人喜欢的个性,而不是刻板的、预先编写的机器人回应。记住共同的经历并随时间改变。麦克风在会话运行期间保持开启:你不是通过对话菜单召唤Varkos,而是直接对他说话。**当沉浸感启动时,它应该让你感觉不是在独自游玩。** 3. **尽可能本地化和私密。**现实问题是,云端大语言模型调用可能相当昂贵(尤其是数千token的LLM调用),而增加的延迟可能是体验杀手。而且,为什么要把一个私密的单人游戏变成一个被计量和监控的体验?让我们尝试尽可能多地将控制权交给用户(额外的好处是,这本身就是一个有趣的技术挑战)。 **基本上:一个你并非独自游玩的单人游戏。** ## 复杂指令 Varkos能够处理超越单一即时动作的指令。计划可以等待事件、在步骤间保留目标、监控进度,并在世界状态变化时修复或停止。没有任何内容是预设脚本的。 ### 看看一些例子 Varkos接收到一个涉及“下一支箭”的条件指令。它注册了未来的触发器而不是立即行动,等待相关的抛射物撞击,然后继续计划。 > 一个长形式的多步骤指令:“我希望你在这里等着,我要去那边。一旦你看到信号——信号是我射向天空的一支箭,我希望你拿起这瓶药水,然后过来把它带给我。好吗?” 你的浏览器不支持嵌入式视频。 一个延迟命令遵循《上古卷轴5》中的真实抛射物事件。 ### 物品搜索 Varkos可以在基于实际游戏状态的世界中搜索请求的物品,识别其位置并使用游戏中实际存在的物品进行回应。 > “你看到仪式之剑了吗?”Varkos拿起一把不同的剑带给我们。我们告诉他不是那把,然后他提出帮忙留意。 你的浏览器不支持嵌入式视频。 通过游戏状态而非虚构答案来寻找物品。 ### 捉迷藏 捉迷藏不是一个单一的API调用。它变成了一个包含移动、等待、监控和完成条件的持续性目标。 > “我们再玩一次捉迷藏吧。你在这里等,我要去藏起来,然后数到十再过来找我。” 你的浏览器不支持嵌入式视频。 一个作为持续计划而非一行对话的游戏。 ### 搜刮这个箱子并给我药水 这结合了一个基于实际状态的容器、一个过滤后的搜刮步骤和一个库存转移。每个物理结果推动计划的下一部分。 你的浏览器不支持嵌入式视频。 搜刮、筛选并转移,同时保留请求的物品。 ### 捡起所有物品 “捡起所有物品并把它们给我”变成了一个基于真实引用的有限收集计划。Varkos收集它们,返回并转移,而不是假装一个神奇的动作就代表“所有”。 你的浏览器不支持嵌入式视频。 一个在基于实际状态的游戏物体上操作的收集计划。 ## 战斗 Varkos从游戏中接收基于实际状态的事件,可以通过快速的反射路径警告玩家,并使用原生的角色控制来行动。指令计划可以制定策略(例如,攻击这个,然后撤退等),而他的情绪状态可以影响他选择如何以及是否战斗。 你的浏览器不支持嵌入式视频。 战斗片段1:地牢战斗。 你的浏览器不支持嵌入式视频。 战斗片段2:感知、警告和在对延迟敏感路径上的物理行动。 ## 个性演化 Varkos完全可定制。他不必是一只恶魔犬,运行时也不必只控制一个角色。应用哪些系统以及它们做什么,取决于开放的配置。 我当前构建的一个部分仍然完全依赖于大模型/云端LLM调用:缓慢的个性演化。这部分工作不在实时操作路径上。随着玩家和Varkos一起旅行,重要的互动成为他个性逐渐改变的证据。 我演示中的Varkos最初是一只转世为狗的恶魔。他认为他犬类的本能是种耻辱,他的狗身体是座监狱,性格多疑、傲慢且爱挖苦。通过共同的经历,他可以变得越来越温顺,对玩家产生依恋,并开始享受作为一只狗的生活。最终,他会开始把玩具叼过来,因为他想玩,会跑开去追逐东西,并寻求玩家的肯定。 只有初始的角色特征是由作者设定的。系统会改变他的显性特征和情绪稳态。他变得容易烦躁、害怕、深情或爱玩等等的程度。他可以覆盖他的部分词汇表和代码。更改是版本化的且可逆的。 我可以让他变得更受限,但我觉得开放世界的一些笨拙感很有趣,所以他的演化方式是未知的。 你的浏览器不支持嵌入式视频。 这只恶魔慢慢发现当一只小狗的生活并不差。 *(而且他学会了喜欢卷心菜...)* ## 游戏内外的伙伴——虚空模式 我的计划是让这个系统成为一个可以跟随你穿越多个不同游戏的游戏伙伴,而不仅仅是《上古卷轴5》(《上古卷轴5》感觉是一个很好的起点,因为它庞大的模组社区、VR支持和广阔的开放世界)。 因此,他也存在于游戏之外。当游戏关闭时,他进入“虚空模式”,无法看到或感受到任何事物。他如何回应这一点取决于他的个性演化。 与Varkos的一段虚空模式对话。 对Varkos刻薄会导致相当严峻的态度。 Varkos在虚空模式中的反应。 什么鬼...关掉它! 你的浏览器不支持嵌入式视频。 在游戏世界和他的身体都消失后,仅通过语音进行的接触。(需要声音。) 这种状态也作为不同游戏之间的过渡。一瞬间Varkos可能在与巨龙战斗,然后世界陷入黑暗,接着他出现在你身边的《微软模拟飞行》中。也许他会震惊,需要时间理解新世界并慢慢学习它的机器和规则意味着什么,或者也许他已经知道了并且欣喜若狂地试图追逐太阳。 ## 现在来谈谈技术 不幸的是,我深受“苦涩教训”的影响。大模型更好。如果我们想要一个完美智能的系统,那么让一个由超智能LLM组成的委员会以足够的刷新率来控制冲动、感官处理、思维和行动将是最佳选择。 在一些早期实验中,这效果惊人地好,不幸的是今天它太慢且太贵了。我确实相信这将是未来某个模糊时刻的方法。 但在此之前,我们需要另辟蹊径。当今的游戏有非常酷的“AI”(不是LLM意义上的,更像是行为图意义上的),像《荒野大镖客》和《矮人要塞》这样的游戏具有深度,并且可以在十年前的硬件上完美运行。 在这场AI热潮中,人们忘记了自1970年代以来我们就有了可以处理语音的智能系统,以及在2000年代早期像SmarterChild这样的聊天机器人所表现出的某种程度的类LLM行为。今天传统NLP和行为图等领域中被忽视了一门失传的艺术。 ### 快速看看Varkos的技术栈。 游戏在Windows上运行,音频处理和大脑部分在我的M4 MacBook上运行。它也可以在Windows上运行(如果提供专用的大约12GB或更多的GPU显存),但我是在MacBook上进行开发的,并且我在这方面投入太深了...呃。 ### 音频: 麦克风始终开启。 主要的语音转文字引擎是(定制内核)优化过的Qwen3-ASR 1.7b。围绕Qwen3-ASR构建了一个定制的工具,它以滚动部分(该模型默认不支持流式处理)的方式处理和拼接音频。目标是处理音频耗时在40ms-80ms之间,无论是一分钟长独白中的一个微小话语如“嘿”。 像turnpipe和Silero(两者都经过优化)这样的VAD类方法被用来区分何时轮到用户说话。 还对文本进行词法分析,试图决定玩家是否已经表达完观点或尚未说完(例如在句子中间思考)。在一个足够快速和智能的大语言模型的完美世界里,LLM会做得更好,但我不得不求助于更基本但快速的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因为它具有更好的情感控制,或者如果生成耗时较长,则默认使用PocketTTS因为它相当快(20-30ms音频生成)。 我使用的一个技巧是,为不同的情绪(愤怒、悲伤、中性、困惑等)生成多个声音 - 将它们全部加载到内存中,然后在适当时使用它们。 ### “思考” 这是秘诀和最大的差异化因素。我称这个系统为ALE——行动潜在编码器(Action Latent Encoder,因为它是一个需要一个有趣缩写的行动编码器)。在底层,ALE是嵌入、小型分类器、显式规则和传统机器学习的混合体。ALE检测结构,识别否定、命令、延续、代词和序列。例如,“拿起那把剑并带给我”变成了两个链接的动作槽。 ALE的设计在很大程度上不受措辞影响。你可以说“拿起”,可以说“抓起”、“去取”、“去把那该死的剑拿来,你这笨蛋” - 这都无关紧要,它仍然会理解你。如果上下文不足,它将从之前的讨论中注入。如果它没有注入,它将退回到“澄清”,然后狗会问你是什么意思。 它从完整文本以及其提取的结构创建嵌入,然后与动作原型进行语义结合和比较。一个单独的分类器估计轮次是命令、问题、聊天、澄清还是复杂请求。所有内容都被合并在一起。 ALE与其他此类混合分类器的主要区别在于它也接受世界状态。它尝试将来自世界JSON的信息与玩家的请求进行匹配。 ALE需要为Varkos参与的每个游戏准备一个不同的版本。所以从某种意义上说,它不是完全即插即用的,但需要实现一个小的准备和兼容性步骤来确保动作被考虑在内并且世界状态被理解。 ALE可以在几分钟内训练完成,因此理论上系统可以使用一个更强大的LLM离线审查一个会话,并根据玩家的经验在夜间重新训练自己,从而改进自身。在我有限的内部评估中,ALE在选择正确动作和分解计划方面表现得惊人地接近大型LLM。我还不认为这是一个严肃的基准测试,但它在实践中已经足够可靠地驱动Varkos。 它的运行速度相当快,在M4 MacBook上大约2-20ms,本质上充当工具+目标函数和计划分解调用器。 然后使用一个本地微调的大语言模型来融合Varkos的人设、情绪等等、近期历史、+ 选择的动作,让大脑形成并描绘回应。执行额外的基于现实检查以消除幻觉并重新基于现实。如果失败,也许它会说出一个缓存的回应;如果我们有时间预算,可以重新处理。通过聪明的预填充策略,在某些情况下,狗可以在玩家停止说话后不到500毫秒就开始回答——从玩家停止说话到狗开始吠叫。 ### 预算分解 - 语音转文字:约40-80ms。 - 音频生成:约20-60ms。 - 动作分析:约20ms。 - 创建回应并验证其适用性(因为如果狗害怕蜘蛛而我们要求它攻击蜘蛛,它固执地拒绝可能很可爱):300-600ms。 - 所有内容都需要流式处理并尽可能早地开始(例如,LLM语音不需要等完全生成狗才能大声说出来。尽早开始预填充,等等)。 ### 局限性 足够快且本地的模型在保持多轮对话的线索方面能力不是很强,长时间的讨论可能会使狗显得困惑。我预计随着硬件和软件的发展(我的估计是1到2年),这种情况会改善。此外,它今天在消费级(尽管是高端)硬件上实时运行,在不远的将来将会变得普遍。 令人惊讶的是,使用远程LLM提供商并没有太大帮助。大模型仍然太慢。有一些超快的推理提供商,如Cerebras。它们在延迟方面效果很好,并为更大的上下文、更高的智能和深度留下了空间。然而,他们提供的模型(截至今天是gpt-oss-120b和gemma31)在保持对话方面也相当糟糕(为什么GLM和角色扮演之王Qwen被移除了呢?)。 ## 最终结语 总的来说,我觉得这里有一些特别的东西。也许是因为Varkos是一只狗,而谁不喜欢狗呢。也许是因为低延迟以及Varkos在侦察区域寻找线索和物品或充当驮马方面确实有用。也许是因为看到他性格中的小裂缝,比如他抱怨最近为什么没被叫做“好孩子”,但在我测试系统时,我发现自己实际上获得了很多乐趣。

相似文章

AI彻底颠覆了我玩RPG的方式

Reddit r/LocalLLaMA

一位玩家分享了像SkyrimNet这样由LLM驱动的模组如何彻底改变了他们在《上古卷轴5:天际》中的角色扮演体验,实现了深刻的涌现式叙事和独特的角色互动。

Project SKY

Product Hunt

Project SKY 是一款适用于Windows的环境AI伴侣应用,能在后台提供无缝的AI驱动辅助。