前言¶
在 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 与包描述,已核实的能力包括:
- 项目与创意简报:用标题和创意简报创建小说;工具返回明确的小说与简报身份。创建不会自动「选中」某本小说,写作请求需显式指定小说 id。项目、简报版本与写作历史可跨会话保留。
- 写作主流程(
story_write):规划设定依赖闭包,对维度做调研与审校,审校汇总设定,再推进全书大纲与请求章节。每章在正文审校与实际连续性审校通过后,正文与连续性引用一并生效。 - 阅读与预览:README 单独列出「Reading and previews」一节;与写作工具配合查看产物(具体工具名以宿主加载后的工具列表为准)。
- 持久化:小说与运行历史落在
$DSH_HOME/storages/story_writing.json与$DSH_HOME/storages/story_runs.json;卸载插件不会删除这两类文件,重装可继续读取。 - 客户端集成:作为 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 为准):
- 创建小说:提供标题与创意简报,记下工具返回的小说 id 与简报 id。
- 发起写作:对指定小说调用
story_write,由插件完成设定闭包、调研审校、书纲与章节推进及章级审校。 - 跨会话续写:依赖
$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 为准。