Comment le générateur de livres InkOS maintient le contexte sur des centaines de chapitres
Quiconque a tenté d'écrire de la fiction longue avec des modèles de langage connaît ce moment où tout commence à se déliter. Au troisième ou quatrième chapitre, le héros « ressuscite » soudain un compagnon qui était mort, confond les lieux, et le style narratif glisse vers des généralisations ternes du genre « il a appris une leçon importante et a continué ».
Le problème ici ne se limite pas à la taille de la fenêtre de contexte. Même si vous bourrez cinquante mille mots précédents dans le réseau neuronal, le modèle commencera toujours à se tromper sur les détails ou à produire des clichés.
Récemment, je suis tombé sur un projet open source appelé InkOS (qui a déjà rassemblé plus de 8 500 étoiles sur GitHub). C'est un framework TypeScript complet pour la gestion narrative, la génération de romans web, les jeux interactifs et les scénarios. Les auteurs ont tenté de consolider le contrôle sur la mémoire, le style et l'intrigue.
Quelle est l'idée et pourquoi les prompts ordinaires ne suffisent pas
InkOS gère la création de texte via une chaîne d'agents spécialisés. Au lieu de demander à un seul réseau neuronal « d'écrire un chapitre en tenant compte de l'intrigue », le système divise le processus en rôles clairs.
Un agent (Planner) façonne la direction du chapitre en cours, un autre (Writer) produit le brouillon, un troisième (Observer) extrait les faits sur le monde et les personnages du texte, et un quatrième (Auditor) vérifie la version terminée pour détecter les contradictions.
Le texte passe à travers un entonnoir de contrôle :
Si l'auditeur remarque qu'un personnage brandit soudain une épée qui avait été perdue deux chapitres plus tôt, le chapitre est renvoyé pour révision automatique par un agent éditeur.
Mémoire à trois niveaux et protection contre les hallucinations
L'aspect technique le plus intéressant d'InkOS concerne la façon dont le projet stocke l'état du monde fictif. Si vous comptez sur l'agent LLM lui-même pour réécrire l'état entier dans un fichier Markdown, la structure se dégradera rapidement.
Les auteurs ont appliqué une approche hybride :
- Base de données strictement structurée. L'état de l'inventaire, les éléments de l'intrigue, les statuts des relations entre personnages sont stockés au format JSON et validés avec des schémas Zod. L'agent ne produit pas l'intégralité du JSON à chaque fois, mais uniquement un paquet delta différentiel (JSON delta), que le code du projet applique à l'état de manière immuable.
- Base de données SQLite locale. Dans les versions Node.js 22+, le système se connecte automatiquement à SQLite pour la recherche vectorielle et par mots-clés d'événements passés, d'annotations compressées et de faits.
- Projections en Markdown. Des fichiers comme
current_state.mdoupending_hooks.mdsont automatiquement générés à partir du JSON validé. Ils servent de référence visuelle pour l'auteur humain et pour l'insertion dans le contexte du générateur.
Grâce à cette séparation, le modèle ne peut pas supprimer accidentellement une branche de l'intrigue ni corrompre le format du fichier state.json.
Combattre le verni des réseaux neuronaux et audit automatique
Tout le monde a remarqué le style caractéristique des modèles de langage. L'utilisation excessive de mots de remplissage, la longueur uniforme des phrases, l'amour des conclusions morales profondes à la fin de chaque paragraphe.
InkOS inclut un module de vérification de texte intégré avec 37 paramètres. Il surveille le rythme des phrases, la fréquence de répétition des mots, et traque les clichés banals.
De plus, le moteur inclut une commande d'analyse de style :
inkos style analyze sample_author.txt
inkos style import sample_author.json --book my-novel
L'utilitaire extrait une empreinte numérique du texte de référence (distribution de la longueur des phrases, dictionnaire de fréquence, densité du dialogue) et génère une directive. Lors de la génération de nouveaux chapitres, il produit non pas du texte abstrait, mais du matériel strictement adapté à cette empreinte.
Mondes interactifs et RPG texte
En version 1.5, les développeurs ont ajouté le mode InkOS Play. C'est un outil pour lancer des mondes textuels avec des actions libres ou des embranchements tour par tour.

En mode Play, un soi-disant contrat de monde est défini. Par exemple, les règles d'une enquête de détective ou d'un simulateur de survie. Un agent système assure le suivi du temps, de l'inventaire, des objets et des preuves, générant des interfaces de choix ou traitant les entrées utilisateur en langage naturel.
En coulisses, des mécanismes de génération dynamique d'illustrations pour les scènes et les objets sont utilisés, ainsi que la prise en charge de packages de compétences standard SKILL.md.
Comment ça fonctionne à l'intérieur
Le projet est entièrement écrit en TypeScript. L'interface web (Studio) fonctionne sur Vite, React et Hono. La console interactive est implémentée via TUI, et une CLI traditionnelle est disponible pour les amateurs d'automatisation.
Le framework d'agents est construit au-dessus de la bibliothèque pi-mono (@mariozechner/pi-agent-core).
Une solution pratique est le routage flexible des modèles. L'écriture de fiction peut être confiée, par exemple, à Claude 3.5 Sonnet ou Kimi K2.7, tandis que les tâches d'audit, l'assemblage de delta JSON et la validation peuvent être délégués à des modèles plus rapides et moins coûteux via OpenRouter, Gemini ou Ollama local.
La configuration du routage s'effectue via des paires :
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
Comment exécuter en local
Le package est disponible sur npm :
npm i -g @actalk/inkos
Créer son premier livre et lancer un studio local ne nécessite que trois commandes :
inkos init my-story
cd my-story
inkos studio
Un panneau web s'ouvre dans le navigateur sur le port 4567. Vous pouvez y entrer les clés API pour les fournisseurs nécessaires, définir le concept de l'œuvre et lancer le processus de planification des premiers chapitres.
Des commandes directes sont disponibles pour le travail en console :
inkos book create --title "Забытый код" --genre sci-fi
inkos plan chapter Забытый код --context "Герой обнаруживает странный архив в серверной"
inkos write next Забытый код
À qui ce projet sera utile
InkOS n'est pas qu'un simple wrapper autour de ChatGPT. C'est un environnement de développement structuré pour ceux qui travaillent systématiquement avec la narration.
Le projet sera utile pour :
- Les concepteurs narratifs et les auteurs de jeux pour développer des quêtes et des dialogues à embranchements.
- Les auteurs de romans web qui ont besoin d'un assistant maintenant la chronologie et les faits.
- Les développeurs créant des bots IA textuels avec mémoire et règles de monde internes.
Bien sûr, le code source et les prompts sont orientés vers le chinois et l'anglais, mais la configuration flexible des packs de prompts dans le dossier prompt/ permet d'adapter la génération à n'importe quelle langue. La licence AGPL-3.0 permet de déployer le système en local sur son propre serveur sans être lié aux clouds propriétaires.
Projets similaires