Hoe de InkOS boekgenerator context bijhoudt over honderden hoofdstukken
Iedereen die heeft geprobeerd lange fictie te schrijven met taalmodellen kent het moment waarop alles begint te desintegreren. Tegen het derde of vierde hoofdstuk "herrijst" de held onverwacht een metgezel die was gestorven, verwart locaties, en de narratieve stijl glijdt weg in saaie generalisaties zoals "hij leerde een belangrijke les en ging verder."
Het probleem hier is niet alleen de context window-grootte. Zelfs als je vijftigduizend vorige woorden in het neurale netwerk stopt, zal het model nog steeds details verkeerd gaan interpreteren of clichés produceren.
Onlangs stuitte ik op een open project genaamd InkOS (dat inmiddels meer dan 8,5 duizend sterren heeft verzameld op GitHub). Het is een volledig uitgeruste TypeScript-framework voor narratief management, webnovelle-generatie, interactieve games en scenario's. De auteurs probeerden de controle over geheugen, stijl en plot te consolideren.
Wat is het idee en waarom gewone prompts niet voldoende zijn
InkOS beheert tekstcreatie via een keten van gespecialiseerde agenten. In plaats van een enkel neuraal netwerk te vragen om "een hoofdstuk te schrijven met inachtneming van de plot," verdeelt het systeem het proces in duidelijke rollen.
Één agent (Planner) bepaalt de richting van het huidige hoofdstuk, een andere (Writer) produceert de conceptversie, een derde (Observer) extraheert feiten over de wereld en personages uit de tekst, en een vierde (Auditor) controleert de voltooide versie op tegenstrijdigheden.
De tekst passeert een controle-trechter:
Als de auditor opmerkt dat een personage plotseling een zwaard trekt dat twee hoofdstukken eerder verloren was, wordt het hoofdstuk teruggestuurd voor automatische revisie door een editor-agent.
Drielagig geheugen en bescherming tegen hallucinaties
Het meest interessante technische aspect van InkOS betreft hoe het project de staat van de fictieve wereld opslaat. Als je alleen op het LLM-agent vertrouwt om de hele staat in een Markdown-bestand te herschrijven, zal de structuur snel degraderen.
De auteurs pasten een hybride benadering toe:
- Strikt gestructureerde database. Inventarisstatus, plotapparaten, status van personagerelaties worden opgeslagen in JSON-formaat en gevalideerd met Zod-schema's. De agent output niet de gehele JSON opnieuw, maar alleen een differentieel delta-pakket (JSON delta), dat de projectcode onveranderlijk toepast op de staat.
- Lokale SQLite-database. In Node.js 22+ versies maakt het systeem automatisch verbinding met SQLite voor vector- en trefwoord-zoekopdrachten naar eerdere gebeurtenissen, gecomprimeerde annotaties en feiten.
- Projecties in Markdown. Bestanden zoals
current_state.mdofpending_hooks.mdworden automatisch gegenereerd uit gevalideerde JSON. Ze dienen als visueel referentiemateriaal voor de menselijke auteur en voor het doorgeven aan generatorcontext.
Dankzij deze scheiding kan het model niet per ongeluk een plotlijn verwijderen of het state.json-bestandsformaat corrumperen.
Bestrijding van neurale netwerk-glans en automatische audit
Iedereen heeft de karakteristieke stijl van taalmodellen opgemerkt. Overmatig gebruik van vulwoorden, uniforme zinslengte, een voorliefde voor diepe morele conclusies aan het einde van elke paragraaf.
InkOS bevat een ingebouwde tekstcontrolemodule met 37 parameters. Het bewaakt zinsritme, woordherhalingsfrequentie en jaagt op banale clichés.
Bovendien bevat de engine een stijlanalytische opdracht:
inkos style analyze sample_author.txt
inkos style import sample_author.json --book my-novel
Het hulpprogramma extraheert een numerieke vingerafdruk uit referentietekst (zinslengteverdeling, frequentiewoordenboek, dialoogdichtheid) en genereert een richtlijn. Bij het genereren van nieuwe hoofdstukken produceert het geen abstracte tekst, maar materiaal dat strikt past bij deze vingerafdruk.
Interactieve werelden en tekst-RPG's
In versie 1.5 voegden ontwikkelaars de InkOS Play-modus toe. Dit is een hulpmiddel voor het lanceren van tekstwerelden met vrije acties of beurtgebaseerde vertakkingen.

In de Play-modus wordt een zogenaamd wereldcontract ingesteld. Bijvoorbeeld detective-onderzoeksregels of een survival-simulator. Een systeemagent houdt tijd, inventaris, voorwerpen en bewijs bij, genereert keuze-interfaces of verwerkt gebruikersinput in natuurlijke taal.
Onder de motorkap worden mechanismen gebruikt voor dynamische illustratiegeneratie voor scènes en voorwerpen, evenals ondersteuning voor standaard vaardigheidspakketten SKILL.md.
Hoe het intern werkt
Het project is volledig geschreven in TypeScript. De webinterface (Studio) draait op Vite, React en Hono. De interactieve console is geïmplementeerd via TUI, en er is een traditionele CLI beschikbaar voor automatisering-liefhebbers.
Het agent-framework is gebouwd op de pi-mono bibliotheek (@mariozechner/pi-agent-core).
Één handige oplossing is flexibel modelroutering. Het schrijven van fictie kan worden toegewezen aan, laten we zeggen, Claude 3.5 Sonnet of Kimi K2.7, terwijl audit-taken, JSON delta-assemblage en validatie kunnen worden gedelegeerd naar snellere en goedkopere modellen via OpenRouter, Gemini of lokale Ollama.
Routeringsconfiguratie wordt ingesteld via paren:
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
Hoe lokaal te draaien
Het pakket is beschikbaar op npm:
npm i -g @actalk/inkos
Het creëren van je eerste boek en het starten van een lokale studio vereist slechts drie commando's:
inkos init my-story
cd my-story
inkos studio
Een webpaneel wordt geopend in de browser op poort 4567. Daar kun je API-sleutels invoeren voor de vereiste providers, het concept van het werk instellen en het proces van het plannen van de eerste hoofdstukken starten.
Directe commando's zijn beschikbaar voor consolewerk:
inkos book create --title "Забытый код" --genre sci-fi
inkos plan chapter Забытый код --context "Герой обнаруживает странный архив в серверной"
inkos write next Забытый код
Wie heeft baat bij dit project
InkOS is niet zomaar nog een wrapper rond ChatGPT. Het is een gestructureerde ontwikkelomgeving voor degenen die systematisch met narratief werken.
Het project is nuttig voor:
- Narratief ontwerpers en game-schrijvers voor het ontwikkelen van queesten en vertakkende dialogen.
- Webnovelle-auteurs die een assistent nodig hebben die chronologie en feiten behoudt.
- Ontwikkelaars die tekstgebaseerde AI-bots maken met geheugen en interne wereldregels.
Natuurlijk zijn de broncode en prompts georiënteerd op Chinees en Engels, maar flexibele prompt-pakketconfiguratie in de prompt/-map maakt het mogelijk om generatie aan te passen aan elke taal. AGPL-3.0-licentiëring maakt het mogelijk om het systeem lokaal op je eigen server te deployen zonder afhankelijk te zijn van proprietaire clouds.
Gerelateerde projecten