浪疯のBlog - ai
type: channel
link: https://www.koru.ink/tag/ai/
items: 我用 WorkBuddy 做了一个能记住前文的 AI 小说编辑器

我用 WorkBuddy 做了一个能记住前文的 AI 小说编辑器
type: item
date: 2026-07-27T00:45:00+08:00
description: 很多 AI 写作工具都能生成一段看起来不错的文字，但一写到长篇，问题就来了：人物性格悄悄变化，前面埋下的伏笔被忘记，时间线互相打架，写到几十章后，模型甚至记不清上一章发生了什么。 我想做的不是一个套着聊天框的“小说生成器”，而是一套真正围绕长篇写作设计的工作台：它要能管理作品、大纲、人物和世界设定；写每一章时自动带上相关上下文；章节完成后整理记忆；还要允许作者随时修改、重写和调整后续方向。 于是，我用 WorkBuddy 把这个想法做成了一个可以本地运行的开源项目：**墨线 · 小说工坊**。 项目地址：https://cnb.cool/TvTink/xiaoshuo ![image.png](https://blog.img.07120831.xyz/2026/07/1785343503245-973.png) ## 一、先把“做个小说工具”拆成能执行的需求 我一开始没有直接让 WorkBuddy “帮我做个网站”，而是先讨论真实的写作流程。一个长篇项目至少有四层数据： 1. 作品层：书名、类型、主题、篇幅和文风。 2. 规划层：世界设定、人物、时间线、总体剧情和逐章大纲。 3. 正文层：每一章的标题、内容和完成状态。 4. 记忆层：章节摘要、人物状态、伏笔、地点、物品和滚动更新的全局摘要。 我给 WorkBuddy 的第一类指令，大致是这样的： > 我想做一个本地运行的网页版 AI 小说编辑器。先不要写代码，请分析长篇小说生成最容易失控的环节，给出数据结构、写作流程和上下文策略。数据需要持久化，大模型通过 OpenAI 兼容接口接入。方案确认后再实现。 这一步很重要。WorkBuddy 先帮我把模糊想法整理成页面、接口、数据表和任务流程，我再逐项确认。最终技术方案保持得很克制：前端使用原生 HTML、CSS 和 JavaScript，后端使用 Node.js、Express 与 SQLite。没有为了“看起来先进”堆叠框架，部署和迁移也更简单。 实际打开 WorkBuddy 的 Plan 模式，它并不会直接动手写代码，而是先把当前工作区扫一遍：Node.js 版本、npm、Playwright 是否就绪，全在第一屏列出来；接着把整套项目要长成什么样子、每个文件负责什么，先用一张目录清单铺出来： ![image.png](https://blog.img.07120831.xyz/2026/07/1785343503627-932.png) 我对照这张图确认"环境 OK、目录结构合理"后，再让它继续往下展开。后面的输出会自动落到一张「阶段计划表」上：P1 基础骨架、P2 模型设置 + 项目 CRUD、P3 大纲生成主流程……一直到 P9 自动化测试，每个阶段都写清楚"做什么"和"预计产出"： ![image.png](https://blog.img.07120831.xyz/2026/07/1785343503249-545.png) 这张表就是后续所有代码动作的"母版"。我对照它决定要不要调整顺序、合并阶段、砍掉功能，确认后再让 WorkBuddy 真正动手。Plan 模式在这里帮我避免了一上来就堆功能、又因为边界不清反复返工的常见问题——把"想要的东西"翻译成"可以执行的事情"这一步，是后续一切顺利的起点。 新建作品时，作者可以输入书名、题材、主题、章节数、每章字数、文风和硬性设定，也可以选择系统内已有作品作为结构或文风参考。 ![image.png](https://blog.img.07120831.xyz/2026/07/1785343503397-887.png) ## 二、真正难的不是生成文字，而是管理上下文 普通的做法是把前文全部塞给模型。短篇还能用，长篇很快就会超过模型窗口，也会带来大量无效 token。只给上一章又不够，早期伏笔、人物关系和世界规则很容易丢失。 我和 WorkBuddy 反复调整后，采用了分层上下文策略： - 默认注入前 2 章完整正文，作者可以在 1 至 5 章之间调整。 - 更早章节只提供结构化摘要，减少无关文本。 - 同时注入全局摘要、当前章大纲、相关人物、时间线、世界设定和关键记忆。 - 每章完成后，自动提取人物状态、剧情事件、伏笔、地点和物品记忆。 - 长章节先分段摘要，再归并为章节记忆，避免章末内容被截断。 - 上下文总字符预算可在 8000 至 120000 之间配置，超长时优先保留设定开头和当前剧情结尾。 模型连接也没有绑定某一家服务。只要提供 OpenAI Chat Completions 兼容接口，就可以接入 OpenAI、DeepSeek、通义千问、智谱、硅基流动或本地 Ollama。API Key 和作品数据都保存在本机 SQLite 中。 ![image.png…