面向中文长篇、短篇、网文连载与系列故事的本地化 AI 小说创作工程。把“题材与大纲 → 资料蒸馏 → 章节上下文 → AI 起草 → 本地校验 → 风险段精修 → 状态回填”做成可配置、可复用、可审计的工作流。
搜索关键词: AI 写小说、AI 长篇小说、AI 短篇小说、小说工作流、防止 AI 遗忘、降低 AI 幻觉、人物性格模块化、小说设定管理、网文连载、上下文记忆、故事圣经、角色档案、章节大纲、小说蒸馏、Codex Skill、PowerShell。
- 想用 AI 写长篇、短篇、网文或系列故事,但担心角色失忆、设定冲突、道具乱飞的人;
- 需要把人物性格、关系、力量体系、伏笔、时间线和章节台账拆成可维护模块的人;
- 需要按天连载、控制单章/日更字数、保证对白清楚与格式稳定的人;
- 想从合法拥有的本地资料中提炼叙事机制,但不想复制原文或做逐句模仿的人;
- 想把 Codex、其他 AI 或人工写作统一接入同一套小说项目的人。
- 新书向导:首次调用逐项询问书名、题材、卷名、梗概、章节编号和日更限制;批量建书可完全非交互。
- 双初始化顺序:可选“先定题材/大纲再蒸馏”或“先蒸馏素材再定位题材/大纲”。
- 小说长期记忆:用唯一有效总纲、人物状态、伏笔、状态账本、章节台账和事实快照,替代把整部小说塞进提示词。
- 防遗忘与降低幻觉:写前只编译当前章节需要的小型上下文包;写后检查状态账本覆盖范围、章节连续和显式断言。
- 模块化人物与设定:人物名称注册、别名、停用名、人物状态、体系约束和读者可见边界均独立维护。
- 可控蒸馏:只保存聚合统计、场景机制和“转译到本书”的规则;不分发参考小说文本,不输出替换人名式仿写。
- 本地低算力校验:格式、标点、字数、对白锚点、平台批次、连续性、体系约束、读者边界和风险段提取都由本地脚本完成。
- 质量优先连载:支持单章上限与每日总量;剧情不够时拆章或顺延,不用空景、闲聊和重复动作凑字。
说明:没有任何工具能数学证明 AI 永不遗忘或绝不幻觉。Novel Forge 的做法是把可登记事实结构化、把上下文缩小到当前决策、把硬冲突交给本地断言,从工程上显著降低风险,并把剩余的场景合理性留给人工通读。
- 不是提示词堆砌:项目事实、写作规则和过程报告分层存放,过程文件不会自动污染剧情事实。
- 不是重型 AI 检测依赖:机械问题优先本地校验;只有候选风险段再交给人工或 AI 精修,节省算力与时间。
- 可迁移:书名、题材、目录、卷章体系、字数、日更规则和模块开关全部在新项目中配置,不绑定任何示例小说。
- 可扩展:仙侠、悬疑、都市只是示例档案;可以新增任何题材、平台规则、力量体系或校验模块。
- 可审计:本地资料库记录事实源哈希,状态账本记录确认章节,错误库记录问题的根因与回归检查。
首次建书向导 / 批量参数
↓
题材、书名、卷章体系、日更策略
↓
(可选)蒸馏顺序:先大纲后蒸馏 / 先蒸馏后大纲
↓
唯一有效总纲 + 人物/伏笔/体系/状态账本
↓
本地资料库事实快照
↓
当前章节上下文编译器
↓
写前任务卡 → AI 或人工起草
↓
本地终检 + 风险段提取 + 场景现实性清单
↓
只精修命中风险段
↓
回填状态、台账、伏笔 → 下一章
git clone https://github.com/Leon-young820/curly-telegram.git novel-forge
cd novel-forge
# 首次使用:不传参数会交互询问项目所需信息
.\scripts\Start-NovelForge.ps1向导会询问:小说名称、题材、第一卷名称、一句话梗概、保存目录、章节编号位数、单章字数上限、每日章节数、每日字数上限,以及蒸馏与大纲的先后顺序。
.\scripts\Start-NovelForge.ps1 `
-NonInteractive -NoConfirm `
-Destination D:\novels\我的新书 `
-Title '我的新书' `
-Genre xianxia `
-FirstVolumeTitle '第一卷 起灯' `
-Logline '主角在有限资源与更高威胁中,以选择换取成长。' `
-WorkflowOrder genre-outline-then-distill可选 -WorkflowOrder:
genre-outline-then-distill:推荐。先确定题材、读者承诺和第一卷大纲,再按本书缺口蒸馏资料。distill-then-genre-outline:先对自有资料做机制观察,再辅助确定题材与大纲;适合先整理素材库。
# 按项目编号和卷目录创建正文文件
.\scripts\New-NovelChapter.ps1 `
-ProjectRoot D:\novels\我的新书 `
-ChapterNumber 1 `
-Title '雨入山门'
# 刷新资料库并生成当前章节上下文包
.\scripts\Invoke-NovelPipeline.ps1 `
-ProjectRoot D:\novels\我的新书 `
-Stage Prepare `
-ChapterNumber 1 `
-Keywords '主角,起点'.\scripts\Invoke-NovelPipeline.ps1 `
-ProjectRoot D:\novels\我的新书 `
-Stage Final `
-InputPath 'D:\novels\我的新书\正文\第1卷_起灯' `
-ChapterNumbers 1,2,3终检会刷新事实快照,并运行已启用的格式、对白、人名、体系、错误库、读者边界、连续性、平台和风险提取模块。硬错误必须先修;风险段是候选提示,结合场景现实性清单通读后再决定是否改写。
每本小说都可在 总览/写作引擎模块.json 中开关和定制模块。
| 模块 | 解决的问题 | 本地入口 |
|---|---|---|
knowledgeBase |
项目事实源、哈希快照、确认章节 | Build-NovelLibrary.ps1 |
context |
当前章节最小上下文,减少 AI 失忆 | Build-NovelContext.ps1 |
distillation |
合规资料统计与项目规则转译 | New-DistillationCard.ps1 |
taskCard |
写前锁定目标、阻碍、代价和钩子 | 总览/写作任务卡.md |
format / manuscript |
标题、字数、引号、占位符、标点 | Test-NovelChapter.ps1 |
dialogue |
多人对白的人名与动作锚点 | Test-NovelChapter.ps1 |
nameRegistry |
角色名、别名、停用名 | Test-NovelNameRegistry.ps1 |
systemConstraints |
力量体系、职业、道具等硬约束 | Test-NovelSystemConstraints.ps1 |
errorLibrary |
问题根因、禁止做法、回归检查 | Test-NovelErrorLibrary.ps1 |
readerBoundary |
防止后台/账本术语进入正文 | Test-NovelReaderBoundary.ps1 |
continuity |
章节顺序、账本覆盖、断言 | Test-NovelContinuity.ps1 |
riskExtraction |
长句、重复段、对白归属候选风险 | Get-NovelRiskSegments.ps1 |
plotReality |
时间、空间、伤势、资源、知情差通读清单 | Test-NovelEngine.ps1 |
platform |
单章与日更平台字符统计 | Measure-ReleaseBatch.ps1 |
完整模块配置说明见 docs/writing-engine-modules.md。
总览/ 小说事实、规则、账本与引擎模块
小说配置.json 书名、题材、目录、卷章、日更规则
写作引擎模块.json 各能力的开关和阈值
唯一有效总纲.md 唯一可新增设定的总纲
人物状态表.md 人物地点、资源、关系与已知信息
伏笔追踪表.md 伏笔埋设与兑现
后端状态账本.json 已确认到哪一章的事实
本地资料库/ 事实快照(过程产物)
正文/ 仅存可发布定稿,按卷分目录
版本/ 上下文包、风险报告、草稿与历史版本
参考资料/ 仅放你有权使用的资料,不自动成为小说事实
scripts/ 本地化 PowerShell 工具链
profiles/ 仙侠、悬疑、都市等题材档案
skills/ 可安装到 Codex 的通用小说 Skill
- 只分析你有权读取的本地
.txt/.md资料。 - 只输出聚合统计、叙事机制和面向当前项目的规则,不输出连续原文或替换人名式仿写。
- 参考资料、上下文包和风险报告均不是小说事实;只有定稿正文与回填后的账本可成为后续事实源。
详见 docs/distillation-policy.md。
.\scripts\Install-CodexSkill.ps1安装后,novel-forge-workflow 会在新建、规划、续写、改稿和定稿时读取当前项目配置,按模块执行上下文、蒸馏、校验与状态回填流程。
Novel Forge 不把一条超长提示词当作写作系统,而是按任务编译独立 Prompt Pack。每章、每次审稿和每次修订都 fresh reset,只认当前事实包、任务卡和命中的蒸馏规则,避免长会话上下文污染导致效率和质量衰减。
# 生成授权参考资料的蒸馏卡与蒸馏 Prompt
.\scripts\New-DistillationCard.ps1 `
-ProjectRoot D:\novels\我的新书 `
-SourcePath D:\novels\我的新书\参考资料\授权样本.md `
-ProjectRules '危险场景先给可见目标、阻碍和代价。'
# Prepare 默认生成 Plan Prompt Pack;确认计划后再生成 Draft Prompt Pack
.\scripts\Invoke-NovelPipeline.ps1 `
-ProjectRoot D:\novels\我的新书 `
-Stage Prepare -ChapterNumber 1 -Keywords '主角,山门,险境'
# 审稿和定向修订使用独立 Prompt Pack
.\scripts\Build-NovelPrompt.ps1 `
-ProjectRoot D:\novels\我的新书 `
-Task Review -ChapterNumber 1 `
-InputPath D:\novels\我的新书\版本\候选稿.md任务分流为 Distill、Plan、Draft、Review、Revise。外部 Prompt 只能进入候选区,必须通过本地 fixtures、字符预算、写入边界和现有冒烟测试后才能升级为 stable。
.\tests\Invoke-SmokeTest.ps1该测试会创建临时项目,覆盖首次向导非交互模式、题材/目录/章节体系、双初始化顺序、上下文包、资料快照、蒸馏卡、风险报告和模块化终检。
MIT。发布前可将 LICENSE 中的版权主体改为你的 GitHub 账号或组织名称。