Como o gerador de livros InkOS mantém o contexto sob controle através de centenas de capítulos
Qualquer pessoa que tentou escrever ficção longa usando modelos de linguagem conhece o momento em que tudo começa a desmoronar. No terceiro ou quarto capítulo, o herói inesperadamente "ressuscita" um companheiro que morreu, confunde locais, e o estilo narrativo desliza para generalizações monótonas como "ele aprendeu uma lição importante e seguiu em frente".
O problema aqui não é apenas o tamanho da janela de contexto. Mesmo que você enfie cinquenta mil palavras anteriores na rede neural, o modelo ainda começará a errar detalhes ou produzir clichês.
Recentemente encontrei um projeto aberto chamado InkOS (que já reuniu mais de 8,5 mil estrelas no GitHub). É um framework TypeScript completo para gerenciamento narrativo, geração de web novels, jogos interativos e cenários. Os autores tentaram consolidar o controle sobre memória, estilo e enredo.
Qual é a ideia e por que prompts comuns não são suficientes
O InkOS gerencia a criação de texto através de uma cadeia de agentes especializados. Em vez de pedir a uma única rede neural para "escrever um capítulo considerando o enredo", o sistema divide o processo em papéis claros.
Um agente (Planner) molda a direção do capítulo atual, outro (Writer) produz o rascunho, um terceiro (Observer) extrai fatos sobre o mundo e personagens do texto, e um quarto (Auditor) verifica a versão final em busca de contradições.
O texto passa por um funil de controle:
Se o auditor notar que um personagem de repente saca uma espada que foi perdida dois capítulos antes, o capítulo é enviado de volta para revisão automática por um agente editor.
Memória em três níveis e proteção contra alucinações
O aspecto técnico mais interessante do InkOS diz respeito a como o projeto armazena o estado do mundo ficcional. Se você confiar no próprio agente LLM para reescrever todo o estado em um arquivo Markdown, a estrutura se degradará rapidamente.
Os autores aplicaram uma abordagem híbrida:
- Banco de dados estritamente estruturado. Estado do inventário, dispositivos de enredo, status de relacionamentos dos personagens são armazenados em formato JSON e validados com schemas Zod. O agente não produz todo o JSON novamente, mas apenas um pacote delta diferencial (delta JSON), que o código do projeto aplica ao estado de forma imutável.
- Banco de dados SQLite local. Nas versões Node.js 22+, o sistema conecta automaticamente o SQLite para recuperação vetorial e por palavra-chave de eventos passados, anotações comprimidas e fatos.
- Projeções em Markdown. Arquivos como
current_state.mdoupending_hooks.mdsão gerados automaticamente a partir do JSON validado. Servem como referência visual para o autor humano e para passar no contexto do gerador.
Graças a essa separação, o modelo não pode acidentalmente excluir um ramo do enredo ou corromper o formato do arquivo state.json.
Combate ao verniz de rede neural e auditoria automática
Todos notaram o estilo característico dos modelos de linguagem. Uso excessivo de palavras de enchimento, comprimento uniforme de frases, um amor por conclusões morais profundas no final de cada parágrafo.
O InkOS inclui um módulo integrado de verificação de texto com 37 parâmetros. Ele monitora o ritmo das frases, a frequência de repetição de palavras e caça clichês banais.
Além disso, o motor inclui um comando de análise de estilo:
inkos style analyze sample_author.txt
inkos style import sample_author.json --book my-novel
O utilitário extrai uma impressão digital numérica do texto de referência (distribuição de comprimento de frases, dicionário de frequência, densidade de diálogo) e gera uma diretriz. Ao gerar novos capítulos, ele produz não texto abstrato, mas material estritamente ajustado a essa impressão digital.
Mundos interativos e RPGs de texto
Na versão 1.5, os desenvolvedores adicionaram o modo InkOS Play. Esta é uma ferramenta para lançar mundos de texto com ações livres ou ramificação baseada em turnos.

No modo Play, um chamado contrato de mundo é definido. Por exemplo, regras de investigação detetivesca ou um simulador de sobrevivência. Um agente de sistema rastreia tempo, inventário, itens e evidências, gerando interfaces de escolha ou processando entrada do usuário em linguagem natural.
Por baixo do capô, são usados mecanismos para geração dinâmica de ilustrações para cenas e itens, bem como suporte para pacotes padrão de habilidades SKILL.md.
Como funciona internamente
O projeto é inteiramente escrito em TypeScript. A interface web (Studio) roda em Vite, React e Hono. O console interativo é implementado via TUI, e um CLI tradicional está disponível para entusiastas de automação.
O framework de agentes é construído sobre a biblioteca pi-mono (@mariozechner/pi-agent-core).
Uma solução conveniente é o roteamento flexível de modelos. A escrita de ficção pode ser atribuída a, digamos, Claude 3.5 Sonnet ou Kimi K2.7, enquanto tarefas de auditoria, montagem de delta JSON e validação podem ser delegadas a modelos mais rápidos e baratos via OpenRouter, Gemini ou Ollama local.
A configuração de roteamento é definida via 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
Como executar localmente
O pacote está disponível no npm:
npm i -g @actalk/inkos
Criar seu primeiro livro e iniciar um studio local requer apenas três comandos:
inkos init my-story
cd my-story
inkos studio
Um painel web abre no navegador na porta 4567. Lá você pode inserir chaves de API para os provedores necessários, definir o conceito da obra e iniciar o processo de planejamento dos primeiros capítulos.
Comandos diretos estão disponíveis para trabalho no console:
inkos book create --title "Забытый код" --genre sci-fi
inkos plan chapter Забытый код --context "Герой обнаруживает странный архив в серверной"
inkos write next Забытый код
Quem se beneficiaria deste projeto
O InkOS não é apenas outro wrapper em torno do ChatGPT. É um ambiente de desenvolvimento estruturado para quem trabalha com narrativa sistematicamente.
O projeto será útil para:
- Designers narrativos e escritores de jogos para desenvolver missões e diálogos ramificados.
- Autores de web novels que precisam de um assistente que mantenha cronologia e fatos.
- Desenvolvedores criando bots de IA baseados em texto com memória e regras de mundo internas.
É claro que o código-fonte e os prompts são orientados para chinês e inglês, mas a configuração flexível de prompt-packs dentro da pasta prompt/ permite adaptar a geração para qualquer idioma. A licença AGPL-3.0 permite implantar o sistema localmente em seu próprio servidor sem depender de nuvens proprietárias.
Projetos relacionados