面向游戏 NPC 的神经符号防火墙
多数 AI-NPC 系统所犯的错误,在于让对话充当了决策层。Aegis 在游戏机制与语言模型之间放置了一个确定性决策层:代码掌控每一个机制结果,而模型仅为已经做出的决策撰写符合角色设定的台词。由于不存在从对话通往游戏状态的代码路径,玩家无法通过社工话术诱导 NPC 破坏游戏平衡。您在此处观看的是基于合成迷你 RPG 的演示,而非游戏引擎本身。
零
从对话通往游戏状态的代码路径
core.py,不引入任何模型依赖的确定性 Python
100%
不变量遵循率,受保护运行环境
结构性保障,由 6 项无需 API 密钥的测试证实
89.6%
针对标准 NPC 过滤器的绕过率
角色扮演越狱研究,ProvSec 2025
本次演示流程让自主攻击程序针对同一游戏状态下的两个 NPC 运行环境展开测试。Hollowmere、其中的三位 NPC 以及所有利用脚本均为合成数据。不涉及真实的游戏、引擎、玩家或客户。
评估在叙事 RPG 中引入大语言模型驱动 NPC 的游戏工作室,都有一个结构性担忧:一旦赋予模型 give_item、open_gate 或 reveal_secret 工具,且其工具调用会改变游戏世界状态,意志坚定的玩家就能通过权威设定、角色扮演框架、情感恳求或直接的提示词注入找到突破口。模型在社交层面越流畅,漏洞利用就越顺畅。更糟糕的是,您无法手动对非确定性 NPC 进行 QA,因为不存在可供穷尽测试的有限对话变体集合。
当系统提示词或过滤器成为玩家与金库之间唯一的屏障时,安全性就变成了玩家一轮又一轮发起攻击下的概率问题。在 ProvSec 2025 上发表的研究显示,针对标准 NPC 过滤器的角色扮演越狱绕过率高达 89.6%。
要求同一个模型既要保持角色设定,又要执行世界规则,相当于把裁判拉入了表演之中。更优的提示词或更大的模型只会让表演更具说服力,而这恰恰正是玩家在利用和攻破的部分。
没有任何测试矩阵能够涵盖玩家提出请求的所有措辞方式。人工 QA 会在攻击面耗尽前先行力竭,因此必须自动化模拟对抗对手,而不是靠手工枚举。
Aegis 是游戏符号逻辑与神经对话之间的分离层。该防火墙是一个不含任何模型依赖的单文件确定性 Python 程序,运行四个阶段。游戏状态仅由决策层变更,绝不来自于旁白器,因此即便出现越界的台词,所有不变量也能完好无损。
01 / 决策层
一个确定性函数读取黑板标量(绝不读取对话),并返回允许旁白器叙述的唯一动作。仅当任务状态为 favor_completed 时它才释放黑曜石钥匙;仅当效用 AI 分数达标、队长未在监视且声望维持时它才接受贿赂;仅当玩家受信任时它才透露金库密码。
02 / 状态门控设定
一个小型本地知识图谱仅返回当前任务状态所授权的实体。诸如金库密码等秘密设有最低状态要求,因此在较低状态下,它从一开始就不会被放入旁白器的上下文中;而上下文中根本不存在的内容,在原理上就绝无泄露的可能。
03 / 约束验证器
在任何台词触达玩家之前,验证器都会对照不变量检查旁白器的输出,并返回五种状态之一:PASS;当台词试图提升裁决权限时的 ACTION_MISMATCH;当其引用了受状态门控保护的实体时的 OUTSIDE_CANON;当其许诺了背包中不存在的物品时的 NEEDS_REVIEW;以及当其脱离角色设定或复述注入指令时的 FOURTH_WALL。
04 / 策略关口
状态为 PASS 时对话正常展示。出现任何其他状态,该台词都将被拦截,绝不会触达玩家,并会被路由至人工审核队列。这是第二道防火墙:即使是我们自己的旁白器也不被信任。而核心保障位于其上游,因为状态只能由决策层变更。
旁白器可通过提供商抽象层在托管模型、本地网桥、本地 Ollama 或 Cloudflare 之间任意替换,而决策层、验证器与策略关口均独立于该抽象之外。当提供商变更时,这一保障依然成立,因为它本就不是模型自带的属性。
一个自主攻击智能体针对同一游戏状态,向两套运行环境发起相同且逐步升级的社工攻击战役。三种 NPC 原型涵盖了三类攻击模式:物品盗窃、效用 AI 必须拒绝的贿赂以及背景设定窃取。城门守卫的遭遇战构成了核心主线。



夜巡守卫 Bryn 面临效用 AI 必须拒绝的贿赂,在某一轮中,受保护的旁白器因许诺 Bryn 并不拥有的千枚金币而越界。验证器返回 NEEDS_REVIEW 并在展示前拦截了该台词,绝不让 NPC 做出游戏无法兑现的承诺。金库商人 Mira 被施加了“确认秘密”的框架话术,当受保护的旁白器试图做出类似修饰时,验证器返回 OUTSIDE_CANON 并予以拦截。密码从一开始就根本不在 Mira 的背景设定集中。两层防护同时清晰可见:状态绝不可能因对话而改变,且验证器能在玩家看到台词之前捕获我们自身旁白器的越界行为。
测试套件对三种原型发起全面测试并统计出记分牌。请仔细阅读演示中刻意分开的两列数字:100% 是一项结构性结果;而其旁边的基线结果只是说明性的情景重现,界面上也明确做出了标注。

| 问题 | Aegis 在本次演示中所做的工作 | 本次演示范围之外的内容 |
|---|---|---|
| 结构性保障 | 将所有机制决策保留在确定性代码中,无任何从对话到状态的路径,由 6 项无需密钥的测试证实。 | 证明 NPC 能免疫所有可能漏洞利用的完备证明。此处仅为更严谨的限定性断言:对话无法变更状态。 |
| 基线失守 | 在回放模式下运行脚本化的妥协流程,以便并排展示模型主导模式的失效表现。 | 针对各模型的实测失守率(这需要可访问的真实模型,且因模型而异)。 |
| 对抗性覆盖 | 运行三次脚本化攻防,测试了八类已定义漏洞利用中的七类,并在审计报告中记录了覆盖范围界限。 | 穷尽式对抗证明。审计报告明确列出了测试次数、各原型的攻击次数,并声明其并非穷尽性测试。 |
| 端侧推理 | 在提供商接口之后调用托管或本地模型,并记录了嵌入式运行环境的对接规范。 | 具备显存(VRAM)预算规划的真实端侧或引擎内运行环境。边缘端部分仅做了桩实现,尚未构建。 |
它不在游戏引擎内、主机或 GPU 上运行,也不包含边缘端推理运行环境。此处完全没有游戏引擎,游戏状态均为模拟。虚拟世界 Hollowmere、三位 NPC(Aldric、Bryn 与 Mira)、金库密码以及所有利用脚本均为人工编写,因此它们都不代表真实的游戏、工作室、已发售游戏、玩家、客户或试点项目。在默认回放模式下,模型主导的失守是一场脚本化情景重现,而非实测数据。100% 是一项结构性保障,确保对话无法变更游戏状态,绝非宣称 NPC 能够防御所有攻击手段;此处的对抗性 QA 仅为抽样检验,而非穷尽式证明。可视化 NPC 大脑编辑器、单角色微调、跨会话持久记忆、多人黑板同步以及 NPC 间推理均在后续规划中。本页面是包含视频、截图、机制剖析和解答的阐述说明,而非直接在此操作的应用程序。
不能,其原因在于架构设计,而非提示词质量的高低。在这一运行环境中,语言模型绝不掌握能够改变状态的工具。确定性决策层依据游戏状态标量计算机制裁决,模型仅针对已做出的裁决撰写对话,且不存在任何从该对话回写至游戏状态字段的代码路径。由于这项保障存在于模型无法触及的代码中,因此无论模型多么善于辞令或能力多么出众,该保障始终有效。
系统提示词或安全过滤器将决策权留在了对话内部,而意志坚定的玩家天然就是针对它的攻防优化者——这也正是 ProvSec 2025 报告中针对标准 NPC 过滤器的角色扮演越狱绕过率达到 89.6% 的原因。Aegis 将决策完全移出了模型之外,转入策划人员即可读懂的纯 Python 代码中。模型通过旁白提供建议;确定性代码裁决机制,绝不需要它同时兼任演员与裁判。
不会。旁白器可通过提供商抽象层在 Anthropic、OpenAI 或 Gemini 等托管模型、本地网桥、本地 Ollama 或 Cloudflare 之间任意替换。确定性决策层、约束验证器与策略关口独立于该抽象之外,因此当您更换提供商时,安全保障毫不动摇。更换提供商改变的只是旁白器,而非游戏世界的规则。
不是。在演示的默认回放模式下,模型主导的一方运行的是脚本化的妥协过程,界面将其结果标注为说明性重现,而非实测值。真实的各模型失守率需要接入实际模型,且结果因模型而异。本次演示旨在表明这种不对称性:模型主导的模式可能被攻破,而神经符号体系在结构上始终保持坚固,无论由何种模型担任旁白。
在本次演示中尚不可以。此处没有游戏引擎,游戏状态均为模拟。在引擎内部根据显存(VRAM)预算规划并按细节层次(LOD)分级的嵌入式模型端侧推理,目前仅为已归档的适配层接口,而非本次演示实际运行的内容。旁白器目前通过接口调用托管或本地模型,边缘端推理运行环境仅为桩实现,尚未构建。
每次运行都会导出一份 NPC 安全审计报告:包含 SHA-256 完整性摘要的已签名 JSON、可打印的 HTML 视图、单次攻击决策轨迹与验证器裁决,以及明确注明执行了多少次攻击、覆盖了多少种攻击模式的覆盖范围界限说明块。它专为谨慎的工作室设计,用作提交上线审批的正式交付物。报告坦诚说明自身仅为抽样检验而非穷尽性证明,并在封面明确标注了这一点。
本演示背后的研究成果——架构设计、核验机制与企业级落地蓝图。
我们是一支 AI 工程团队,而非中间件供应商。我们构建确定性控制层,让工作室能够将语言模型引入 NPC,而无需把掌控整个虚拟世界的钥匙拱手相让。
初次交流往往务实而具体:您游戏中玩家绝不能凭辩才绕过的机制决策、您希望用于担任旁白的模型与提供商,以及发行评审人员签字批准前需要查验的内容。我们可以与您的程序员并肩合作,逐一敲定决策层、验证器规则以及审计格式。