Skip to content

ExplosiveCoderflome/AI-Novel-Writing-Assistant

Repository files navigation

AI 小说创作工作台 / AI Novel Production Engine

一个面向长篇小说创作的 AI Native 开源项目。

当前开发主线: Creative Hub + 自动导演开书 + 整本生产主链 + 写法引擎

Monorepo Frontend Backend AI Editor Vector DB

✨ 项目简介

这是一个面向长篇小说的 AI 生产系统

它不再是“你写一句,AI补一句”的聊天模式,而是:

  • 👉 从一个想法出发
  • 👉 自动构建世界观、人物、剧情结构
  • 👉 管理知识与设定(RAG)
  • 👉 控制写作风格与叙事一致性
  • 👉 最终生成完整章节甚至整本小说

项目定位

很多 AI 写作工具的使用方式其实差不多:

  • 你输入一句 Prompt
  • 它回你一段正文
  • 不满意就重试
  • 写短篇还行,写长篇容易越写越散

这个仓库是“AI 导演式长篇小说生产系统”,而不是传统的写作聊天壳子。

它最核心的产品判断是:

  • 目标用户优先是完全不懂写作的新手,而不是熟悉结构设计的资深作者。
  • 优先解决“如何把整本书写完”,再逐步优化“写得多精巧”。
  • AI 不只是一个补全文本的模型,而是参与规划、判断、调度、执行和追踪的系统角色。

如果你正在找的是下面这种项目,这个仓库会更值得关注:

  • 想验证 AI 是否真的能参与整本小说生产,而不是只写单段文案。
  • 想研究 AI Native Product、Agent Workflow、LangGraph 编排怎样落到真实创作业务。
  • 想把世界观、角色、拆书、知识库、写法控制和章节生成串成一套稳定工作流。

现在已经能做什么

1. AI 自动导演开书

  • 可以从一句模糊灵感开始,让 AI 先给出多套整本方向候选,而不是一上来就逼你自己把世界观、主线、角色和卷纲全想完。
  • 如果第一批方向不满意,可以继续指出“太套路了”“不够爽”“主角驱动力不够”“节奏太慢”这类偏差,让系统沿着你修正过的方向继续出下一批方案,而不是整页推翻重来。
  • Novel Setup / 项目设定 现在已经不只是填几个基础字段,而是在先帮你把题材、卖点、目标读者感受、前 30 章承诺、主副流派模式这些真正影响后续规划的书级控制项立起来。

2. Creative Hub 与 Agent Runtime

  • Creative Hub 现在已经不只是一个聊天页,而是在往统一创作中枢收:对话、追问、规划、工具调用、执行状态和回合总结都在往这里并。
  • 系统里已经有了比较明确的 Planner、Tool Registry、Runtime、审批节点、状态卡片和中断恢复链路,说明这个项目现在关注的已经不是“AI 会不会写字”,而是“AI 能不能组织一条真实的创作工作流”。
  • 如果你关心的是 AI Native Product 怎么落地,这一块已经不是零散按钮拼盘了,而是开始长出一套值得继续往下做的骨架。

3. 整本生产主链

  • 单章运行时、章节执行和整本批量 pipeline 现在都在往同一条主链上收,不再是“这里一个试写入口,那里一个批量按钮”的割裂状态。
  • 已经可以从结构化规划、章节目录和资产准备状态出发,启动整本写作任务,并持续查看当前阶段、失败原因和下一步建议。
  • 它当然还不是那种完全不用管的一键出书机,但也已经不是“只能演示几张截图”的阶段了,至少主链是真的能往前推。

4. 写法引擎

  • 写法现在不再只是提示词里的一段长说明,而是可以保存、编辑、绑定、试写和复用的长期资产。
  • 可以从现有文本里提取写法特征,并把原文样本一起保存下来,后面不是只能靠记忆去猜“当时那个味道到底怎么来的”。
  • 提取出来的特征会沉淀成可见特征池,进入编辑页以后可以逐项启用、停用和组合,写法规则也会跟着同步重编译,便于后续试写、修正和整本绑定。
  • 这意味着写法引擎现在已经开始真的参与生成、检测和修正链路,而不是一个摆在侧边栏里的概念功能。

5. 世界观、角色、拆书、知识库联动

  • 世界观已经不只是大段设定文本,而是支持创建、分层设定、快照、深化问答、一致性检查和小说绑定的结构化资产。
  • 角色体系也不再只是静态角色卡,已经开始往动态角色资产走,会把关系阶段、卷级职责、缺席风险和候选新角色一起带进后续规划与生成。
  • 拆书结果可以继续发布到知识库,再回灌到续写、规划和正文生成;知识库本身也已经支持文档管理、向量检索、关键词检索和重建任务追踪。
  • 换句话说,这一块现在已经开始像“长期记忆系统”,而不是做完一次设定就丢在那里的资料堆。

6. 模型路由与本地运行

  • 已经支持 OpenAI、DeepSeek、SiliconFlow、xAI 等多提供商配置,规划、正文、审阅这些链路可以按路由拆开配。
  • 前后端已经完成 Monorepo 拆分,适合本地持续开发,也比较适合继续往 Prompt Registry、Workflow Registry 和 Runtime 这条路上扩。
  • 默认使用 SQLite 就能把主链先跑起来;如果你要完整体验知识库 / RAG,再按需接 Qdrant 就行,不需要一上来就把所有基础设施堆满。

典型使用路径

  1. 在小说创建页输入一句灵感,先让 AI 自动导演给出整本方向候选。
  2. 进入 项目设定,先把题材、卖点、目标读者感受和前 30 章承诺定下来。
  3. 故事宏观规划角色准备 和世界观资产,把整本主线、角色网和世界边界补到能写。
  4. 进入 卷战略 / 卷骨架 决定怎么分卷,再到 节奏 / 拆章 把当前卷落到章节列表和单章细化。
  5. 按需绑定拆书结果、知识库文档和写法资产,让后续正文不只是靠一次性提示词。
  6. 进入 章节执行 逐章写作、审计、修复,必要时回到卷工作台做再平衡和重规划。
  7. 想加速推进时,再启动整本生产任务,持续查看状态、失败原因和回灌结果。

当前长篇生成能力支撑图

当前长篇生成能力支撑图

  • 开书定盘负责先把这本书“要写成什么样”说清楚,避免后面越写越散。
  • 整本控制层和卷级规划层负责把长篇拆成可推进、可回看、可调整的结构,而不是一次性写死。
  • 角色、世界观、写法、知识库和质量控制一起托住单章生成,让每一章都尽量还在同一本书里。
  • 每写完一章,系统都会把新状态回灌回去,继续影响后续章节、卷级节奏和必要时的重规划。

最近进展

2026-03-29

重大更新:题材与推进模式的职责说明进一步拉开,标题工坊开始主动压低同批候选的重复感,卷拆章与章节执行区也补上了更多“生成得出来、看得清、切得稳”的保护。

  • 小说基础信息、题材管理、推进模式管理和相关入口统一补强了命名与说明文案;现在更容易分清“题材基底”负责世界和货架定位,“推进模式”负责爽点兑现和推进逻辑。
  • 标题工坊开始同时校验字段契约、句式骨架和候选分布,不再轻易出现一批标题都长得很像、评分标签也几乎一样的情况,候选多样性更稳定。
  • 当前卷节奏板如果已经排到更后面的章节,重新生成当前卷章节列表时会自动补足所需章数,不再出现“点了生成但后半段章节没有真正展开”的假完成状态。
  • 章节执行区现在会按当前选中的章节隔离流式正文,切换章节时不会再把别章正在生成的内容误显示到眼前这一章;主写作区的信息层级也更适合连续写作。
  • 章节列表与节奏板的衔接提示补得更直白,相关乱码问题也已清理,生成链路在节奏板、相邻卷再平衡和拆章阶段的结构化输出兼容性更稳。

2026-03-28

重大更新:卷级工作台进一步收紧为“先卷战略、再节奏板、再拆章、再细化”的稳定链路,章节写作也开始统一吃书级约束、卷级使命和本章任务,长链路创作更稳。

  • 前置步骤现在会被明确锁定;一旦卷骨架、卷摘要或章节列表变化,系统也会自动清理过期的节奏板和再平衡建议,避免旧结果继续污染后续生成。
  • 结构化章节工作区新增“当前卷章节列表”,可以先看哪些章节已细化,再逐章补目标、边界和任务单;条件不满足时也会直接提示卡点。
  • 章节正文生成开始共用分层写作上下文,更稳地保住卖点、前 30 章承诺、卷使命、相邻卷窗口和本章任务,减少人物跑偏、节奏失焦和开头重复。
  • 章节执行页进一步收拢成三栏主路径,流式输出与已保存正文也合并到同一结果区,逐章推进更顺手。

2026-03-27

重大更新:卷级工作台升级为更贴近连载网文的“卷战略 / 卷骨架 / 节奏 / 拆章”工作流,系统会先帮你判断怎么分卷、哪些卷该硬规划、哪些卷该留弹性。

  • 新增“卷战略建议”和“卷战略审稿”,会先推荐卷数与规划力度,再生成更适合长篇连载的卷骨架,减少一开始就把后半本写死。
  • 拆章前先经过“节奏板”,先明确开卷抓手、升级节点和卷尾钩子,再展开章节列表,章节规划更像真实追读节奏。
  • 单卷重生和结构化规划开始保留卷战略、节奏板、审稿结果和相邻卷再平衡建议;旧项目也能直接沿用,不必手工重建。
  • 侧栏导航、长耗时请求等待、模型搜索和大体积 JSON 修复链路一并优化,长时间创作与结构化生成都更顺畅。

2026-03-26

重大更新:小说基础信息新增“流派模式”控制轴,角色区新增“补充角色”,同时产品级 Prompt 统一收口到 Prompt Registry,规划到审阅的 AI 链路开始用同一套标准协作。

  • 新增独立的“流派模式”资产页,可直接选择或自定义爽感推进、建设经营、关系情感等模式;小说也可以绑定“主流派 + 副流派”,让后续规划、正文和审计围绕同一条控制轴展开。
  • 审计新增 mode_fit 视角,会检查章节有没有偏离该流派的核心驱动、读者奖励和冲突边界,减少越写越不像同一本书。
  • 角色资产工作台新增“补充角色”,AI 可以判断当前阵容缺口,给出关系补位或相对独立的新角色候选,并把建议关系一起落库。
  • 从书名、世界观、角色到续写、润色、审阅和拆书,AI 生成开始共用统一的 Prompt / Workflow Registry,并接入更稳的 JSON 修复与语义重试,跨工作台口径更一致。

2026-03-25

重大更新:小说规划正式升级为卷级工作台,角色准备也升级为动态角色系统,长篇主线、卷纲、章纲和角色推进开始放进同一套联动结构。

  • “故事主线”升级为卷级工作台,可以按卷维护主承诺、冲突升级、主角变化、卷末高潮和承接钩子,长篇规划不再挤在一整块文本里。
  • 大纲升级为卷纲 / 章纲联动工作台,先出卷骨架,再出章节列表,最后补章节目标、执行边界和任务单,规划过程更分步,也更适合新手。
  • 卷级规划支持草稿、生效版、冻结、差异对比和影响分析,改结构前可以先判断会影响哪些卷和章节;旧项目也会自动回填进这套新结构。
  • 动态角色系统会持续沉淀卷级职责、关系阶段、缺席风险和新角色候选,并把这些信息送进后续规划、生成与重规划,让长篇角色推进更连续。

2026-03-24

  • 小说创建页和小说编辑页的基础信息区新增“书级 framing”,用户可以先把目标读者、核心卖点、熟悉阅读感和前 30 章承诺讲清楚,再进入后续规划与生成。
  • 基础信息支持 AI 一键补全书级 framing 建议,后续世界裁剪、写法推荐和主线规划会开始参考这些信息,开书定位更稳,也更适合小白直接起步。
  • 小说编辑页的角色区重构为“角色资产工作台”,新增角色和导入角色改成按需入口,日常主区更聚焦当前角色的状态、动机、成长弧和时间线维护。
  • 新增 AI 角色阵容方案,可一次生成多套核心角色与关键关系候选,并在确认后批量同步到小说角色资产,降低新手前期搭角色系统的门槛。
  • 模型设置补充更多可选提供商与默认模型,设置页也支持按需展开完整模型列表,减少配置时的信息拥挤和历史参数兼容问题。

2026-03-23

  • 章节运行时面板开始直接展示章节职责、阶段标签、必须推进/必须保留事项,并支持在发现结构问题后发起重规划,减少写到一半才发现方向漂移。
  • 章节生成上下文进一步收口到“规划 + 最新状态 + 活跃冲突 + 创作决策”这条主链,长篇连续生成时更容易保持人物、关系和伏笔的一致性。
  • 文本提取型写法资产现在会同时保存原文样本,方便回看、比对和继续微调。
  • 提取到的写法特征会沉淀成可编辑的特征池,用户可以在写法编辑里逐项启用或停用。
  • 当一次提取没有产出可用特征时,编辑页会明确提示原因,并支持直接重新提取。

2026-03-22

  • 小说创建页新增了“AI 自动导演创建”入口,可以先生成多套整本方向候选,再继续追问和修正。
  • 整本批量生成与单章运行时主链进一步收拢,减少两条链路生成结果割裂的问题。
  • 小说编辑页补上了“正文开写前的写法确认”环节,降低新手选风格门槛。

2026-03-21

  • 写法引擎工作区重构为更聚焦的模块化界面,主流程更专注于选资产、编辑、绑定与试写。
  • 写法约束开始更深地接入章节生成、检测与自动修正链路。
  • 标题快选和模型连通性错误提示进一步优化。

2026-03-20

  • 新增“写法引擎”模块,写法资产开始真正参与试写、生成约束、AI 味检测和一键修正。
  • 拆书页可将“文风与技法”一键转成写法资产。
  • 小说页开始更明确地区分“这本书真正会用到的世界切片”和全量世界资料。

更细的阶段规划可以看 TASK.md

功能预览

功能概览中的95%以上编写都是AI完成

Creative Hub

统一承载对话、规划、工具执行和创作推进的创作中枢。

创作中枢

项目设定

先把题材、卖点、读者预期和前 30 章承诺讲清楚,再把后续规划和生成都建立在同一条开书控制轴上。

项目设定

故事宏观规划

从整本走向、阶段升级和长线兑现出发,先把长篇主线搭稳,再继续卷级和章节级规划。

故事宏观规划

角色准备

围绕主角团、关系网和卷级职责做角色准备,减少开书后角色断档、功能位缺失和关系推进失速。

角色准备

卷战略 / 卷骨架

先决定怎么分卷、哪些卷要硬规划,再把每卷使命、升级节点和卷尾钩子钉稳。

卷战略 / 卷骨架

节奏 / 拆章

先看当前卷节奏,再把节奏落实成章节列表和单章细化,卷内推进链路更适合连载网文的追读节奏。

节奏 / 拆章

章节执行

章节执行页把章节导航、当前结果和 AI 快捷操作放进同一工作流里,适合逐章推进、审计和修复。

章节执行

正文修改

在正文编辑页里直接回看当前章、修正文案,并继续衔接任务单、审计结果和修复链路。

正文修改

小说列表

从这里进入开书、管理、编辑和整本生产。

小说列表

拆书分析

把参考作品拆成结构化知识,再回灌给后续创作链路。

拆书分析

知识库

统一管理文档、索引、重建任务和检索能力。

知识库

世界观

世界观不再只是描述文本,而是能被绑定、检查和持续维护的结构化资产。

世界观

角色库

统一维护角色基础档案与小说内角色信息。

角色库

类型管理

集中维护题材与类型资产,让故事规划、角色准备和正文生成共享同一套题材语言。

类型管理

流派管理

把推进模式、兑现方式和冲突边界收成可复用的流派模式资产,让整本书更容易保持读者预期。

流派管理

标题工坊

批量生成、筛选和微调书名与标题方向,降低新手在开书命名阶段的试错成本。

标题工坊

写法引擎与反 AI 规则

统一管理写法资产、风格约束和反 AI 规则,让正文更像作品本身,而不是模板式补全文本。

写法引擎与反 AI 规则

任务中心

查看拆书、知识库重建和其他后台任务的排队、执行与失败状态。

任务中心

模型配置

为不同能力配置不同模型,减少一套模型硬吃所有任务的成本。

模型配置

快速开始

环境要求

  • Node.js >= 20
  • pnpm >= 9.7
  • 至少一组可用的 LLM API Key 也可以先把项目跑起来,再在页面里配置
  • 如果你要完整体验知识库 / RAG,再额外准备可用的 Qdrant

1. 安装依赖

pnpm install

2. 配置环境变量

这个仓库通过 pnpm workspace 分别启动前后端,所以环境变量也是按子包读取的:

  • 服务端运行在 server/ 工作目录,默认读取 server/.env
  • 前端运行在 client/ 工作目录,默认读取 client/.env / client/.env.local
  • 根目录 .env.example 目前更适合当“总览参考”,不是 pnpm dev 默认读取的主入口

2.1 服务端环境变量

先复制服务端示例文件:

# macOS / Linux
cp server/.env.example server/.env

# Windows PowerShell
Copy-Item server/.env.example server/.env

最少建议先确认这些项目:

  • DATABASE_URL 默认就是本地 SQLite,可直接使用
  • RAG_ENABLED 如果你暂时不接知识库,建议先设为 false
  • QDRANT_URLQDRANT_API_KEY 只有要启用 Qdrant / RAG 时才需要

注意:

  • OPENAI_API_KEYDEEPSEEK_API_KEYSILICONFLOW_API_KEY 这类变量可以先留空
  • 项目启动后,也可以在页面中配置模型供应商和默认模型

2.2 前端环境变量

大多数本地开发场景,其实不需要单独创建前端 env。

因为前端开发模式下默认会把 API 指到:

http(s)://当前页面 hostname:3000/api

只有在这些场景下,才建议创建 client/.env

  • 前端和后端不在同一台机器
  • 你想把前端显式指向别的 API 地址
  • 你需要固定 VITE_API_BASE_URL

示例:

# macOS / Linux
cp client/.env.example client/.env

# Windows PowerShell
Copy-Item client/.env.example client/.env

内容通常只需要:

VITE_API_BASE_URL=http://localhost:3000/api

2.3 模型供应商并不一定要写死在 env

当前项目已经支持在页面里配置模型相关设置:

  • /settings 配置供应商 API Key、默认模型、连通性测试
  • /settings/model-routes 给不同任务分配不同 provider / model
  • /knowledge?tab=settings 配置 Embedding provider、Embedding model、集合命名和自动重建策略

所以环境变量里的 OPENAI_MODELDEEPSEEK_MODELEMBEDDING_MODEL 等,更适合当作:

  • 启动默认值
  • 数据库里还没保存设置时的回退值

3. 启动开发环境

pnpm dev

默认情况下:

  • 前端:http://localhost:5173
  • 后端:http://localhost:3000
  • API:http://localhost:3000/api

首次启动服务端时,会自动执行 Prisma generate 和 db push

建议第一次启动后先做这几步:

  1. 打开 http://localhost:5173/settings,至少配置一组可用的模型供应商 API Key
  2. 打开 http://localhost:5173/settings/model-routes,检查各任务实际使用的模型路由
  3. 如果要启用知识库,打开 http://localhost:5173/knowledge?tab=settings,保存 Embedding / Collection 设置

4. 如果你使用 Qdrant Cloud

如果你只是先体验主流程,其实可以先跳过 Qdrant,直接在 server/.env 里设:

RAG_ENABLED=false

如果你要启用 Qdrant Cloud,可以按下面的最小流程来:

  1. Qdrant Cloud 注册账号。
  2. Clusters 页面创建一个集群。 测试阶段用 Free cluster 就够了。
  3. 集群创建完成后,到集群详情页复制 Cluster URL。
  4. 在集群详情页的 API Keys 中创建并复制一个 Database API Key。 这个 key 创建后通常只展示一次,建议立即保存。
  5. 把它们写入 server/.env
QDRANT_URL=https://your-cluster.region.cloud.qdrant.io:6333
QDRANT_API_KEY=your_database_api_key
  1. 启动项目后,再去 知识库 -> 向量设置 页面选择 Embedding provider / model,并保存集合设置。

对这个项目来说,QDRANT_URL 建议直接填 REST 地址,也就是带 :6333 的地址。

如果你想手动验证连通性,可以用:

curl -X GET "https://your-cluster.region.cloud.qdrant.io:6333" \
  --header "api-key: your_database_api_key"

你也可以把集群地址后面拼上 :6333/dashboard 打开 Qdrant Web UI。

Qdrant 官方文档:

5. 可选初始化

pnpm db:seed
pnpm db:studio

常用命令

pnpm dev
pnpm build
pnpm typecheck
pnpm lint
pnpm db:migrate
pnpm db:seed
pnpm db:studio
pnpm --filter @ai-novel/server test
pnpm --filter @ai-novel/server test:routes
pnpm --filter @ai-novel/server test:book-analysis

技术栈与架构

技术栈

层级 技术
前端 React 19、Vite、React Router、TanStack Query、Plate
后端 Express 5、Prisma、Zod
AI 编排 LangChain、LangGraph
数据库 SQLite
RAG Qdrant
工程形态 pnpm workspace Monorepo

Monorepo 结构

client/   React + Vite 前端
server/   Express + Prisma + Agent Runtime + Creative Hub
shared/   前后端共享类型与协议
images/   README 与产品预览截图
scripts/  启动和辅助脚本
docs/     设计文档、阶段检查点、模块计划与历史归档

更细的文档分区说明可以看 docs/README.md

当前系统关注点

  • Creative Hub 负责统一创作中枢与 Agent 运行时体验
  • Novel Setup / Director 负责从一句灵感走到整本可写
  • Novel Production 负责整本生成主链
  • Style Engine 负责写法资产、特征提取、绑定和反 AI 协同
  • Knowledge / Book Analysis / World 负责长期上下文沉淀与回灌

当前路线图

当前最重要的不是继续堆零散功能,而是提高“小白把整本书写完”的成功率。

P0

  • 把自动导演、Novel Setup、整本生产主链进一步收拢成稳定闭环
  • 让用户从一句灵感进入“整本可写”状态
  • 降低新手在写法、世界观、角色和章节规划上的认知负担

P1

  • 提高整本一致性、节奏稳定性和人物成长质量
  • 让写法资产、世界观约束、章节重规划和审阅反馈形成闭环
  • 让系统更擅长“持续掌控整本书”,而不只是“生成某一章”

P2

  • 继续强化多阶段 Agent 协同
  • 完善更自动化的生产调度、回合记忆和整本质量控制

贡献方式

如果你想参与这个项目,最有价值的贡献方向包括:

  • 提升整本生产稳定性
  • 改善新手开书体验和自动导演成功率
  • 强化写法引擎、知识库回灌和世界观一致性链路
  • 补充测试、错误回放和运行时可观察性

欢迎直接提 Issue 或 Pull Request。

说明

  • 这是一个持续快速迭代中的 AI Native 创作系统,功能边界仍在演化。
  • README 优先描述当前最值得体验、最能代表方向的能力,而不是列出全部历史实现细节。
  • 如果你更关心阶段目标、优先级和后续优化计划,请直接查看 TASK.md

这是对AI完全接入项目开发的一次尝试

项目中所有代码都是AI编写

目标:只需要进行书名配置 和 点击确认按钮 即可生成(理想)小说

About

面向长篇小说创作的 AI Native 开源系统,用 Agent、世界观、写法引擎、RAG 和整本生产工作流,帮助新手从一句灵感走到完整小说。AI-native engine for end-to-end novel creation — from idea to full chapters, with structured planning, worldbuilding, and agent-driven workflows.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages