InkOS 是一个开源的自动化小说写作 CLI Agent,写、审、改全程接管。之前发过一次帖子介绍基本功能:5 个 Agent 接力写章节、长期记忆追踪、资源账本、伏笔管理等。
这次是一个架构级大更新,主要解决一个核心问题:之前的规则全部硬编码为玄幻/爽文,换个题材写出来就是垃圾。
之前 prompt 里 148 行规则全是"杀伐果断""同质吞噬衰减公式"这种玄幻专属内容。现在拆成三层:
通用规则(~25 条,代码内置,适用所有题材)
↓ 合并
题材规范(genres/*.md,按题材定制)
↓ 合并
单本书规则(books/{id}/story/book_rules.md,逐本定制)
↓ 注入 prompt
LLM
好处:写都市文不会出现"同质吞噬衰减公式",写恐怖不会要求"三章内必须打脸"。
审计员从笼统的"检查一致性"升级到 19 个明确维度:
OOC检查、时间线、设定冲突、战力崩坏、数值检查、伏笔、节奏、文风、信息越界、词汇疲劳、利益链断裂、年代考据、配角降智、配角工具人化、爽点虚化、台词失真、流水账、知识库污染、视角一致性。
关键点是按题材自动启用:
不会出现恐怖小说被审计"战力崩坏"这种离谱结果。
这是花了最多时间调的部分。用 3 个题材各跑了 3 章实测,发现 AI 味的核心来源:
对策:通用层加了 5 条硬性铁律,每个题材还有专属语言铁律带 ✗→✓ 对比示例。比如:
玄幻:
都市:
恐怖:
inkos genre list # 查看所有可用题材
inkos genre show xuanhuan # 查看玄幻 profile 详情
inkos genre create wuxia --name 武侠 # 创建自定义题材
inkos genre copy xuanhuan # 复制内置 profile 到项目中定制
想加新题材?inkos genre create 生成模板,填好 YAML 头和 markdown 规则就行。想微调内置题材?inkos genre copy 复制一份到项目目录,改了就生效。
每本书的 story/book_rules.md 支持 YAML 头配置:
protagonist:
name: 林烬
personalityLock: ["强势冷静", "能忍能杀"]
behavioralConstraints: ["不圣母不留手"]
genreLock:
primary: xuanhuan
forbidden: ["都市腔", "科幻腔"]
fatigueWordsOverride: ["冷笑", "蝼蚁"] # 覆盖题材默认
additionalAuditDimensions: [12] # 额外启用年代考据
markdown body 部分可以写叙事视角、文风要求等自由格式的创作指导。
用 3 个题材各跑了 2-3 章:
| 题材 | 书名 | 章节 | 特点 |
|---|---|---|---|
| 玄幻 | 烈焰吞天 | 3 章 | 数值追踪、战力验算、资源账本全程工作 |
| 都市 | 重生2003 | 3 章 | 无数值系统、年代考据启用、法律/商业术语匹配 2003 年语感 |
| 恐怖 | 末班地铁 | 3 章 | 无战力/数值审计、氛围递进、克制叙事 |
审计结果确认:
npm i -g @actalk/inkos
inkos init # 初始化项目
inkos book create --title "末班地铁" --genre horror # 创建恐怖题材书籍
inkos write next 末班地铁 # 写下一章
支持所有 OpenAI 兼容接口(需要支持 streaming)。
GitHub:https://github.com/nicepkg/inkos
有问题直接问,欢迎提 issue 和 PR。