AI辅助长篇小说创作,卡片式创作,支持基于 JSON Schema的结构化 AI 生成与上下文引用,可扩展性强。
Python
1,248
257 commits
updated Sep 23, 2026
NovelForge 是一款具备数百万字级长篇创作潜力的 AI 辅助写作工具。它不仅是编辑器,更是一套集世界观构建、结构化内容生成于一体的解决方案。
长篇创作中,维持一致性、保证可控性、激发持续灵感是最大的挑战。为此,NovelForge 围绕四大核心理念构建:模块化的 “卡片”、可自定义的 “动态输出模型”、灵活的 “上下文注入” 与保证一致性的 “知识图谱”。
📚 Schema 驱动的卡片创作
⚡ 指令流式 AI 卡片生成
📝 章节正文字数控制
提示词约束 与 控制模式。提示词约束 更自然、成本更低;控制模式 会按目标总字数切分多轮预算,控制更稳,但会消耗更多 token。✅ 通用审核与审核结果卡片
🧠 上下文注入 + 知识图谱一致性
@DSL 精准引用项目数据;结合 关系图谱与动态信息,让后续生成更贴近已写内容与角色关系。🔮 灵感助手(Agent)
🧩 代码式工作流系统
🤖 工作流 Agent
💡 灵感工作台 (Ideas Workbench)
内置提示词与知识库管理增强
后端端口配置增强
backend/.env 中的 APP_PORT 自定义后端服务端口54321,并增加 1-65535 范围校验其它bug修复
LLM 配置页能力检测
灵感助手批量正文修改建议
任务完成提醒
记忆层信息增强(角色/关系/场景/组织/物品/概念)
统一提取预览 / 确认写入流程 章节编辑器中,以下能力已统一到“先预览、后确认”的流程:
统一交互方式为:
本次新增并补齐了以下实体类型的轻量状态 / 记忆能力 (按需使用,不一定全部都要用上,避免增加上下文复杂度):
优化移动端css排版,增加左下角导航显隐功能
其它优化、修复若干 bug
章节正文字数控制重构
提示词约束:只做提示词层面的字数约束,文本更自然,适合对字数要求不特别严格的场景控制模式:按目标总字数切分为多轮并分配预算,字数控制更稳,但会消耗更多 token审核功能重构
内容审核卡片审核结果 文件夹,便于集中查看与复用其它优化
关系图支持 SQLite 存储
优化章节正文生成与润色相关提示词
增加章节正文润色/修改后的接受/拒绝功能
增加复制 LLM 配置功能:可基于现有配置快速复制并微调,减少重复配置成本
修复若干bug,提升整体稳定性与交互体验
🚀 重大更新:0.9.0
✨ 重构AI 卡片生成流程
🧱 工作流系统重构(探索性)
Logic.Wait)、异步(async=true)等语义更贴近真实执行过程。🤖 新增工作流 Agent
📚 内置工作流增强
🎨 灵感助手 UI 与交互优化
🧹 工程重构与稳定性提升
⚠️ 由于该版本更新变动较大,旧版本数据库可能无法直接使用,请尝试用发布的迁移脚本进行迁移(不保证成功,建议提前做好数据库db文件备份!)
灵感助手功能增强
UI 与体验优化
...(N) 按钮,使用 Popover 替代 Modal代码优化与修复bug
章节编辑器重构
灵感助手增强
工作流系统优化
UI 与体验优化
注意:如果之前选择本地开发,则当前版本更新需重新安装一下后端requirements
工作流系统(实验性)继续推进
优化代码
增强LLM 管理
优化代码、体验
优化:灵感助手
初步:工作流(实验性)
run_completed 携带 affected_card_ids,前端按卡片粒度精确刷新。新增:灵感助手(Inspiration Assistant)
新增:灵感工作台(Ideas Workbench)
优化:导入卡片功能
无论你是想直接体验,还是参与开发,都可以轻松开始。
项目已默认使用sqlite代替实现关系图谱存储,但也可以切换为neo4j来存储,步骤如下
.env 文件中配置。

1. 后端 (Python / FastAPI)
# 克隆仓库
git clone https://github.com/RhythmicWave/NovelForge.git
cd NovelForge/backend
conda create -n NovelForge python=3.11
conda activate NovelForge
# 安装依赖
pip install -r requirements.txt
将backend/.env.example文件修改为.env
# 如默认端口被占用,可在 backend/.env 中修改(范围 1-65535)
APP_PORT=53210
# 运行后端服务
python main.py
2. 前端 (Node.js / Electron)
# 进入前端目录
cd ../frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 也可以用下面命令启动web页面
// npm run dev:web
3. 一行命令同时启动前后端(npm)
npm run dev
启动后端时,系统会按需初始化/更新内置资源(知识库、提示词、工作流等)。是否覆盖更新由
.env中的BOOTSTRAP_OVERWRITE控制。
建议设置:
BOOTSTRAP_OVERWRITE=true
这样可以在升级版本或重启时自动同步最新的内置知识库/提示词/工作流。false,以避免被覆盖。建议(避免被覆盖):
BOOTSTRAP_OVERWRITE=true,你的自定义副本也不会被更新逻辑覆盖。不定期打包发布版本,无需配置开发环境,开箱即用。
.zip 或 .7z)。backend 目录,按需编辑 .env 文件以配置数据库连接。
如默认的 54321 端口被占用,可修改 APP_PORT;后端与桌面前端会读取同一配置。backend/NovelForgeBackend.exe 启动后端服务。NovelForge.exe 启动主程序。大部分数据都存储在backend/novelforge.db数据库中,当版本更新/迁移时,将该数据库文件复制到对应位置即可。
配置大语言模型 (LLM)
推荐使用Gemini 2.5Pro级别以上的LLM进行创作创建项目与初始化工作流
onprojectcreate 类型)来自动创建预设卡片。系统内置了"项目创建·雪花创作法"工作流,会按照雪花创作法自动创建一套完整的卡片树。

自顶向下,填充核心设定
AI生成卡片示例流程:
生成完成后点击完成,再保存卡片即可。或者对某些字段不满意,则输入指导意见进行反馈。借助灵感助手完善内容

完成阶段大纲创作后,自动生成章节大纲、章节正文卡片,并自动注入每章需要参与的实体。

进入章节创作
完成上述步骤后,点击对应的章节正文卡片,打开章节编辑器,进入核心的写作界面。右侧的上下文面板会自动为你准备好当前章节所需的全部背景资料。

可点击续写进行AI生成(如果没有任何内容,则自动从头开始写)。
续写时可选择两种字数控制模式:
若对生成内容不满意,可选中内容点击右键进行快速编辑,然后输入要求,点击润色/扩写,可以重写这部分内容。

章节正文也支持直接审核:
内容创作完成后,点击入图关系,解析出角色之间的关系存入知识图谱,供后续写作时参考。
提取完成后,点击确认即可存入neo4j数据库。

建议再提取角色动态信息,可用成本更低的模型进行提取。
以上步骤完成后,进行下一章创作时,自动注入相关参与实体的信息

灵感工作台:捕捉创意火花

虽然 NovelForge 提供了一套推荐的创作流程,但其真正的强大之处在于高度的灵活性。你可以完全抛开预设,利用以下工具,组合出专属于你自己的创作体系。
在 设置 -> 卡片类型 中,使用结构构建器为类型定义 json_schema(支持基础类型、relation(embed)、tuple 等)。类型 Schema 将作为该类型卡片的默认结构。

在具体卡片中,可打开 结构(Schema Studio)对该卡片实例的结构进行覆写,或一键"应用到类型"。


应用到类型之后,后续再创建该类型卡片将使用新的结构。
卡片 AI 参数:通过编辑器工具栏设置模型、提示词与温度等参数(llm_config_id、prompt_name、temperature、max_tokens、timeout)。

完成以上设置后,即可在项目中创建该类型卡片并进行 AI 生成。系统会将该卡片的"有效 Schema"一并用于结构化校验与输出。
新建卡片时也可以直接从已有卡片中拖动到下方,自动创建


Schema 支持嵌入($ref 到类型 $defs),可以组合复用已有结构,便于复合能力搭建。

注意,尽量新增模型而不是修改已存在模型结构,避免和已有数据冲突。
除章节正文外,其它卡片(例如阶段大纲、通用文本等)也可以直接使用顶部的 审核 按钮。
阶段审核 提示词通用审核 提示词内容审核卡片这样你既可以为不同卡片类型配置不同审核标准,又能保持统一的审核结果结构和查看方式。
@KB{name=知识库名称} 语法,在提示词中动态引用"知识库"内容,为 AI 提供更丰富的背景信息。这是 NovelForge 的特色。它允许你在提示词模板中,用 @ 符号精确地引用项目中的任何数据注入为上下文。
@卡片标题 或 @卡片标题.content.某个字段@type:角色卡 (所有角色卡)@self (当前卡片), @parent (父卡片)[previous]: 获取同级的前一个卡片。[previous:global:n]: 获取全局顺序(树状先序)中最近的n个同类型卡片。[sibling]: 获取所有同级兄弟卡片。[index=...]: 按序号获取,支持表达式,如 $self.content.volume_number - 1。[filter:...]: 按条件过滤,如 [filter:content.level > 5] 或 [filter:content.name in $self.content.entity_list]。例如,引用最近3章的章节标题及原文:

工作流系统用于把常见创作动作(初始化项目、保存后自动生成子卡、批量处理内容等)编排成可复用流程,并在合适时机自动执行。
当前已完成代码式主线重构,旧 DAG 式工作流方案已移除。

每个工作流可以配置一个或多个触发器,定义何时自动执行:

系统预置了多个常用工作流,可直接使用或作为参考:
新建项目时,可以选择一个 onprojectcreate 触发器的工作流作为项目模板:

(右边执行界面是详细进度显示,工作流状态栏是简单的进度展示)
一些长时间任务执行可以切换到其它界面,无需一直在工作流界面等待。执行完成后工作流状态栏会闪烁提示。
拆书工作流
先建一个空项目

进入工作流界面,选择拆书工作流

设置目标项目、模型名、小说章节目录

注意,小说文件存放需按满足预设的格式要求,例如按每章节进行分割存储为txt文件

点击执行即可
拆书结果:

提取章节大纲→划分阶段故事线→根据所有阶段故事性进行全局分析
本项目采用双许可证授权模式:
请遵守开源协议条款,并在适用场景下取得相应授权。
NovelForge/
├── backend/ # FastAPI 后端
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── db/ # 数据库模型与会话
│ │ ├── schemas/ # Pydantic 数据模型
│ │ └── services/ # 核心业务逻辑
│ └── main.py # 入口
│
└── frontend/ # Electron + Vue3 前端
└── src/
├── main/ # Electron 主进程
├── preload/ # 预加载脚本
└── renderer/ # Vue 渲染进程
└── src/
├── components/ # Vue 组件
├── services/ # 前端服务
├── stores/ # Pinia 状态管理
└── views/ # 页面视图
NovelForge 目前仍处于迭代的早期阶段,作者深知该项目在创作流程、一致性维持、 UI 设计、交互体验等方面还有巨大的改进空间。
最好的工具源于社区的智慧。无论你是创作者还是开发者,都真诚地欢迎你:

AI辅助长篇小说创作,卡片式创作,支持基于 JSON Schema的结构化 AI 生成与上下文引用,可扩展性强。
Python
1,248
257 commits
updated Sep 23, 2026
NovelForge 是一款具备数百万字级长篇创作潜力的 AI 辅助写作工具。它不仅是编辑器,更是一套集世界观构建、结构化内容生成于一体的解决方案。
长篇创作中,维持一致性、保证可控性、激发持续灵感是最大的挑战。为此,NovelForge 围绕四大核心理念构建:模块化的 “卡片”、可自定义的 “动态输出模型”、灵活的 “上下文注入” 与保证一致性的 “知识图谱”。
📚 Schema 驱动的卡片创作
⚡ 指令流式 AI 卡片生成
📝 章节正文字数控制
提示词约束 与 控制模式。提示词约束 更自然、成本更低;控制模式 会按目标总字数切分多轮预算,控制更稳,但会消耗更多 token。✅ 通用审核与审核结果卡片
🧠 上下文注入 + 知识图谱一致性
@DSL 精准引用项目数据;结合 关系图谱与动态信息,让后续生成更贴近已写内容与角色关系。🔮 灵感助手(Agent)
🧩 代码式工作流系统
🤖 工作流 Agent
💡 灵感工作台 (Ideas Workbench)
内置提示词与知识库管理增强
后端端口配置增强
backend/.env 中的 APP_PORT 自定义后端服务端口54321,并增加 1-65535 范围校验其它bug修复
LLM 配置页能力检测
灵感助手批量正文修改建议
任务完成提醒
记忆层信息增强(角色/关系/场景/组织/物品/概念)
统一提取预览 / 确认写入流程 章节编辑器中,以下能力已统一到“先预览、后确认”的流程:
统一交互方式为:
本次新增并补齐了以下实体类型的轻量状态 / 记忆能力 (按需使用,不一定全部都要用上,避免增加上下文复杂度):
优化移动端css排版,增加左下角导航显隐功能
其它优化、修复若干 bug
章节正文字数控制重构
提示词约束:只做提示词层面的字数约束,文本更自然,适合对字数要求不特别严格的场景控制模式:按目标总字数切分为多轮并分配预算,字数控制更稳,但会消耗更多 token审核功能重构
内容审核卡片审核结果 文件夹,便于集中查看与复用其它优化
关系图支持 SQLite 存储
优化章节正文生成与润色相关提示词
增加章节正文润色/修改后的接受/拒绝功能
增加复制 LLM 配置功能:可基于现有配置快速复制并微调,减少重复配置成本
修复若干bug,提升整体稳定性与交互体验
🚀 重大更新:0.9.0
✨ 重构AI 卡片生成流程
🧱 工作流系统重构(探索性)
Logic.Wait)、异步(async=true)等语义更贴近真实执行过程。🤖 新增工作流 Agent
📚 内置工作流增强
🎨 灵感助手 UI 与交互优化
🧹 工程重构与稳定性提升
⚠️ 由于该版本更新变动较大,旧版本数据库可能无法直接使用,请尝试用发布的迁移脚本进行迁移(不保证成功,建议提前做好数据库db文件备份!)
灵感助手功能增强
UI 与体验优化
...(N) 按钮,使用 Popover 替代 Modal代码优化与修复bug
章节编辑器重构
灵感助手增强
工作流系统优化
UI 与体验优化
注意:如果之前选择本地开发,则当前版本更新需重新安装一下后端requirements
工作流系统(实验性)继续推进
优化代码
增强LLM 管理
优化代码、体验
优化:灵感助手
初步:工作流(实验性)
run_completed 携带 affected_card_ids,前端按卡片粒度精确刷新。新增:灵感助手(Inspiration Assistant)
新增:灵感工作台(Ideas Workbench)
优化:导入卡片功能
无论你是想直接体验,还是参与开发,都可以轻松开始。
项目已默认使用sqlite代替实现关系图谱存储,但也可以切换为neo4j来存储,步骤如下
.env 文件中配置。

1. 后端 (Python / FastAPI)
# 克隆仓库
git clone https://github.com/RhythmicWave/NovelForge.git
cd NovelForge/backend
conda create -n NovelForge python=3.11
conda activate NovelForge
# 安装依赖
pip install -r requirements.txt
将backend/.env.example文件修改为.env
# 如默认端口被占用,可在 backend/.env 中修改(范围 1-65535)
APP_PORT=53210
# 运行后端服务
python main.py
2. 前端 (Node.js / Electron)
# 进入前端目录
cd ../frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 也可以用下面命令启动web页面
// npm run dev:web
3. 一行命令同时启动前后端(npm)
npm run dev
启动后端时,系统会按需初始化/更新内置资源(知识库、提示词、工作流等)。是否覆盖更新由
.env中的BOOTSTRAP_OVERWRITE控制。
建议设置:
BOOTSTRAP_OVERWRITE=true
这样可以在升级版本或重启时自动同步最新的内置知识库/提示词/工作流。false,以避免被覆盖。建议(避免被覆盖):
BOOTSTRAP_OVERWRITE=true,你的自定义副本也不会被更新逻辑覆盖。不定期打包发布版本,无需配置开发环境,开箱即用。
.zip 或 .7z)。backend 目录,按需编辑 .env 文件以配置数据库连接。
如默认的 54321 端口被占用,可修改 APP_PORT;后端与桌面前端会读取同一配置。backend/NovelForgeBackend.exe 启动后端服务。NovelForge.exe 启动主程序。大部分数据都存储在backend/novelforge.db数据库中,当版本更新/迁移时,将该数据库文件复制到对应位置即可。
配置大语言模型 (LLM)
推荐使用Gemini 2.5Pro级别以上的LLM进行创作创建项目与初始化工作流
onprojectcreate 类型)来自动创建预设卡片。系统内置了"项目创建·雪花创作法"工作流,会按照雪花创作法自动创建一套完整的卡片树。

自顶向下,填充核心设定
AI生成卡片示例流程:
生成完成后点击完成,再保存卡片即可。或者对某些字段不满意,则输入指导意见进行反馈。借助灵感助手完善内容

完成阶段大纲创作后,自动生成章节大纲、章节正文卡片,并自动注入每章需要参与的实体。

进入章节创作
完成上述步骤后,点击对应的章节正文卡片,打开章节编辑器,进入核心的写作界面。右侧的上下文面板会自动为你准备好当前章节所需的全部背景资料。

可点击续写进行AI生成(如果没有任何内容,则自动从头开始写)。
续写时可选择两种字数控制模式:
若对生成内容不满意,可选中内容点击右键进行快速编辑,然后输入要求,点击润色/扩写,可以重写这部分内容。

章节正文也支持直接审核:
内容创作完成后,点击入图关系,解析出角色之间的关系存入知识图谱,供后续写作时参考。
提取完成后,点击确认即可存入neo4j数据库。

建议再提取角色动态信息,可用成本更低的模型进行提取。
以上步骤完成后,进行下一章创作时,自动注入相关参与实体的信息

灵感工作台:捕捉创意火花

虽然 NovelForge 提供了一套推荐的创作流程,但其真正的强大之处在于高度的灵活性。你可以完全抛开预设,利用以下工具,组合出专属于你自己的创作体系。
在 设置 -> 卡片类型 中,使用结构构建器为类型定义 json_schema(支持基础类型、relation(embed)、tuple 等)。类型 Schema 将作为该类型卡片的默认结构。

在具体卡片中,可打开 结构(Schema Studio)对该卡片实例的结构进行覆写,或一键"应用到类型"。


应用到类型之后,后续再创建该类型卡片将使用新的结构。
卡片 AI 参数:通过编辑器工具栏设置模型、提示词与温度等参数(llm_config_id、prompt_name、temperature、max_tokens、timeout)。

完成以上设置后,即可在项目中创建该类型卡片并进行 AI 生成。系统会将该卡片的"有效 Schema"一并用于结构化校验与输出。
新建卡片时也可以直接从已有卡片中拖动到下方,自动创建


Schema 支持嵌入($ref 到类型 $defs),可以组合复用已有结构,便于复合能力搭建。

注意,尽量新增模型而不是修改已存在模型结构,避免和已有数据冲突。
除章节正文外,其它卡片(例如阶段大纲、通用文本等)也可以直接使用顶部的 审核 按钮。
阶段审核 提示词通用审核 提示词内容审核卡片这样你既可以为不同卡片类型配置不同审核标准,又能保持统一的审核结果结构和查看方式。
@KB{name=知识库名称} 语法,在提示词中动态引用"知识库"内容,为 AI 提供更丰富的背景信息。这是 NovelForge 的特色。它允许你在提示词模板中,用 @ 符号精确地引用项目中的任何数据注入为上下文。
@卡片标题 或 @卡片标题.content.某个字段@type:角色卡 (所有角色卡)@self (当前卡片), @parent (父卡片)[previous]: 获取同级的前一个卡片。[previous:global:n]: 获取全局顺序(树状先序)中最近的n个同类型卡片。[sibling]: 获取所有同级兄弟卡片。[index=...]: 按序号获取,支持表达式,如 $self.content.volume_number - 1。[filter:...]: 按条件过滤,如 [filter:content.level > 5] 或 [filter:content.name in $self.content.entity_list]。例如,引用最近3章的章节标题及原文:

工作流系统用于把常见创作动作(初始化项目、保存后自动生成子卡、批量处理内容等)编排成可复用流程,并在合适时机自动执行。
当前已完成代码式主线重构,旧 DAG 式工作流方案已移除。

每个工作流可以配置一个或多个触发器,定义何时自动执行:

系统预置了多个常用工作流,可直接使用或作为参考:
新建项目时,可以选择一个 onprojectcreate 触发器的工作流作为项目模板:

(右边执行界面是详细进度显示,工作流状态栏是简单的进度展示)
一些长时间任务执行可以切换到其它界面,无需一直在工作流界面等待。执行完成后工作流状态栏会闪烁提示。
拆书工作流
先建一个空项目

进入工作流界面,选择拆书工作流

设置目标项目、模型名、小说章节目录

注意,小说文件存放需按满足预设的格式要求,例如按每章节进行分割存储为txt文件

点击执行即可
拆书结果:

提取章节大纲→划分阶段故事线→根据所有阶段故事性进行全局分析
本项目采用双许可证授权模式:
请遵守开源协议条款,并在适用场景下取得相应授权。
NovelForge/
├── backend/ # FastAPI 后端
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── db/ # 数据库模型与会话
│ │ ├── schemas/ # Pydantic 数据模型
│ │ └── services/ # 核心业务逻辑
│ └── main.py # 入口
│
└── frontend/ # Electron + Vue3 前端
└── src/
├── main/ # Electron 主进程
├── preload/ # 预加载脚本
└── renderer/ # Vue 渲染进程
└── src/
├── components/ # Vue 组件
├── services/ # 前端服务
├── stores/ # Pinia 状态管理
└── views/ # 页面视图
NovelForge 目前仍处于迭代的早期阶段,作者深知该项目在创作流程、一致性维持、 UI 设计、交互体验等方面还有巨大的改进空间。
最好的工具源于社区的智慧。无论你是创作者还是开发者,都真诚地欢迎你:
