>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
TypeScript

Cómo el generador de libros InkOS mantiene el contexto bajo control a través de cientos de capítulos

Cualquiera que haya intentado escribir ficción larga usando modelos de lenguaje conoce el momento en que todo comienza a desmoronarse. Para el tercer o cuarto capítulo, el héroe "resucita" inesperadamente a un compañero que murió, confunde ubicaciones y el estilo narrativo se desliza hacia generalizaciones aburridas como "aprendió una lección importante y siguió adelante".

El problema aquí no es solo el tamaño de la ventana de contexto. Incluso si introduces cincuenta mil palabras anteriores en la red neuronal, el modelo comenzará a cometer errores con los detalles o a producir clichés.

Hace poco me encontré con un proyecto abierto llamado InkOS (que ya ha recopilado más de 8.5 mil estrellas en GitHub). Es un framework TypeScript completo para gestión narrativa, generación de novelas web, juegos interactivos y escenarios. Los autores intentaron consolidar el control sobre la memoria, el estilo y la trama.

Arquitectura del sistema

Cuál es la idea y por qué los prompts ordinarios no son suficientes

InkOS gestiona la creación de texto a través de una cadena de agentes especializados. En lugar de pedirle a una sola red neuronal que "escriba un capítulo considerando la trama", el sistema divide el proceso en roles claros.

Un agente (Planificador) moldea la dirección del capítulo actual, otro (Escritor) produce el borrador, un tercero (Observador) extrae hechos sobre el mundo y los personajes del texto, y un cuarto (Auditor) verifica la versión terminada en busca de contradicciones.

El texto pasa a través de un embudo de control:

Pipeline de producción de capítulos

Si el auditor nota que un personaje de repente saca una espada que se perdió dos capítulos antes, el capítulo se envía de vuelta para revisión automática por un agente editor.

Memoria de tres niveles y protección contra alucinaciones

El aspecto técnico más interesante de InkOS se refiere a cómo el proyecto almacena el estado del mundo ficticio. Si confías en que el propio agente LLM reescriba todo el estado en un archivo Markdown, la estructura se degradará rápidamente.

Los autores aplicaron un enfoque híbrido:

Esquema de memoria a largo plazo

  1. Base de datos estrictamente estructurada. El estado del inventario, los dispositivos de trama, los estados de relación de los personajes se almacenan en formato JSON y se validan con esquemas Zod. El agente no genera todo el JSON nuevamente, sino solo un paquete delta diferencial (JSON delta), que el código del proyecto aplica al estado de manera inmutable.
  2. Base de datos SQLite local. En versiones Node.js 22+, el sistema conecta automáticamente SQLite para recuperación vectorial y por palabras clave de eventos pasados, anotaciones comprimidas y hechos.
  3. Proyecciones en Markdown. Archivos como current_state.md o pending_hooks.md se generan automáticamente a partir de JSON validado. Sirven como referencia visual para el autor humano y para pasar al contexto del generador.

Gracias a esta separación, el modelo no puede eliminar accidentalmente una rama de la trama ni corromper el formato del archivo state.json.

Luchando contra el brillo de las redes neuronales y auditoría automática

Todos han notado el estilo característico de los modelos de lenguaje. Uso excesivo de muletillas, longitud uniforme de oraciones, un amor por las conclusiones morales profundas al final de cada párrafo.

InkOS incluye un módulo integrado de verificación de texto con 37 parámetros. Monitorea el ritmo de las oraciones, la frecuencia de repetición de palabras y busca clichés banales.

Además, el motor incluye un comando de análisis de estilo:

inkos style analyze sample_author.txt
inkos style import sample_author.json --book my-novel

La utilidad extrae una huella digital numérica del texto de referencia (distribución de longitud de oraciones, diccionario de frecuencias, densidad de diálogo) y genera una directriz. Al generar nuevos capítulos, produce no texto abstracto, sino material estrictamente ajustado a esta huella digital.

Mundos interactivos y RPGs de texto

En la versión 1.5, los desarrolladores agregaron el modo InkOS Play. Esta es una herramienta para lanzar mundos de texto con acciones libres o ramificación por turnos.

Interfaz web de Studio

En el modo Play, se establece el llamado contrato del mundo. Por ejemplo, reglas de investigación detectivesca o un simulador de supervivencia. Un agente del sistema rastrea el tiempo, el inventario, los objetos y las evidencias, generando interfaces de elección o procesando la entrada del usuario en lenguaje natural.

Entre bastidores, se utilizan mecanismos para la generación dinámica de ilustraciones de escenas y objetos, así como soporte para paquetes de habilidades estándar SKILL.md.

Cómo funciona internamente

El proyecto está completamente escrito en TypeScript. La interfaz web (Studio) funciona con Vite, React y Hono. La consola interactiva se implementa mediante TUI, y una CLI tradicional está disponible para los entusiastas de la automatización.

El framework de agentes está construido sobre la biblioteca pi-mono (@mariozechner/pi-agent-core).

Una solución conveniente es el enrutamiento flexible de modelos. La escritura de ficción puede asignarse a, digamos, Claude 3.5 Sonnet o Kimi K2.7, mientras que las tareas de auditoría, el ensamblaje de JSON delta y la validación pueden delegarse a modelos más rápidos y económicos a través de OpenRouter, Gemini o Ollama local.

La configuración de enrutamiento se establece mediante pares:

inkos config set-model writer kimi-k2.5 --provider custom --base-url https://api.moonshot.cn/v1
inkos config set-model auditor gemini-2.5-flash --provider google

Cómo ejecutar localmente

El paquete está disponible en npm:

npm i -g @actalk/inkos

Crear tu primer libro e iniciar un estudio local requiere solo tres comandos:

inkos init my-story
cd my-story
inkos studio

Se abre un panel web en el navegador en el puerto 4567. Allí puedes ingresar las claves API para los proveedores requeridos, establecer el concepto del trabajo y lanzar el proceso de planificación de los primeros capítulos.

Los comandos directos están disponibles para trabajo en consola:

inkos book create --title "Забытый код" --genre sci-fi
inkos plan chapter Забытый код --context "Герой обнаруживает странный архив в серверной"
inkos write next Забытый код

Quién se beneficiarán de este proyecto

InkOS no es solo otro wrapper alrededor de ChatGPT. Es un entorno de desarrollo estructurado para quienes trabajan con narrativa sistemáticamente.

El proyecto será útil para:

  • Diseñadores narrativos y escritores de juegos para desarrollar misiones y diálogos ramificados.
  • Autores de novelas web que necesitan un asistente que mantenga la cronología y los hechos.
  • Desarrolladores que crean bots de IA basados en texto con memoria y reglas internas del mundo.

Por supuesto, el código fuente y los prompts están orientados hacia el chino y el inglés, pero la configuración flexible de paquetes de prompts dentro de la carpeta prompt/ permite adaptar la generación a cualquier idioma. La licencia AGPL-3.0 permite implementar el sistema localmente en tu propio servidor sin depender de nubes propietarias.

Proyectos relacionados