一、项目概况
91Writing 是一个面向小说创作场景的开源工具,核心目标是将大模型能力嵌入到小说的大纲、章节、人物、世界观等创作环节中。项目明确声明为纯前端实现(主分支),所有业务数据保存在浏览器本地,不提供云同步;大模型接口由用户自行配置(OpenAI 兼容格式),项目本身不提供公共 API。
仓库目前包含两个主要分支:
- 主分支(main):基于 Vue 3 + Element Plus + Vite 的单页应用,数据本地存储,侧重结构化编辑与提示词驱动的辅助写作。
- agentic 分支:后端采用 Node.js + Express + LangChain.js,前端为原生 JavaScript,引入 ReAct 架构与 Function Calling,支持智能体自主读取项目文件并完成多步骤创作任务。
当前版本信息(主分支 package.json)显示为 0.7.0 左右,技术栈以 Vue 3.3.x、Element Plus、WangEditor、Pinia、Axios 为主。
二、技术架构对比
| 维度 | 主分支(Vue 前端) | agentic 分支(ReAct) |
|---|---|---|
| 前端 | Vue 3 + Element Plus + Vite | 原生 HTML/JS + CSS |
| 后端 | 无(纯前端) | Node.js + Express |
| AI 调用方式 | 前端直接请求用户配置的 API | LangChain + Function Calling |
| 数据存储 | 浏览器本地(IndexedDB/LocalStorage) | 服务器文件系统(项目目录) |
| 上下文管理 | 用户手动选择章节/设定关联 | Agent 自主 list/read 文件 |
| 长文本生成 | 流式续写(200–5000 字) | 工具 generate_long_content(支持 3000+ 字) |
| 部署复杂度 | 静态资源或 Docker + Nginx | 需 Node 环境 + .env 配置 API |
主分支适合本地离线使用、隐私要求高的场景;agentic 分支将创作过程转为对话驱动的多步骤推理,适合需要跨文件一致性维护的长篇创作。
三、核心功能能力
3.1 小说项目管理(主分支为主)
- 支持按类型创建项目(预设玄幻、都市、历史、科幻、武侠、言情等,可自定义类型)。
- 元数据管理:标题、封面、简介、标签、状态。
- 章节管理:支持草稿 / 完成 / 发表三状态标记,自动选中首章进入编辑。
- 统计能力:字数统计、阅读时间估算、创作进度跟踪。
- 写作目标:可设定日/周/月字数目标,跟踪连续创作天数。
3.2 AI 辅助创作能力
主分支提供两类直接交互:
- 智能续写:用户可指定续写方向与字数范围(200–5000 字),支持流式输出、随时停止、一键追加到正文。上下文可手动选择关联章节(默认关联前两章)。
- 内容润色:支持选中段落或全文,提供语法、文风、情感、逻辑等润色类型,可结合提示词库分类调用,流式展示过程。
提示词库支持分类管理(大纲生成、正文创作、润色优化、对话场景、场景描写、动作情节、心理描写等),内置变量替换机制,用户可导入自定义模板。
3.3 世界观与设定管理
提供模板化世界观构建,覆盖核心设定(技术水平、社会结构、特殊机制)、关键元素(物品、势力、地理)、故事背景(历史事件、主要冲突)。支持 AI 辅助完善细节,并提供一致性检查思路(依赖提示词与上下文)。复杂题材(科幻修仙、赛博朋克等)可通过自定义类型与提示词扩展。
3.4 agentic 分支的智能体能力
该分支将创作过程建模为 ReAct 循环:
- Context Discovery:Agent 调用 list_files 查看大纲、章节、人物设定等目录。
- Intelligent Retrieval:按需 read_file 读取创作提示词知识库、大纲、前一章、人物设定等,确保风格与逻辑连贯。
- Creation:调用 generate_long_content 生成长文本,或使用 save_file / update_file / append_to_file 持久化。
可用工具包括文件列表、读取、保存、更新、追加、移动、版本历史查看等。每个项目自动生成「创作提示词知识库.md」,支持系统级与项目级双层提示词,可在 Web UI 中直接编辑并实时生效。界面采用三栏布局(文件树 + 预览 + AI 助手),支持 @ 引用文件。
四、数据与隐私特点
- 主分支明确不提供云同步,所有小说数据、提示词、类型配置、API 密钥均保存在本地。
- 支持分类导出/导入(小说数据、提示词库、类型设置、API 配置),以及分级数据清理。
- Token 使用统计与成本分析功能存在于界面描述中,实际依赖用户自行配置的 API 计费。
- 部署时可通过 Docker + Nginx 实现静态托管,数据仍停留在客户端。
五、部署与运行方式
主分支典型流程:
Bash
git clone https://github.com/ponysb/91Writing.git cd 91Writing pnpm install pnpm dev生产构建后可配合提供的 Dockerfile 与 nginx.conf 进行多阶段构建与 SPA 路由支持。agentic 分支需配置 .env 中的 API_KEY、API_BASE_URL、MODEL_NAME,然后执行 pnpm run web。
六、适用场景与局限
适用场景:
- 需要结构化管理大纲、章节、人物、世界观的网文或长篇创作。
- 希望通过可配置提示词控制文风、节奏的作者。
- 对数据本地化有要求、自行持有大模型 API 的用户。
- 希望尝试对话式、多步骤自主推理创作流程的开发者或作者。
局限(基于公开信息):
- 纯前端模式下,跨设备同步需用户自行处理数据导入导出。
- AI 输出质量完全依赖用户配置的模型与提示词质量,项目本身不内置模型。
- agentic 分支引入服务端后,部署与维护复杂度上升。
- 长上下文一致性仍依赖用户维护的设定文件与提示词,而非模型内在记忆。
七、总结
91Writing 将 AI 能力以工具链形式嵌入小说创作流程:主分支侧重本地化的结构化编辑与提示词驱动辅助;agentic 分支则进一步将创作过程转化为基于 Function Calling 的自主推理循环,允许智能体主动读取项目上下文并执行多步操作。两者均要求用户自备 OpenAI 兼容 API,数据控制权保留在用户侧。项目代码与文档公开,适合有一定前端或 Node 基础的开发者进行二次定制,或直接作为本地创作辅助工具使用。