SkillAgentSearch skills...

NovelForge

AI辅助长篇小说创作,卡片式创作,支持基于 JSON Schema的结构化 AI 生成与上下文引用,可扩展性强。

Install / Use

/learn @RhythmicWave/NovelForge

README

<div align="center">

NovelForge

<p><strong>新一代 AI 长篇小说创作引擎</strong></p> <p> <a href="#目录">目录</a> • <a href="#核心特性">核心特性</a> • <a href="#更新日志">更新日志</a> • <a href="#运行指南">运行指南</a> • <a href="#创作流程">创作流程</a> </p> <p> <a href="#高级功能与配置">高级功能</a> • <a href="#工作流系统代码式工作流--workflow-agent">工作流系统</a> • <a href="#项目结构">项目结构</a> • <a href="./贡献指南.md">贡献指南</a> • <a href="./后续规划.md">后续规划</a> • <a href="#交流群">交流群</a> </p> </div>

NovelForge 是一款具备数百万字级长篇创作潜力的 AI 辅助写作工具。它不仅是编辑器,更是一套集世界观构建、结构化内容生成于一体的解决方案。

长篇创作中,维持一致性、保证可控性、激发持续灵感是最大的挑战。为此,NovelForge 围绕四大核心理念构建:模块化的 “卡片”、可自定义的 “动态输出模型”、灵活的 “上下文注入” 与保证一致性的 “知识图谱”


<a id="目录"></a>

📑 目录

快速导航

按功能跳转

协作与规划


<a id="核心特性"></a>

✨ 核心特性

  • 📚 Schema 驱动的卡片创作

    • 每种卡片都可定义结构(Schema),AI 生成会按结构校验,减少“看起来能用、落地却混乱”的输出。
  • ⚡ 指令流式 AI 卡片生成

    • 不再是“一次性整段生成”。现在是“输入要求 → 字段粒度流式填充 → 你确认或反馈继续生成”,更可控、更容易修正。生成过程更加丝滑,避免长时间等待生成结果。
    • 该能力聚焦于“当前这张卡片”的生成与完善,关闭生成对话框后本次会话即结束。
  • 📝 章节正文字数控制

    • 章节正文续写支持两种模式:提示词约束控制模式
    • 提示词约束 更自然、成本更低;控制模式 会按目标总字数切分多轮预算,控制更稳,但会消耗更多 token。
  • ✅ 通用审核与审核结果卡片

    • 审核统一采用“草稿预览 → 确认保存为审核结果卡片”的流程。
    • 不同卡片类型可切换不同审核提示词,但结果卡片结构保持一致,便于统一查看与引用。
  • 🧠 上下文注入 + 知识图谱一致性

    • 通过 @DSL 精准引用项目数据;结合 关系图谱与动态信息,让后续生成更贴近已写内容与角色关系。
  • 🔮 灵感助手(Agent)

    • 可持续对话、引用卡片、调用工具修改内容。你可以像和搭档协作一样打磨设定,而不是反复整卡重生成。
  • 🧩 代码式工作流系统

    • 已重构为代码式工作流主线(去掉旧 DAG 方案),支持可视化编辑、触发执行与复用,适合把常用创作流程自动化。
  • 🤖 工作流 Agent

    • 你可以直接用自然语言描述需求,让 Agent 帮你写/改工作流代码、做校验并应用变更。
  • 💡 灵感工作台 (Ideas Workbench)

    • 支持自由卡片、跨项目引用、移动/复制回正式项目,适合专门做脑暴和素材沉淀。

<a id="更新日志"></a>

📅 更新日志

<details> <summary>v0.9.4</summary>
  • 记忆层信息增强(角色/关系/场景/组织/物品/概念)

    • 统一提取预览 / 确认写入流程 章节编辑器中,以下能力已统一到“先预览、后确认”的流程:

      • 角色动态信息
      • 关系提取入图
      • 场景状态
      • 组织状态
      • 物品状态
      • 概念掌握
    • 统一交互方式为:

      • 基于当前章节正文发起提取
      • 先展示预览结果
      • 支持用户在预览中手动调整
      • 确认后再写回卡片或图谱
    • 本次新增并补齐了以下实体类型的轻量状态 / 记忆能力 (按需使用,不一定全部都要用上,避免增加上下文复杂度):

      • 场景卡
      • 组织卡
      • 物品卡
      • 概念卡
  • 优化移动端css排版,增加左下角导航显隐功能

  • 其它优化、修复若干 bug

</details> <details> <summary>v0.9.3</summary>
  • 章节正文字数控制重构

    • 章节正文续写的字数控制收敛为两种模式:
      • 提示词约束:只做提示词层面的字数约束,文本更自然,适合对字数要求不特别严格的场景
      • 控制模式:按目标总字数切分为多轮并分配预算,字数控制更稳,但会消耗更多 token
    • 控制模式当前采用固定多轮预算策略,提升长章节续写时的稳定性与可控性
  • 审核功能重构

    • 审核流程统一为“先生成审核草稿,再确认创建/更新审核结果卡片”
    • 审核结果不再依赖旧记录模型,统一沉淀为 内容审核卡片
    • 审核结果卡片会自动归档到根级 审核结果 文件夹,便于集中查看与复用
    • 章节正文与通用卡片编辑器的审核入口统一为“审核按钮 + 提示词切换”
  • 其它优化

    • 对 LLM 配置、Responses 模式兼容(灵感助手仍不兼容)、导出排序、章节编辑器与若干 UI 细节进行了优化
    • 修复若干 bug,提升整体稳定性
</details> <details> <summary>v0.9.2</summary>
  • 增加章节审核、阶段审核,查看审核历史
    • 点击阶段/章节正文卡片顶部的审核按钮即可,审核完成后会弹出审核结果。
    • 在右栏中可以查看审核历史记录
  • 新增卡片搜索、文件夹类型卡片及前后端一键启动,修复树状结构保存折叠问题
  • 自动检查模型元数据与数据库现有表结构的差异检测并补齐“可安全追加”的缺失列
  • 其它优化
</details> <details> <summary>v0.9.1</summary>
  • 关系图支持 SQLite 存储

    • 关系图存储新增 SQLite 支持(并兼容 Neo4j)
    • 增加关系图管理能力:筛选、批量修改、导入导出等操作
  • 优化章节正文生成与润色相关提示词

    • 优化“内容生成/润色/扩写”等提示词表现,提升输出稳定性与可用性
    • 将文风约束相关内容拆分为知识库注入,便于独立维护与快速调整
  • 增加章节正文润色/修改后的接受/拒绝功能

    • 润色替换支持“接受并替换 / 拒绝并还原”操作,降低误替换风险
  • 增加复制 LLM 配置功能:可基于现有配置快速复制并微调,减少重复配置成本

  • 修复若干bug,提升整体稳定性与交互体验

</details> <details> <summary>v0.9.0</summary>
  • 🚀 重大更新:0.9.0

  • 重构AI 卡片生成流程

    • 从“点击后等待整段结果”升级为“输入要求 → 对话框内字段粒度生成 → 确认/反馈继续生成”,显著增强可用性,更加丝滑~
    • 生成过程更可控,修改成本更低。
  • 🧱 工作流系统重构(探索性)

    • 我们探索性地将工作流从旧的 DAG 式编辑器 迁移到新的 代码式工作流(Python 风格语句 + 特殊标记 DSL),并逐步移除了旧的 DAG 方案。
    • 目前更多是基于对可维护性与 AI 友好程度的综合权衡。
    • 代码式工作流的优点(当前体感):
      • 逻辑更线性、更清晰:顺序、等待(Logic.Wait)、异步(async=true)等语义更贴近真实执行过程。
      • 进度处理与异步操作更自然:执行器可按语句计划调度,不需要在图上绕来绕去。
      • 对 AI 更友好:同一个功能,代码式往往几十行就能表达;而 DAG 配置经常需要几百行的节点与连线描述。
    • 代码式工作流的缺点(需要持续打磨):
      • 不如 DAG 直观
      • 对字符串/代码格式更敏感:参数序列化、字典字段类型、变量引用等细节更容易引发校验或运行错误,需要更强的校验与提示词约束。
  • 🤖 新增工作流 Agent

    • 可通过自然语言描述目标,由 Agent 生成/修改工作流代码并做校验。
    • 支持“先预览再应用”的安全变更体验。
    • 可能还有些bug
  • 📚 内置工作流增强

    • 增加“拆书工作流”等实用流程模板,便于开箱使用和二次改造。
  • 🎨 灵感助手 UI 与交互优化

    • 对话渲染、输入区交互、工具调用显示等体验优化。
  • 🧹 工程重构与稳定性提升

    • 前后端目录结构和模块边界大幅改动、整理,代码可维护性提升。
    • 修复一批工作流、可视化参数编辑、Agent 交互相关问题。
  • ⚠️ 由于该版本更新变动较大,旧版本数据库可能无法直接使用,请尝试用发布的迁移脚本进行迁移(不保证成功,建议提前做好数据库db文件备份!)

</details> <details> <summary>v0.8.6</summary>
  • 增加了版本更新检测功能,默认自动检测(当有新版本时会在设置-关于处出现小红点)
  • 优化了LLM配置界面,增加了获取可用模型列表功能
  • 增加了Web版本适配
  • 代码优化与修复bug
</details> <details> <summary>v0.8.5</summary>
  • 使用新的agent框架进行了全面替换;优化灵感助手功能、UI
  • 增加了灵感助手相关设置
  • 重新实现了React模式来为模型实现文本格式工具调用,适用工具调用能力不强的模型。可在设置-灵感助手处开启(默认关闭)
  • 兼容了推理模型,增加了thinking模式
  • 建议将DeepSeek、Qwen之类的模型选择/修改提供商为OpenAI兼容,而OpenAI则仅设置为GPT 5等官方模型。
  • 其它若干优化
  • 代码优化与修复bug
</details> <details> <summary>v0.8.3</summary>
  • 灵感助手功能增强

    • 新增 ReAct 模式:兼容更多 LLM 模型(文本格式工具调用),可在设置中切换标准/ReAct 模式
      (注意:由于时间关系,ReAct 模式实现较为粗糙,可能存在些bug,还是建议优先使用原生工具调用支持比较好的模型)
    • 上下文智能增强:工具返回值增加父卡片信息,AI 可更准确理解卡片层级关系
  • UI 与体验优化

    • 引用卡片区域重构:固定布局、始终可见的 ...(N) 按钮,使用 Popover 替代 Modal
    • 优化工具调用结果展示:显示成功/失败状态、支持跳转卡片、可折叠查看完整 JSON
    • 修复引用卡片与模型选择重叠问题,调整输入框高度
  • 代码优化与修复bug

</details> <details> <summary>v0.8.2</summary>
  • 优化灵感助手工具调用,增加自动重试功能。可通过.env文件配置最大重试次数
  • 增强卡片拖拽功能,可自由排序
  • 优化灵感助手UI、支持markdown显示
  • 修复bug、清理代码
</details> <details> <summary>v0.8.0</summary>
  • 章节编辑器重构

    • 从独立窗口迁移到主编辑器中栏,统一编辑体验
    • 新增右键快速编辑:选中文本后右键,可输入要求进行润色/扩写
    • 优化上下文组装:润色/扩写时自动包含上下文,衔接更自然
    • 动态高亮显示 AI 生成内容
  • 灵感助手增强

    • 新增工具调用能力(实验性):可直接在对话中创建/修改卡片,支持搜索、查看类型结构等操作
    • 历史对话管理:按项目存储对话历史,支持新增/加载/删除会话
    • 实时工具调用反馈:显示"正在调用工具...",完成后自动刷新卡片树
    • 优化上下文构建:自动注入项目结构树、统计信息、操作历史
  • 工作流系统优化

    • 节点自动注册机制:新增节点只需一行装饰器,前端自动同步
    • 动态节点库:从后端动态加载节点列表,零配置扩展
  • UI 与体验优化

    • 修复暗黑模式下多处显示问题
    • 优化卡片编辑器布局与交互细节
    • 改进流式输出的视觉反馈

注意:如果之前选择本地开发,则当前版本更新需重新安装一下后端requirements

</details> <details> <summary>v0.7.8</summary>
  • 工作流系统(实验性)继续推进

    • 新增“项目创建时触发(onprojectcreate)”,用工作流替代旧项目模板
    • 画布交互优化:拖拽创建节点、删除连接线、坐标定位更准确
    • 工作流工作室与节点参数面板的若干易用性优化
    • 注:工作流仍处于实验阶段,当前主要用于逐步替换原有硬编码逻辑,扩展新能力仍有较大提升空间
  • 优化代码

    • 清理旧项目模板相关代码与界面,统一到工作流体系
</details> <details> <summary>v0.7.7</summary>
  • 优化作品标签卡片
    • 增加标签项、选项数据
    • 将标签项类别数据抽离出来,设置为知识库文件存储,可在设置-知识库中编辑作品标签,自由的修改标签项类别
  • 增加卡片AI生成时中断功能
  • 优化代码、修复bug,可通过.env配置是否在启动时重置知识库、提示词等内容
</details> <details> <summary>v0.7.6</summary>
  • 增强LLM 管理

    • LLM 配置支持“测试连接”。
    • 支持用量设置:可设定 Token 上限、调用次数上限(-1 表示不限)。
    • 列表展示“已用(输入/输出/调用)”,并提供“一键重置统计”。(目前统计的token用量是粗略统计,不同模型计算方式可能不同,仅供参考)
  • 优化代码、体验

</details> <details> <summary>v0.7.5</summary>
  • 优化:灵感助手

    • 支持自由引用多个卡片数据(跨项目、去重与来源标记)。
    • 可在对话中选择 LLM 模型(可覆盖卡片配置)。
    • 对话历史按项目保存与恢复,重载不丢失。
    • 若干 UI 与交互细节优化。
  • 初步:工作流(实验性)

    • 新增“工作流工作室”:画布(Vue Flow)、参数侧栏、节点库与触发器基础 CRUD。
    • 运行与事件:支持 SSE,run_completed 携带 affected_card_ids,前端按卡片粒度精确刷新。
    • 重要说明:当前为实验性功能,UI交互/DSL/校验/Runner/触发器等功能仍在完善。
</details> <details> <summary>v0.7.0</summary>
  • 新增:灵感助手(Inspiration Assistant)

    • 右侧面板中的对话式协作工具,支持实时讨论和迭代优化卡片内容。
    • 跨项目卡片引用功能,可将任意项目的卡片数据注入对话,激发创意碰撞。
    • 自动引用当前选中卡片,实现无缝上下文切换。
    • 一键“定稿生成”,将对话成果直接应用到卡片内容。
    • 重置对话功能,便于开启新的创意讨论。
  • 新增:灵感工作台(Ideas Workbench)

    • 独立窗口模式,提供专注的创意探索环境。
    • 自由卡片系统,不受项目结构约束。
    • 跨项目引用与创意融合能力。
    • 一键将自由卡片移动/复制到正式项目。
  • 优化:导入卡片功能

    • 将“导入自由卡”升级为“导入卡片”,支持从任意项目导入。
    • 改进卡片选择器,按类型分组并支持折叠/展开。
    • 优化引用数据缓存,提升性能与响应速度。
</details> <details> <summary>v0.6.5</summary>
  • 新增:项目模板(Project Templates)- 已在 v0.7.8 中迁移至工作流系统
    • 设置页新增"项目模板"管理,支持配置新建项目时自动创建的卡片类型与顺序,形成可复用的创作管线;可维护多个模板。
    • 新建项目支持选择模板。
    • 后端新增模板数据模型与 CRUD 接口,应用启动自动写默认项目模板。
</details>

<a id="技术栈"></a>

🛠️ 技术栈

  • 前端 (Frontend): Electron, Vue 3, TypeScript, Pinia, Element Plus
  • 后端 (Backend): FastAPI, SQLModel (Pydantic + SQLAlchemy), Uvicorn
  • 数据库 (Database): SQLite (核心数据), Neo4j (知识图谱)

<a id="运行指南"></a>

🚀 运行指南

无论你是想直接体验,还是参与开发,都可以轻松开始。

0. Neo4j Desktop(可选,非必须)

项目已默认使用sqlite代替实现关系图谱存储,但也可以切换为neo4j来存储,步骤如下

  • 请下载并安装 Neo4j Desktop,推荐版本 5.16 或更高。
  • 下载地址: Neo4j Desktop
  • 安装后,创建一个本地数据库实例,并确保其处于运行状态。默认连接信息可在 .env 文件中配置。 alt text

方式一:从源码运行 (开发者/最新功能)(非开发者建议用方式二)

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

# 运行后端服务
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

启动后端时,系统会按需初始化/更新内置资源(知识库、提示词、工作流等)。是否覆盖更新由 .env 中的 BOOTSTRAP_OVERWRITE 控制。

  • 建议设置:

    • 如果你没有直接修改过内置资源,建议设置为:
      BOOTSTRAP_OVERWRITE=true
      
      这样可以在升级版本或重启时自动同步最新的内置知识库/提示词/工作流。
    • 如果你曾直接修改过“内置”资源,建议设置为 false,以避免被覆盖。
  • 建议(避免被覆盖):

    • 不要直接编辑“内置”资源。
    • 如需定制,请新建一个副本(复制知识库/提示词/工作流后重命名),在副本上修改。这样即使将来设置 BOOTSTRAP_OVERWRITE=true,你的自定义副本也不会被更新逻辑覆盖。

方式二:使用发行版 (快速上手)

不定期打包发布版本,无需配置开发环境,开箱即用。

  1. 前往项目的 Releases 页面下载最新的便携版压缩包 (.zip.7z)。
  2. 解压到任意位置。
  3. (重要) 运行前,请先确保 Neo4j Desktop 中的数据库实例已启动。
  4. 进入解压后的文件夹,找到 backend 目录,按需编辑 .env 文件以配置数据库连接。
  5. 运行 backend/NovelForgeBackend.exe 启动后端服务。
  6. 返回上一级,运行 NovelForge.exe 启动主程序。

大部分数据都存储在backend/novelforge.db数据库中,当版本更新/迁移时,将该数据库文件复制到对应位置即可。


✍️ 创作流程

  1. 配置大语言模型 (LLM)
    • 首次启动后,在设置中添加你的 AI 模型配置,如 API Key、Base URL 等。 ![alt text](doc
View on GitHub
GitHub Stars614
CategoryContent
Updated1h ago
Forks117

Languages

Python

Security Score

100/100

Audited on Apr 6, 2026

No findings