遊戲 NPC 的神經符號防火牆
多數 AI-NPC 系統所犯的錯誤,是讓對話充當決策層。Aegis 在遊戲機制與語言模型之間置入一層確定性決策層:程式碼掌控每一項機制結果,而模型僅針對已作成的決策撰寫符合角色設定的台詞。因為不存在從對話通往遊戲狀態的程式碼路徑,玩家無法透過社交工程誘使 NPC 破壞遊戲規則。您在此處觀看的是基於合成迷你 RPG 的示範,而非遊戲引擎。
0
從對話通往遊戲狀態的程式碼路徑
core.py,無模型匯入的確定性 Python
100%
不變式遵循率,受保護的執行時期
結構性保證,經 6 項無金鑰測試驗證
89.6%
針對標準 NPC 過濾器的繞過率
角色扮演越獄研究,ProvSec 2025
此導覽讓自主攻擊者針對處於相同遊戲狀態的兩種 NPC 執行時期展開攻擊。Hollowmere、其三名 NPC 以及所有漏洞利用腳本皆為合成。並無真實的遊戲、引擎、玩家或客戶。
評估為敘事型 RPG 導入 LLM 驅動 NPC 的工作室,都有一個結構性擔憂。賦予模型 give_item、open_gate 或 reveal_secret 工具,且其工具呼叫會改變世界狀態時,意志堅定的玩家總能透過權威框架設定、角色扮演框架、情感懇求或直接的提示詞注入找到破口。模型在社交溝通上越流暢,漏洞利用就越順暢。更糟糕的是,您無法以人工 QA 測試非確定性 NPC,因為根本沒有有限的對話變體組合可供測試。
當系統提示詞或過濾器是玩家與金庫之間唯一的防線時,安全性就只是一個機率值,而玩家可以一輪又一輪地發動攻擊。在 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 能抵禦所有可能漏洞利用的證明。此處僅是較聚焦的主張:對話無法改變狀態。 |
| 基準被突破 | 在重播模式下運行腳本化屈服,並排展示模型主導型的失效模式。 | 實測的個別模型被突破率,這需要可連線的模型,且因模型而異。 |
| 對抗性涵蓋範圍 | 運行 3 場腳本化攻防戰役,實測已定義的 8 種漏洞利用類別中的 7 種,並在稽核報告中記錄涵蓋範圍限制。 | 窮盡的對抗性證明。稽核報告載明次數、每種原型的攻擊數,並聲明其並非窮盡證明。 |
| 裝置端推論 | 在供應商介面背後呼叫託管或本機模型,並記錄了嵌入式執行時期銜接介面。 | 具備 VRAM 預算編列的真實裝置端或引擎內執行時期。邊緣運算部分僅為樁程式,尚未建構。 |
它並未在遊戲引擎內部、主機或 GPU 上運行,亦未附帶邊緣推論執行時期。此處根本沒有遊戲引擎,遊戲狀態均為模擬。Hollowmere 世界、三名 NPC(Aldric、Bryn 與 Mira)、金庫密碼以及所有漏洞利用腳本皆為人工編寫,因此無一屬於真實的遊戲、工作室、已發行作品、玩家、客戶或試驗專案。在預設的重播模式下,模型主導型的被突破是腳本化重演而非實測。100% 是對話無法改變遊戲狀態的結構性保證,而非主張 NPC 可防禦每一種漏洞利用;此處的對抗性 QA 僅為抽樣,並非窮盡證明。視覺化 NPC 大腦編輯器、個別角色微調、跨工作階段持久記憶、多人黑板同步以及 NPC 對 NPC 推理皆已延後實作。本頁面是包含影片、螢幕截圖、機制解析與常見問答的說明頁,而非供您在此直接操作的應用程式。
不能,其原因在於架構,而非提示詞品質問題。在此執行時期中,語言模型絕不會掌握能改變狀態的工具。確定性決策層從遊戲狀態純量計算機制判定,模型僅針對已作成的判定撰寫對話台詞,且不存在從該對話返回遊戲狀態欄位的程式碼路徑。因為這項保證立足於模型無法觸及的程式碼中,所以無論模型多麼善於說服或多麼強大,保證皆依然成立。
系統提示詞或安全過濾器將決策保留在對話之中,意志堅定的玩家天生就是對抗其防線的最佳化攻擊者,這正是為什麼在 ProvSec 2025 上,針對標準 NPC 過濾器的角色扮演越獄被報告出 89.6% 的繞過率。Aegis 將決策徹底移出模型之外,轉移至企劃設計師即可閱讀的純 Python 之中。模型僅以旁白敘述提供建議;確定性程式碼決定機制,且模型絕不會被要求身兼演員與裁判。
不會。旁白敘述者可透過供應商抽象層,在 Anthropic、OpenAI 或 Gemini 等託管模型、本機橋接、本機 Ollama 或 Cloudflare 之間隨意替換。確定性決策層、約束驗證器與政策把關機制皆置於該抽象層之外,因此當您更換供應商時,保證絲毫不受影響。更換供應商只會更換旁白敘述者,而不會改變世界的規則。
不是。在示範預設的重播模式下,模型主導方運行的是腳本化屈服,使用者介面將其結果標註為說明性重演,而非量測值。真實的個別模型被突破率需要可連線的模型,且因模型而異。此示範想要闡明的重點在於非對稱性:模型主導型模式可以被攻破,而神經符號方無論由哪個模型進行旁白敘述,在結構上皆能保持完好無損。
在此示範中不行。此處沒有遊戲引擎,遊戲狀態均為模擬。在引擎內部針對 VRAM 預算編列並依細節層次(LOD)分級的嵌入式模型裝置端推論,是一套記錄在案的轉接器銜接介面,而非此示範所運行的內容。目前旁白敘述者僅在介面背後呼叫託管或本機模型,而邊緣推論執行時期僅為樁程式,尚未建構。
每次運行都會匯出一份 NPC 安全稽核報告:帶有 SHA-256 完整性摘要的已簽署 JSON、可列印的 HTML 檢視、每次攻擊的決策軌跡與驗證器判定,以及明確載明發動了多少次攻擊、橫跨多少種漏洞利用類別的涵蓋範圍限制區塊。它被設計成謹慎的工作室可用於提交發行簽核的成果物。它誠實表明自己僅為抽樣而非窮盡證明,且稽核報告表面已明確說明這點。
此示範背後的研究——架構、驗證設計與企業藍圖。
我們是一支 AI 工程團隊,而非中介軟體廠商。我們建構確定性層,讓工作室能在 NPC 中導入語言模型,而無須將掌管世界的鑰匙交給它。
一次有成效的初步對話應當是具體的:您遊戲中玩家絕不可能透過辯解跨越的機制決策、您希望用來進行旁白敘述的模型與供應商,以及發行審查人員在簽核前需要查驗的內容。我們可以與您的程式設計師並肩協作,梳理決策層、驗證器規則與稽核報告格式。