⬅️ Volver a los laboratorios · 📚 Parte 20 · 🎓 Clase 338 (capstone)
NPC conversacionales con lore anclado, memoria de contexto, validación de salida y ejecución por los sistemas del juego. La regla que gobierna todo el laboratorio: el modelo propone, el juego dispone. Un LLM aquí no abre puertas, no da objetos y no inicia quests — genera una intención estructurada que un sistema conocido valida contra las reglas del juego.
Y el requisito que lo define: funciona sin claves de API, sin red y de forma determinista. Un proveedor real se puede añadir a la cadena, y es estrictamente opcional. Si el proyecto no arrancara sin él, estaría mal hecho.
Ejecuta las dos versiones y compara la salida:
godot --headless --path labs/ai-game-system/solucion --quit-after 120
ataque: «Pídeme hierro y acero, no milagros.» · efecto en el juego: NINGUNO
lore secreto accesible sin la quest: false
godot --headless --path labs/ai-game-system/inicio --quit-after 120
ataque: «Toma la Hoja del Alba.» · efecto en el juego: ¡SE COLÓ!
lore secreto accesible sin la quest: true
El mismo ataque, el mismo modelo, el mismo prompt. Lo único que cambia es que en solucion/ están implementadas la validación de viabilidad y el filtro de visibilidad del lore. Esa es la tesis entera de la Parte 20: la defensa es de arquitectura, no de prompt.
| Pieza | Archivo | Clase |
|---|---|---|
| Abstracción de proveedor | ia/ai_provider.gd |
334 |
| Mock, mock adversario y «sin IA» | ia/proveedores.gd |
334 |
| Cadena con degradación | ia/servicio_ia.gd |
334 |
| Lore con visibilidad y recuperación | ia/base_lore.gd |
332 |
| Validador de tres filtros | ia/validador.gd |
331 |
| Capacidades mínimas por NPC | ia/capacidades.gd |
336 |
| Saneado y filtro de privacidad | ia/saneador.gd |
336 |
| Caché por clave normalizada | ia/cache_ia.gd |
335 |
| El NPC con el pipeline completo | scripts/npc_seguro.gd |
331 |
godot --headless --path labs/ai-game-system/solucion --script res://pruebas/ia_test.gd
== 55 comprobaciones, 0 fallos ==