开发者开源本地 LLM NPC 后端:让 NPC 之间互相交谈
开发者将一套完全本地运行的语音对话 NPC 系统开源,多 NPC 可轮流发言并记忆上下文,在 RTX 4070 Ti 上…
项目概览
一名独立开发者将其去年完成的本地 LLM NPC 对话系统以开源形式发布。项目主打「完全本地化的语音到语音」链路——语音转文本(STT)、本地大语言模型推理、文本转语音(TTS)——无需任何云端依赖。其核心关注点不是 NPC 对玩家的一问一答,而是 NPC 与 NPC 之间的自然对话,以及玩家作为「旁观者」时这种交流对沉浸感的影响。
核心能力
系统中的 NPC 之间可以互相交谈,并保留彼此说过的话;当玩家后续与某个 NPC 交互时,该 NPC 能够调用之前的上下文作为记忆。项目还包含一个后台「游戏管理员 AI」,可以在 NPC 不知情的情况下注入隐藏的行为提示,用以轻微地引导剧情走向。
- 完全本地运行:STT + LLM + TTS 全链路无需联网。
- 上下文记忆:NPC 之间对话内容会沉淀,影响后续对玩家的回应。
- 剧情微调:由独立的 Game Manager 注入隐藏指令。
性能与硬件配置
延迟是该项目的关键技术挑战之一。开发者使用 Llama 3.2 3B(VR)和 Llama 3.2 7B(搭载 RTX 4070 Ti)进行推理时,首音频时间(Time to First Audio, TTFA)大约在 400 到 600 毫秒之间——这是对话开始「感觉自然」而非「等 NPC 思考」的临界区间。系统被设计为可与 Unity 场景并行运行,演示视频中可以看到实际效果。
多 NPC 协作机制
多个 NPC 共存时,为避免 GPU 过载,项目采用共享生成锁(shared generation lock)。每个 NPC 拥有独立的 LLM 上下文、人设和 TTS 配置,但在任意时刻只有其中一个进行生成,NPC 之间通过「轮流发言」机制切换,角色切换几乎是瞬时的,听感上较为自然。当前限制是:两个 NPC 无法在同一时刻真正「抢话」式地同时发声。
接口与可扩展性
系统基于 WebSocket 通信,理论上可接入 Unity、Unreal 或任何支持 WebSocket 的引擎。开发者也随仓库一并提供了 Unity 端的脚本。若要适配自有游戏,主要工作量在调优三层 NPC 的 Prompt 体系以及 Game Manager 的提示词;开发者表示这部分借助 AI 辅助可以完成,并认为未来多数环节有望自动化。
资源链接
- GitHub 仓库:https://github.com/lschiweck/LLM-NPC-Agents
- Unity 演示视频:https://www.youtube.com/watch?v=Z-WZ-Prl8bI
