dsh-story-weaver:在 DSH 里跑通长篇小说写作与审校流程

前言

在 DSH 里做长篇小说,常见做法是零散地调模型写段落,设定、大纲和章节状态往往落在对话或自建脚本里,续写时很难保证「这一章审过了、和前文不打架」。社区插件 dsh-story-weaver(仓库 hldz-top/dsh-story)把设定调研、书纲与章纲、正文写作、审校修补和连续性检查收进一套 TypeScript 插件,通过 DSH 现有工具、原生 subagent 以及 JSON/SQLite 持久化运行,不依赖单独的 Story 后端或 Python 运行时。下面介绍它是什么、能做什么,以及如何在 profile 里安装和注意配置覆盖行为。

这是什么

dsh-story-weaver 由 hldz-top 维护,npm 包名与插件 id 均为 dsh-story-weaver(重命名前 id 为 dsh-story)。在 SkillHub 插件目录 中归类为客户端:除宿主侧工具外,还向 DSH Web 客户端注入 UI 相关模块(见 package.json 中 dsh.client 配置)。

一句话定位:面向 DSH 的独立小说写作插件,覆盖设定、大纲、章节正文、审校与故事连续性,项目和版本化产物在 provider 重开之后仍可保留。

核心功能

根据仓库 README 与包描述,已核实的能力包括:

  1. 项目与创意简报:用标题和创意简报创建小说;工具返回明确的小说与简报身份。创建不会自动「选中」某本小说,写作请求需显式指定小说 id。项目、简报版本与写作历史可跨会话保留。
  2. 写作主流程(story_write):规划设定依赖闭包,对维度做调研与审校,审校汇总设定,再推进全书大纲与请求章节。每章在正文审校与实际连续性审校通过后,正文与连续性引用一并生效。
  3. 阅读与预览:README 单独列出「Reading and previews」一节;与写作工具配合查看产物(具体工具名以宿主加载后的工具列表为准)。
  4. 持久化:小说与运行历史落在 $DSH_HOME/storages/story_writing.json 与 $DSH_HOME/storages/story_runs.json;卸载插件不会删除这两类文件,重装可继续读取。
  5. 客户端集成:作为 Web 平台客户端插件,依赖 @deepseek-ai/dsh-client-locale、dsh-client-ui-tool 等注入项,在 DSH Web UI 中与会话、工具渲染配合使用。

README 同时说明:自动写作与上游修订路径有原生运行时的确定性测试记录;最终打包、浏览器、真实模型与私有安装验收仍为独立工作项,真实模型验收尚未完成。查阅仓库内 docs/development/migration-validation.md 等文档可了解当前验证范围。

安装与启用

环境要求(来自 README 与 package.json):

  • Node ^22.19.0 || >=24
  • DSH >=0.2.0-rc.2 <0.3.0-0(README 表述为 DSH 0.2.x)
  • PATH 上可用的 pnpm;官方在 pnpm 11.7.0 下验证安装。Node 22.19 自带 corepack 默认拉取的 pnpm 12.x 可能导致 dsh plugin add 失败,可先固定版本,例如:
corepack prepare pnpm@11.7.0 --activate

若默认 COREPACK_HOME 不可写,需将其指向可写目录。

在 web profile 中安装(官方命令):

dsh plugin --profile web add dsh-story-weaver

预发布线可使用 dsh-story-weaver@next。也可在 DSH Web UI:Plugins → Add plugin,输入包名 dsh-story-weaver。

卸载(使用安装时的同一 --profile):

dsh plugin --profile web remove dsh-story-weaver

非 web profile:bundle 不自带 present 工具;headless 等 profile 默认未启用时,调用 story_write 会被拒绝,提示需要 native present tool。写作前需在对应 profile 启用 @deepseek-ai/dsh-tool-present;阅读与预览类工具可不依赖 present。

配置 patch 注意:

  • --patch 中的条目 id 须为 dsh-story-weaver。仍写 dsh-story 的 patch 不会匹配任何条目,覆盖静默失效;仅 dsh --dump-config 可能在 stderr 报告 patch: entry "dsh-story" not found。
  • 同一插件条目的 config: 在多层配置中是整段替换,不是按键合并。只改 maxResearchSources 的 patch 会把 maxRepairAttempts、stageTimeoutMs、allowIncompleteSettings 等重置为插件默认值。合并前用 dsh --profile <profile> --patch <file> --dump-config 检查合成结果;恢复运行要求研究与章节字数上限与开始时一致。

示例 patch 见仓库 docs/examples/research-budget.patch.yml。

典型用法

写作流程在 README 中的要点如下,可按顺序在 Agent 中通过插件暴露的工具操作(具体参数以工具 schema 为准):

  1. 创建小说:提供标题与创意简报,记下工具返回的小说 id 与简报 id。
  2. 发起写作:对指定小说调用 story_write,由插件完成设定闭包、调研审校、书纲与章节推进及章级审校。
  3. 跨会话续写:依赖 $DSH_HOME/storages/ 下持久化数据;若改过限制类配置,需与上次运行一致才能 resume,否则会提示恢复当时的 writing/research limits。

宿主通过 peer 提供 @deepseek-ai/dsh-llm、dsh-subagent、dsh-tool-web 等能力;插件在 DSH 进程内加载,不在 DSH 外单独 import 使用。

适用场景与注意

适合谁:已在用 DSH 0.2.x、希望在同一 Harness 里管理长篇设定、大纲、章节与审校/连续性、并愿意用 Web 客户端或自行为 headless profile 启用 present 工具的开发者或写作者。

权限与安全:插件以当前 DSH 进程权限运行,可调用宿主提供的 LLM、联网与存储等能力。安装前应阅读 MIT 许可 与源码,确认与自身数据与合规要求一致。SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系。

Cordis 与 pnpm:@deepseek-ai/cordis 声明为 ~4.0.4,与 DSH 0.2.0-rc.2 解析行为一致;安装时可能仍有上游 peer 相关警告,README 说明 dsh plugin add 会透传其中一条 summary warning。

结尾

dsh-story-weaver 把长篇小说写作从「单次 prompt」拉成可持久、可审校、可检查连续性的 DSH 插件工作流,并附带 Web 客户端集成。若要查看简介与分类,可打开 SkillHub 目录页;安装命令、peer 表、工作流细节与开发文档以 GitHub 仓库 README 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜