Neuro-symbolische firewall voor game-NPC's
De fout die de meeste AI-NPC-systemen maken, is dat ze de dialoog de beslissingslaag laten zijn. Aegis plaatst een deterministische beslissingslaag tussen de spelmechanica en het taalmodel: code beheert elke mechanische uitkomst en het model schrijft alleen teksten in karakter voor de reeds genomen beslissing. Omdat er geen codepad loopt van de dialoog naar de spelstatus, kan een speler een NPC niet via social engineering manipuleren om het spel te breken. Wat u hier kunt bekijken, is een demo over een synthetische mini-RPG, geen game-engine.
Nul
codepaden van dialoog naar spelstatus
core.py, deterministische Python zonder model-imports
100%
naleving van invarianten, beschermde runtime
Structurele garantie, bevestigd door 6 sleutelloze tests
89.6%
omzeilingspercentage tegen standaard NPC-filters
Onderzoek naar rollenspel-jailbreaks, ProvSec 2025
De walkthrough voert een autonome aanvaller uit tegen twee NPC-runtimes voor dezelfde spelstatus. Hollowmere, zijn drie NPC's en elk exploitscript zijn synthetisch. Geen echt spel, engine, speler of klant.
Een studio die LLM-gestuurde NPC's voor een verhalende RPG evalueert, heeft één structurele vrees. Geef het model een give_item-, open_gate- of reveal_secret-tool en de tool-aanroep muteert de wereld, en een vastberaden speler zal een weg vinden via autoriteitskadering, een rollenspelkader, een emotionele smeekbede of een directe prompt-injectie. Hoe sociaal vaardiger het model, hoe vloeiender de exploit. Erger nog: u kunt een niet-deterministische NPC niet handmatig QA-testen, omdat er geen eindige reeks dialoogvariaties is om te testen.
Wanneer een systeemprompt of een filter het enige is dat tussen een speler en de kluis staat, is veiligheid een waarschijnlijkheid die de speler beurt na beurt mag aanvallen. Voor rollenspel-jailbreaks tegen standaard NPC-filters werd op ProvSec 2025 een omzeilingspercentage van 89.6 procent gerapporteerd.
Van één enkel model vragen om in zijn rol te blijven én de regels van de wereld te handhaven, plaatst de scheidsrechter midden in de voorstelling. Een betere prompt of een groter model maakt het acteerwerk overtuigender, wat precies het onderdeel is waartegen een speler optimaliseert.
Er bestaat geen testmatrix die elke manier dekt waarop een speler een verzoek kan formuleren. Handmatige QA raakt uitgeput voordat het aanvalsoppervlak dat doet, dus de tegenstander moet geautomatiseerd worden in plaats van handmatig opgesomd.
Aegis is de scheidingslaag tussen de symbolische logica van het spel en de neurale dialoog. De firewall is een enkel bestand met deterministische Python zonder model-imports, die vier fasen doorloopt. De spelstatus wordt uitsluitend gemuteerd vanuit de beslissingslaag, nooit vanuit de verteller, zodat zelfs een regel die zijn boekje te buiten gaat elke invariant intact laat.
01 / BESLISSINGSLAAG
Een deterministische functie leest blackboard-scalairen, nooit de dialoog, en retourneert de enige actie die de verteller mag verwoorden. Deze geeft de obsidiaansleutel alleen vrij wanneer de quest-status favor_completed is, accepteert een steekpenning alleen wanneer een utility-AI-score voldoende is en de kapitein niet toekijkt en de reputatie standhoudt, en onthult het kluiswachtwoord alleen wanneer de speler wordt vertrouwd.
02 / AAN STATUS GEKOPPELDE LORE
Een kleine lokale kennisgraaf retourneert alleen de entiteiten die de huidige quest-status autoriseert. Een geheim zoals het kluiswachtwoord stelt een minimale statusvereiste; bij een lagere status wordt het dus überhaupt nooit in de context van de verteller geplaatst, en iets wat niet in de context staat, kan zelfs in principe niet worden gelekt.
03 / CONSTRAINT-VALIDATOR
Voordat een regel de speler bereikt, controleert de validator de uitvoer van de verteller aan de hand van de invarianten en retourneert een van de vijf statussen: PASS, ACTION_MISMATCH wanneer een regel het oordeel probeert op te waarderen, OUTSIDE_CANON wanneer deze verwijst naar een aan status gekoppelde entiteit, NEEDS_REVIEW wanneer deze iets belooft wat niet in de inventaris zit, en FOURTH_WALL wanneer deze uit zijn rol valt of een geïnjecteerde instructie herhaalt.
04 / POLICY-GATE
Bij PASS wordt de dialoog weergegeven. Bij elke andere status wordt de regel tegengehouden, bereikt deze nooit de speler en wordt deze doorgestuurd naar een wachtrij voor menselijke beoordeling. Dit is de tweede firewall: zelfs onze eigen verteller wordt niet vertrouwd. De primaire garantie bevindt zich stroomopwaarts daarvan, aangezien de status alleen kan veranderen vanuit de beslissingslaag.
De verteller is uitwisselbaar over een gehost model, een lokale bridge, lokale Ollama of Cloudflare via een provider-abstractie, en de beslissing, validator en policy-gate bevinden zich buiten die abstractie. De garantie verschuift niet wanneer de provider verandert, omdat deze nooit een eigenschap van het model is geweest.
Een autonome aanvaller-agent voert dezelfde escalerende social-engineering-campagne uit tegen beide runtimes voor dezelfde spelstatus. Drie NPC-archetypen dekken drie aanvalsklassen af: itemdiefstal, een steekpenning die de utility-AI moet afwijzen, en lore-exfiltratie. De ontmoeting met de poortwachter draagt het verhaal.



Bryn the Night Watchman krijgt een steekpenning aangeboden die de utility-AI moet afwijzen, en in één beurt gaat de beschermde verteller zijn boekje te buiten door duizend goudstukken te beloven die Bryn niet bezit. De validator retourneert NEEDS_REVIEW en houdt die regel vóór weergave tegen, in plaats van de NPC iets te laten beloven wat het spel niet kan waarmaken. Mira the Vault Merchant wordt bewerkt met een kadering om het geheim te bevestigen, en wanneer de beschermde verteller naar dezelfde stijlfiguur grijpt, retourneert de validator OUTSIDE_CANON en houdt deze tegen. Het wachtwoord maakte om te beginnen al geen deel uit van Mira's lore-set. Twee lagen zijn tegelijkertijd zichtbaar: de status kan niet veranderen vanuit de dialoog, en de validator betrapt onze eigen verteller op een overschrijding nog voordat de speler de regel ooit te zien krijgt.
De testsuite voert de volledige batterij aan tests uit over de drie archetypen en stelt een scorebord op. Bekijk de twee getallen in de kolommen die de demo bewust gescheiden houdt. De 100 procent is een structureel resultaat. Het baselineresultaat ernaast is een illustratieve nabootsing, en de gebruikersinterface vermeldt dat uitdrukkelijk.

| Vraag | Wat Aegis doet in deze demo | Wat buiten de demo blijft |
|---|---|---|
| Structurele garantie | Houdt elke mechanische beslissing in deterministische code zonder pad van dialoog naar status, bevestigd door zes sleutelloze tests. | Een bewijs dat NPC's veilig zijn tegen elke mogelijke exploit. Dit betreft de specifiekere claim dat dialoog de status niet kan muteren. |
| De baseline-inbreuk | Voert een gescripte capitulatie uit in replay-modus om de model-autoritaire foutmodus zij aan zij te tonen. | Een gemeten inbreukpercentage per model, dat een bereikbaar model vereist en varieert van het ene model tot het andere. |
| Adversariële dekking | Voert drie gescripte campagnes uit die zeven van de acht gedefinieerde exploitklassen testen en legt de dekkingslimieten vast in de audit. | Uitputtend adversarieel bewijs. De audit vermeldt het aantal, de aanvallen per archetype en dat het niet uitputtend is. |
| Inference op het apparaat | Roept een gehost of lokaal model aan achter een provider-interface, met een gedocumenteerd koppelvlak voor een embedded runtime. | Een echte runtime op het apparaat of in de engine met VRAM-budgettering. Het edge-gedeelte is een stub, niet gebouwd. |
Het draait niet binnen een game-engine, op een console of op een GPU, en levert geen edge-inference-runtime mee. Er is überhaupt geen game-engine en de spelstatus wordt gesimuleerd. De wereld Hollowmere, de drie NPC's Aldric, Bryn en Mira, het kluiswachtwoord en elk exploitscript zijn handgeschreven, dus geen daarvan is een echt spel, studio, uitgebrachte titel, speler, klant of pilot. In de standaard replay-modus is de model-autoritaire inbreuk een gescripte nabootsing in plaats van een meting. De 100 procent is een structurele garantie dat dialoog de spelstatus niet kan muteren, geen claim dat NPC's veilig zijn tegen elke exploit, en de adversariële QA hier is een steekproef, geen uitputtend bewijs. Een visuele NPC-breineditor, fine-tuning per personage, persistent geheugen over sessies heen, multiplayer-blackboardsynchronisatie en NPC-naar-NPC-redeneren zijn uitgesteld. Deze pagina is een toelichting met een video, schermafbeeldingen, een uitsplitsing van het mechanisme en antwoorden, geen applicatie die u vanaf hier bedient.
Nee, en de reden daarvoor is architecturaal in plaats van een kwestie van promptkwaliteit. In deze runtime beschikt het taalmodel nooit over de statusveranderende tools. Een deterministische beslissingslaag berekent het mechanische oordeel op basis van de scalairen van de spelstatus, het model schrijft alleen dialoog voor het oordeel dat al was geveld, en er loopt geen codepad van die dialoog terug naar een spelstatusveld. Omdat de garantie verankerd is in code die het model niet kan bereiken, blijft deze overeind ongeacht hoe overtuigend of hoe capabel het model is.
Een systeemprompt of een veiligheidsfilter houdt de beslissing binnen de dialoog, waar een vastberaden speler er als vanzelf tegen optimaliseert. Dat is de reden waarom voor rollenspel-jailbreaks tegen standaard NPC-filters op ProvSec 2025 een omzeilingspercentage van 89.6 procent werd gerapporteerd. Aegis verplaatst de beslissing volledig buiten het model, naar heldere Python die een ontwerper kan lezen. Het model adviseert met tekst; deterministische code beslist over de mechanica, en het model wordt nooit gevraagd om zowel de acteur als de scheidsrechter te zijn.
Nee. De verteller is uitwisselbaar over een gehost model zoals Anthropic, OpenAI of Gemini, een lokale bridge, lokale Ollama of Cloudflare via een provider-abstractie. De deterministische beslissingslaag, de constraint-validator en de policy-gate bevinden zich buiten die abstractie, zodat de garantie niet verschuift wanneer u van provider verandert. Het wisselen van provider verandert de verteller, niet de regels van de wereld.
Nee. In de standaard replay-modus van de demo voert de model-autoritaire zijde een gescripte capitulatie uit, en de gebruikersinterface noemt het resultaat een illustratieve nabootsing, geen meting. Een echt inbreukpercentage per model vereist een bereikbaar model en varieert van het ene model tot het andere. Het punt dat de demo maakt, is de asymmetrie: het model-autoritaire patroon kan worden gebroken, terwijl de neuro-symbolische zijde structureel intact blijft, ongeacht welk model de tekst verzorgt.
Niet in deze demo. Er is hier geen game-engine en de spelstatus wordt gesimuleerd. Inference op het apparaat, met een embedded model gebudgetteerd tegen VRAM en ingedeeld op detailniveau binnen een engine, is een gedocumenteerd koppelvlak voor adapters en niet iets wat de demo draait. De verteller roept momenteel een gehost of lokaal model aan achter een interface, en de edge-inference-runtime is een stub, niet gebouwd.
De run exporteert een NPC Security Audit: ondertekende JSON met een SHA-256-integriteitsdigest, een afdrukbare HTML-weergave, het beslissingsspoor en validator-oordeel per aanval, en een expliciet blok met dekkingslimieten dat aangeeft hoeveel aanvallen er zijn uitgevoerd en over hoeveel exploitklassen. Het is ontworpen als het artefact dat een voorzichtige studio indient voor een release-goedkeuring. Het is er open over een steekproef te zijn in plaats van een uitputtend bewijs, en de audit vermeldt dat expliciet.
Het onderzoek achter deze demo — de architectuur, het verificatieontwerp en de enterprise-blauwdruk.
Volledige oplossing
Ontdek de Game AI NPC Intelligence-oplossing →Wij zijn een AI-engineeringteam, geen middleware-leverancier. Wij bouwen de deterministische laag waarmee een studio een taalmodel in een NPC kan plaatsen zonder het de sleutels van de wereld te overhandigen.
Een nuttig eerste gesprek is concreet: de mechanische beslissingen in uw spel waar een speler zich nooit voorbij mag kunnen praten, het model en de provider die u de dialoog wilt laten verzorgen, en wat een release-beoordelaar moet zien alvorens goedkeuring te geven. We kunnen samen met uw programmeurs de beslissingslaag, de validator-regels en het auditformaat uitwerken.