长篇写作辅助最容易失控的部分并非生成一段正文,而是让角色、地点、时间线、章节版本和作者意图长期保持可追溯。近期整理把插件从命令式写作助手推进到更像小型写作工作台的形态:消息入口仍然保留,但 WebUI 开始承担更多查看、编辑和复核职责。
项目概览
这是一个面向个人使用场景维护的写作工具。它把 AstrBot 消息入口、项目仓库、章节版本、事实抽取、RAG 检索、世界书卡片和独立 WebUI 放在同一套本地优先环境中,目标是服务持续写作、旧稿整理、世界观维护和人工审阅。
项目结构上,main.py 负责插件入口,services 组织项目、章节、WebUI、导入和记忆服务,storage 保存 SQLite 数据与项目文件,rag 和抽取模块处理参考资料、事实记录和检索片段。近期新增的世界书工作台主要围绕 StoryMemoryCardService 与 WebUI 项目数据构建器展开。
世界书卡片
世界书不是一份单独的设定文档,而是一组可被章节、关键词和写作任务激活的卡片。卡片类型包含作者长期意图、近期关注点、世界规则、资源账本和伏笔记录。生成前,服务会根据章节编号和当前请求预览被激活的卡片,再把对应内容组装进上下文。
这种模型适合处理长篇创作中的“慢变量”。人物短期状态可以来自章节事实,世界规则和伏笔则更适合进入卡片层。卡片可以由记忆补丁自动生成,也可以人工维护;如果卡片被手动锁定,自动刷新不会覆盖人工内容。
WebUI 与章节编辑
WebUI 的项目页面被拆成多个视图:项目概览、稿件编辑、设定与记忆、章节时间线、风格档案和旧稿导入状态。章节编辑器支持浏览器草稿缓存、差异预览和人工版本保存,这使得模型生成内容可以进入人工审阅阶段,而非一次生成后立即成为最终稿。
项目数据构建器也做了容错处理。不同页面只读取当前视图需要的数据,某个区块失败时返回空数据并保留页面可用状态。对于写作工具而言,这比整页失败更重要,因为写作中断会打散上下文。
旧稿与缓存回灌
旧稿导入和记忆回灌是这次整理中的另一个重点。导入后的章节、事实和摘要会进入检索材料;如果事实库曾经为空但缓存中仍有可用记忆补丁,服务会把缓存记录重新回填为结构化事实,避免已有材料被迫重新抽取。
维护心得是把“生成正文”和“维护创作状态”拆开看待。正文是一份可编辑稿件;世界书、事实、时间线和风格档案则是为下一次写作提供约束的状态层。状态层越清晰,长篇创作越容易持续。