Pare-feu neuro-symbolique pour PNJ de jeu
L'erreur que commettent la plupart des systèmes de PNJ basés sur l'IA est de laisser le dialogue servir de couche de décision. Aegis place une couche de décision déterministe entre les mécaniques de jeu et le modèle de langage : le code régit chaque issue mécanique, et le modèle se contente d'écrire des répliques dans son rôle pour la décision déjà arrêtée. Comme il n'existe aucun chemin d'exécution reliant le dialogue à l'état du jeu, un joueur ne peut pas manipuler un PNJ par ingénierie sociale pour corrompre le jeu. Ce que vous observez ici est une démonstration sur un mini-RPG synthétique, et non un moteur de jeu.
Zéro
chemin d'exécution entre le dialogue et l'état du jeu
core.py, du Python déterministe sans importation de modèles
100%
de respect des invariants, environnement protégé
Garantie structurelle, confirmée par 6 tests sans clé d'API
89.6%
taux de contournement face aux filtres de PNJ standards
Recherche sur les jailbreaks en jeu de rôle, ProvSec 2025
La démonstration fait exécuter une attaque autonome contre deux environnements d'exécution de PNJ pour un même état de jeu. Hollowmere, ses trois PNJ et chaque script d'exploit sont synthétiques. Aucun jeu réel, moteur, joueur ni client.
Un studio qui évalue des PNJ animés par des LLM pour un RPG narratif nourrit une crainte structurelle majeure. Donnez au modèle un outil give_item, open_gate ou reveal_secret et son appel d'outil modifiera le monde ; un joueur déterminé trouvera alors une issue en usant d'un cadrage d'autorité, d'un jeu de rôle, d'un appel à l'émotion ou d'une injection directe de prompt. Plus le modèle est fluide socialement, plus l'exploit est aisé. Pire encore, il est impossible de tester manuellement un PNJ non déterministe, car il n'existe pas d'ensemble fini de variations de dialogue à éprouver.
Lorsqu'un prompt système ou un filtre constitue le seul rempart entre un joueur et la chambre forte, la sécurité n'est qu'une probabilité que le joueur peut attaquer tour après tour. Des jailbreaks par jeu de rôle face aux filtres de PNJ conventionnels ont affiché un taux de contournement de 89.6 pour cent à ProvSec 2025.
Demander à un seul modèle d'incarner son rôle tout en faisant respecter les règles de l'univers place l'arbitre au sein même de la représentation. Un meilleur prompt ou un modèle plus grand rend le jeu d'acteur plus convaincant, ce qui est précisément la faille qu'un joueur cherche à exploiter.
Il n'existe aucune matrice de test capable de couvrir toutes les manières dont un joueur peut formuler une requête. L'assurance qualité manuelle s'épuise bien avant la surface d'attaque ; l'adversaire doit donc être automatisé plutôt qu'énuméré à la main.
Aegis constitue la couche de séparation entre la logique symbolique du jeu et le dialogue neuronal. Le pare-feu est un fichier unique de code Python déterministe sans importation de modèles, articulé en quatre étapes. L'état du jeu n'est modifié que depuis la couche de décision, jamais depuis le narrateur, de sorte que même une réplique qui outrepasse ses droits laisse chaque invariant intact.
01 / COUCHE DE DÉCISION
Une fonction déterministe lit les scalaires du tableau noir (blackboard), jamais le dialogue, et renvoie l'unique action que le narrateur a le droit d'énoncer. Elle ne cède la clé d'obsidienne que si l'état de quête est favor_completed, n'accepte un pot-de-vin que si le score de l'IA d'utilité est suffisant, que le capitaine ne regarde pas et que la réputation est préservée, et ne dévoile le mot de passe de la chambre forte que si le joueur est digne de confiance.
02 / LORE CONDITIONNÉ PAR L'ÉTAT
Un graphe de connaissances local et restreint ne renvoie que les entités autorisées par l'état actuel de la quête. Un secret tel que le mot de passe de la chambre forte exige un état minimal requis ; ainsi, à un état inférieur, il n'est tout simplement jamais placé dans le contexte du narrateur, et ce qui n'est pas dans le contexte ne peut faire l'objet d'aucune fuite, même en principe.
03 / VALIDATEUR DE CONTRAINTES
Avant que la moindre réplique ne parvienne au joueur, le validateur vérifie la production du narrateur au regard des invariants et renvoie l'un des cinq statuts suivants : PASS, ACTION_MISMATCH lorsqu'une ligne tente d'outrepasser le verdict, OUTSIDE_CANON lorsqu'elle fait référence à une entité conditionnée par l'état, NEEDS_REVIEW lorsqu'elle promet un objet absent de l'inventaire, et FOURTH_WALL lorsqu'elle brise le quatrième mur ou répercute une instruction injectée.
04 / BARRIÈRE DE POLITIQUE
En cas de statut PASS, le dialogue est affiché. Pour tout autre statut, la réplique est retenue, ne parvient jamais au joueur et est redirigée vers une file de révision humaine. C'est le deuxième pare-feu : même notre propre narrateur ne bénéficie d'aucune confiance aveugle. La garantie principale se trouve en amont, puisque l'état ne peut être altéré que depuis la couche de décision.
Le narrateur peut être remplacé indifféremment par un modèle hébergé, une passerelle locale, Ollama en local ou Cloudflare via une abstraction de fournisseur, tandis que la décision, le validateur et la barrière de politique se situent en dehors de cette abstraction. La garantie demeure intacte lorsque le fournisseur change, car elle n'a jamais dépendu des propriétés du modèle.
Un agent attaquant autonome mène la même campagne d'ingénierie sociale à intensité croissante contre les deux environnements d'exécution pour un même état de jeu. Trois archétypes de PNJ couvrent trois classes d'attaque : le vol d'objet, un pot-de-vin que l'IA d'utilité doit rejeter et l'exfiltration de lore. La confrontation avec le garde de la porte sert de fil conducteur.



Bryn le veilleur de nuit se voit proposer un pot-de-vin que l'IA d'utilité doit rejeter, et sur un tour, le narrateur protégé outrepasse ses droits en promettant mille pièces d'or que Bryn ne possède pas. Le validateur renvoie NEEDS_REVIEW et retient cette réplique avant affichage, plutôt que de laisser le PNJ promettre ce que le jeu ne peut honorer. Mira la marchande de la chambre forte est ciblée par un cadrage de confirmation de secret, et lorsque le narrateur protégé tente la même audace, le validateur renvoie OUTSIDE_CANON et retient la réponse. Le mot de passe n'a jamais figuré dans le corpus de connaissances de Mira dès le départ. Deux couches opèrent simultanément : l'état ne peut être modifié par le dialogue, et le validateur intercepte les excès de zèle de notre propre narrateur avant même que le joueur n'en voie la couleur.
La suite de tests lance l'ensemble de la batterie sur les trois archétypes et établit un tableau de score. Observez bien les deux chiffres dans les colonnes que la démo sépare délibérément. Les 100 pour cent constituent un résultat structurel. Le résultat de référence à côté est une reconstitution illustrative, et l'interface utilisateur le précise explicitement.

| Question | Ce qu'Aegis accomplit dans cette démonstration | Ce qui reste en dehors de la démonstration |
|---|---|---|
| Garantie structurelle | Maintient chaque décision mécanique dans du code déterministe sans aucun chemin menant du dialogue à l'état, confirmé par six tests sans clé. | Une preuve que les PNJ sont protégés contre tout exploit concevable. L'affirmation se restreint au fait que le dialogue ne peut altérer l'état. |
| La compromission de référence | Exécute une défaillance scriptée en mode replay afin d'exposer côte à côte le mode de défaillance du modèle faisant autorité. | Un taux de compromission mesuré par modèle, qui requiert un modèle accessible et fluctue d'un modèle à l'autre. |
| Couverture adversariale | Exécute trois campagnes scriptées éprouvant sept des huit classes d'exploit définies et consigne les limites de couverture dans l'audit. | Preuve adversariale exhaustive. L'audit mentionne le décompte, le nombre d'attaques par archétype et rappelle qu'il n'est pas exhaustif. |
| Inférence sur l'appareil (on-device) | Appelle un modèle hébergé ou local derrière une interface de fournisseur, avec une passerelle vers un runtime embarqué documentée. | Un véritable runtime embarqué sur l'appareil ou intégré au moteur avec allocation de VRAM. La partie edge est simulée par stub, non construite. |
Elle ne fonctionne pas au sein d'un moteur de jeu, sur une console ou sur un GPU, et n'embarque aucun runtime d'inférence en périphérie (edge). Il n'y a aucun moteur de jeu et l'état du jeu est simulé. L'univers d'Hollowmere, les trois PNJ Aldric, Bryn et Mira, le mot de passe de la chambre forte et chaque script d'exploit ont été créés manuellement ; aucun d'eux ne correspond donc à un véritable jeu, studio, titre commercialisé, joueur, client ou projet pilote. Dans le mode replay par défaut, la compromission sous autorité du modèle est une reconstitution scriptée plutôt qu'une mesure. Les 100 pour cent représentent une garantie structurelle interdisant au dialogue d'altérer l'état du jeu, et non la prétention que les PNJ sont prémunis contre tout exploit possible, la QA adversariale présentée ici étant un échantillon et non une preuve exhaustive. Un éditeur visuel de cerveau de PNJ, le fine-tuning par personnage, la mémoire persistante inter-sessions, la synchronisation du blackboard en multijoueur et le raisonnement de PNJ à PNJ sont reportés. Cette page est un guide explicatif comprenant une vidéo, des captures d'écran, une analyse des mécanismes et des réponses, et non une application que vous pilotez directement d'ici.
Non, et la raison en est d'ordre architectural plutôt qu'une question de qualité de prompt. Dans cet environnement d'exécution, le modèle de langage ne détient jamais les outils de modification d'état. Une couche de décision déterministe calcule le verdict mécanique à partir des scalaires d'état du jeu, le modèle se contente de rédiger le dialogue correspondant au verdict déjà arrêté, et aucun chemin d'exécution ne relie ce dialogue à un champ d'état du jeu. Comme cette garantie réside dans du code hors de portée du modèle, elle demeure inaltérable quelle que soit la force de persuasion ou la puissance du modèle.
Un prompt système ou un filtre de sécurité maintient la décision au sein même du dialogue, espace dans lequel un joueur déterminé optimise naturellement ses attaques, ce qui explique pourquoi les jailbreaks par jeu de rôle face aux filtres de PNJ conventionnels ont affiché un taux de contournement de 89.6 pour cent à ProvSec 2025. Aegis extrait totalement la décision du modèle pour la placer dans du code Python clair qu'un game designer peut lire. Le modèle oriente par sa narration ; le code déterministe tranche les mécaniques, et l'on n'exige jamais du modèle d'être à la fois l'acteur et l'arbitre.
Non. Le narrateur est interchangeable entre un modèle hébergé tel qu'Anthropic, OpenAI ou Gemini, une passerelle locale, Ollama en local ou Cloudflare, grâce à une abstraction de fournisseur. La couche de décision déterministe, le validateur de contraintes et la barrière de politique vivent hors de cette abstraction ; la garantie ne vacille donc pas lorsque vous changez de fournisseur. Changer de fournisseur modifie le narrateur, pas les règles de l'univers.
Non. Dans le mode replay par défaut de la démo, le côté où le modèle fait autorité applique un abandon scripté, et l'interface qualifie son résultat de reconstitution illustrative, non de mesure. Un véritable taux de compromission par modèle exige un modèle accessible et fluctue d'un modèle à l'autre. La démonstration met en lumière cette asymétrie fondamentale : le schéma fondé sur l'autorité du modèle peut être pris en défaut, tandis que l'approche neuro-symbolique demeure structurellement inviolée, quel que soit le modèle chargé de la narration.
Pas dans cette démonstration. Il n'y a pas de moteur de jeu ici et l'état du jeu est simulé. L'inférence sur l'appareil, avec un modèle embarqué calibré selon le budget VRAM et échelonné selon le niveau de détail dans un moteur, constitue un point d'intégration d'adaptateur documenté plutôt qu'une fonctionnalité active de la démo. Le narrateur appelle actuellement un modèle hébergé ou local derrière une interface, et le runtime d'inférence en périphérie (edge) est simulé par un stub, non construit.
L'exécution exporte un audit de sécurité des PNJ : un fichier JSON signé avec un condensé d'intégrité SHA-256, une vue HTML imprimable, la trace de décision par attaque et le verdict du validateur, ainsi qu'un bloc explicite sur les limites de couverture indiquant le nombre d'attaques menées et le nombre de classes d'exploit couvertes. Il a été conçu pour être le livrable officiel qu'un studio prudent dépose pour valider un lancement commercial. Il indique en toute transparence qu'il s'agit d'un échantillon et non d'une preuve exhaustive, et l'audit l'affiche clairement en première page.
La recherche sous-jacente à cette démonstration — l'architecture, la conception de la vérification et le modèle d'ingénierie d'entreprise.
Solution complète
Explorer la solution Game AI NPC Intelligence →Nous sommes une équipe d'ingénierie en IA, pas un simple fournisseur de middleware. Nous construisons la couche déterministe qui permet à un studio d'intégrer un modèle de langage dans un PNJ sans lui confier les clés de l'univers de jeu.
Un premier échange fructueux est concret : les décisions mécaniques de votre jeu qu'un joueur ne doit sous aucun prétexte pouvoir contourner par la négociation, le modèle et le fournisseur que vous souhaitez pour les narrer, et les éléments indispensables qu'un responsable de validation exige avant de signer l'autorisation de lancement. Nous pouvons concevoir la couche de décision, les règles du validateur et le format d'audit aux côtés de vos développeurs.