前言¶
在 DSH 里写长篇,常见做法是任务、聊天和设定文件混在一起:人物卡散在笔记里,正文在另一个目录,关系靠脑子记,改一章还要自己搜「这个名字在哪出现过」。Novel Studio(lyjsyyds/dsh-novel-studio)把长篇当成独立分区装进 DSH:侧栏一本书的图标,点开是书架和当前作品的十一个内容分区,外加检索、进度、关系图、校验、AI、导出等工具标签。数据仍是本机 YAML 与 Markdown,插件只是读写与展示层;聊天里的 Agent 还能通过十六个注册工具直接操作书库。
这是什么¶
Novel Studio 是维护者 lyjsyyds 发布的 DSH 客户端插件(npm 包名 dsh-novel-studio-lyjs,GitHub 仓库 dsh-novel-studio,当前版本 0.2.1,MIT 许可证)。它要求 DSH 引擎 >=0.2.0-rc.1,在浏览器侧注入侧栏与主面板,在宿主侧提供 HTTP 路由与 Agent 工具。
社区目录页:skillhub.cn/plugins/lyjsyyds/dsh-novel-studio(独立站点,与 DeepSeek / 幻方无官方从属关系)。源码:github.com/lyjsyyds/dsh-novel-studio。
界面与数据怎么组织¶
侧栏图标打开后,左侧是书架(每部小说一条;标题旁箭头可折成竖边,宽度偏好记在浏览器里,无记录时默认收起),右侧是当前书的总览 · 人物 · 世界观 · 大纲 · 面板 · 正文 · 素材 · 草稿,以及 检索 · 进度 · 导入 · 设置 与 关系图 · 校验 · AI · 导出 等工具。
每部作品在书库根目录下占一个独立文件夹,默认根路径为 ~/.dsh/novels。实际根目录按优先级决定:显式参数 → 环境变量 DSH_NOVEL_ROOT → 面板保存的位置(写入 ~/.dsh/novel-studio.yaml 的 root)→ 默认路径。环境变量会锁定书库(GET /root 返回 locked: true 时面板改不动),避免测试数据写进正式书库。
典型目录结构如下(摘自 README):
~/.dsh/novels/<书名>/
book.yaml 作品元信息
settings.yaml
characters/<id>.yaml 人物
relationships.yaml 关系
world/ 世界观
outline/ 大纲
panels/ 面板
chapters/<id>.md 正文
meta/ 章节元信息
drafts/ 草稿
materials/ 素材
publish/ 发布产物
核心功能¶
下面按「写设定 → 写正文 → 查问题 → 交给 AI / Agent」的顺序介绍已文档化的能力。
全库检索与写作进度¶
检索在一个入口搜索整本书:正文(带行号)、各分区记录与字段、素材文件名、原始 YAML;命中后跳转到对应分区并高亮。
进度基于 progress.yaml 记录每日净产出(删正文会记为负值,而不是「今天 0 字」),展示总字数、今日与本周、连续写作天数、30 天曲线,以及设定目标后的差额、日均需写字数与按当前节奏的预估完稿日。
关系图与一致性校验¶
关系图把人物、势力、地点、物品连成网:记录字段(如势力的 leader、地点的 region、物品的 owner)自动成边,手写边在 relationships.yaml。仅看人物时,所属势力仍作为灰色上下文节点出现。图可缩放(0.5×–4×)与拖拽平移。
校验只读扫描全书:悬空边、无效 [[链接]]、章节重号或断号、伏笔未回收或超期、长期未出场配角、退场后再出现、可能泄密、历法与年龄不一致、空分区等,分错误 / 提醒 / 提示三档。同一面板含「读者报告」:模拟读者按章打分与情绪曲线(结果存 reader/reports.yaml)。
历法子功能纯本地算术:结合 world/calendar.yaml、world/festivals.yaml、年表与人物出生年,算节日倒计时与「现在」日期下年龄,不调用模型。
正文、草稿、导入导出¶
草稿箱在改章节前存快照;从草稿恢复前会自动再存一份「恢复前」状态,便于逐步退回。
导出可渲染 Markdown 手稿、纯文本、单页 HTML 或完整 JSON 备份(含分区与素材正文、不含本地路径),支持预览、复制、下载或写入该书 publish/ 并记录 manifest.yaml。
导入默认仅预览:JSON 可整库恢复或恢复成新书;粘贴的 Markdown 可按 # 第一章 等形式切章;materials/、publish/、import/ 下已有文件也可读入。整本替换需二次确认。
书架删除的书移入书库根目录 .trash/(改名不删字节),可在「回收站」恢复或永久删除。
AI 面板与 Agent 工具¶
面板 AI 标签用当前书的真实数据组提示词:关系图、人物、世界规则、术语、故事线、节拍、章节索引、校验问题等;续写、润色、大纲推演、一致性审稿等任务跑前可勾选要纳入的条目(分区列表由 lib/schema.js 推导,扩展新增分区会自动出现)。
插件向 DSH tools 服务注册 16 个工具(无 tools 服务时面板仍可用),例如:
| 工具 | 作用 |
|---|---|
novel_library |
建书、列书、改元信息、删书 |
novel_records |
读写各分区条目 |
novel_graph / novel_link |
读关系网、增删改关系 |
novel_validate |
跑一致性校验(只读) |
novel_search |
全书检索 |
novel_chapters / novel_drafts |
章节顺序与草稿箱 |
novel_progress |
进度查询与目标设定 |
novel_export / novel_publish |
渲染导出与写入 publish/ |
novel_import |
JSON / Markdown 等导入(含 dry-run) |
novel_ai |
在聊天中执行本书 AI 任务 |
novel_extract |
从正文识别新条目并只填空字段落库 |
novel_guide / novel_extension |
读手册、脚手架扩展 |
扩展放在 lib/extensions/ 下,除 lib/index.js 外 host 侧代码按 mtime 热重载,下一个 HTTP 请求即生效;浏览器侧改完刷新页面即可。详见仓库内 EXTENSIONS.md。
其他面板能力¶
网站接口把常用上架后台存成卡片,列表在 ~/.dsh/novel-studio.yaml,只接受 http:// / https:// 链接,点击在新标签打开。
设置写入 settings.yaml(如 theme、autosave、fontSize、wordGoal);阅读字号统一作用于正文、AI 结果与导出预览等。
安装与启用¶
README 给出的本地安装方式是将插件目录 link 到 desktop profile(需先把仓库放到本机某一目录;正文不展开 clone 步骤):
dsh plugin --profile desktop add link:<此目录的绝对路径>
安装后 profile 的 bundles 会加入 dsh-novel-studio-lyjs,node_modules/dsh-novel-studio-lyjs 指向该目录的 Junction,改插件代码一般不必重装。npm 包名与 GitHub 仓库名不同,是因为 npm 上 dsh-novel-studio 已被占用;命令里写的是目录路径,与包名差异无关。
依赖仅 yaml ^2.9.1;插件在 DSH 进程内以当前用户权限读写书库,安装前宜通读源码与 MIT 许可证。
典型用法¶
- 换书库或搬家:面板设置里「更改」书库根路径,可勾选「把现有的书一起搬过去」;也可用
POST /root传{ root, move? },或设环境变量DSH_NOVEL_ROOT钉死位置。 - Agent 写设定:先
novel_records的action: 'schema'看分区路径,再读写人物、世界观等 YAML 条目;改关系用novel_link,改完用novel_validate看问题清单。 - Agent 写正文:
novel_drafts在改章前save快照;novel_chapters处理断号、重排;novel_extract可从新正文recognize候选条目,再apply只补空字段。 - 面板里续写:打开 AI 标签,勾选要喂给模型的设定条目,选择任务后流式生成;生成前可用
GET /library/:book/ai/tasks查看任务菜单(HTTP 路由与面板共用同一套数据层)。 - 发布备份:面板导出或
novel_export拿文本;需落盘时用novel_publish写入publish/。
开发侧可在插件目录执行 npm test 跑冒烟测试;对运行中的 DSH 可用 node tests/http.e2e.mjs 打真实 HTTP(README「开发」一节)。
适用场景与注意¶
适合:在 DSH 里长期维护多部长篇,希望设定、大纲、正文、关系与校验在同一套 UI 和 Agent 工具里闭环;需要纯文件书库以便 git 或手改 YAML/Markdown 的作者。
注意:
- 插件与 DSH 同进程、同文件系统权限,书库路径勿指向不可信共享目录;链接类配置(网站接口)仅允许 http(s)。
- 无
tools服务时 Agent 工具不可用,但客户端面板仍可操作本地书库。 - 跨书复用设定走 README 所述跨书共享库(显式提升与引入),不会自动在多本书之间串数据。
- 社区目录仅作发现与说明,安装命令以 README 与官方 DSH CLI 文档为准。
结尾¶
Novel Studio 把长篇写作从通用任务流里拆成独立分区:结构化 YAML、Markdown 正文、关系图与只读校验、净产出进度,以及读取真实设定的 AI 与十六个 Agent 工具。若你在 DSH 生态里找客户端侧的小说工作台,可从目录页了解概况,在 GitHub 查看完整 README、EXTENSIONS.md 与测试说明,再按 link 方式装入 desktop profile 使用。
- 目录页:https://www.skillhub.cn/plugins/lyjsyyds/dsh-novel-studio
- GitHub:https://github.com/lyjsyyds/dsh-novel-studio