前言¶
在 DeepSeek Harness(DSH)里写小说,最大的痛点是「没有上下文延续」。用普通会话写,写到几章之后,Agent 很容易忘记前面的人物设定、世界观,或者把新写的内容和旧内容对不上。DSH 的设计是「一切皆插件」,一个插件负责提供新的视图或能力,把现有能力组合起来。小说工坊就是这样一个常驻插件:它把「时间线」和「世界快照」拉进 DSH 的会话体系,让一个作品绑定一个普通会话,用那个会话里的 Agent 按时间推进故事。
插件定位与解决的问题¶
- 定位:DSH 的小说写作插件,提供拖拽式时间线、世界快照、章节大纲与正文编辑。
- 维护者:XiaoOu2024。
- 解决的问题:
- 按天推进故事,每章跨多少天一目了然。
- 世界观、角色、势力、关系随时间演化,每一份快照都独立保存。
- 每章正文由作品绑定的 Agent,结合最近快照和之前章节生成,保证前后一致。
- 工作目录下有独立文件夹存储作品信息、章节正文、大纲与快照,方便手动查看与迁移。
核心功能¶
1. 作品与会话绑定¶
- 每个作品绑定一个普通会话,会话出现在左侧会话列表中。
- 创建作品时会调用
sessionController.create开启会话,会话归属到对应分组(同名目录下为「小说工坊 · 目录名」,否则新建分组)。 - 作品的模型与会话模型保持同步,可以通过作品行的「模型」按钮切换,走
sessionController.selectModel。
2. 拖拽式时间线与世界快照¶
- 时间线从第 0 天开始,向右延伸到最新世界快照的时间(故事写到快照之后则继续延伸)。
- 快照间隔(7 / 15 / 30 / 90 / 180 / 365 天,也可手输)决定快照网格:第 15、30、45… 天。
- 拖动时间线,下方会切换到该时间点之前最新的世界观、角色、势力、关系。
- 拖到下一个快照点时,顶部出现「生成世界快照 · 第 N 天」;拖到已有快照的那天,则显示「重新生成快照 · 第 N 天」。
- 手动生成与自动生成规则:
- 手动:拖到网格点,点击生成或重新生成。
- 自动:每次生成章节后检查两点:① 本章结束时间落在网格点上;② 上一格(当前点减一个间隔)已有快照(第 0 天视为已覆盖)。
- 快照内容:世界观、角色、势力、关系、物品(名称 + 下落/用途)与事件(故事天数 + 标题 + 一句话)。
- 改间隔不会重排旧快照,自动生成只沿着「上一格存在」的链条推进,断档处留待手动补。
3. 章节编辑与大纲¶
- 章节故事页:左上「← 时间长河」返回时间线,右上「章节大纲 →」展开大纲页。
- 左右切换章节,最后一章的「下一章 →」变成「+ 新建章节」。
- 正文可直接编辑,底部「保存」成功后右上角弹出提示条。
- 未保存修改时,任何离开动作(回时间线、翻章、进大纲、新建章节、返回作品列表、关闭工作室)都会先弹出确认,可选择「不保存离开」或「保存并离开」。
- 章节大纲页:可改标题、时间长度、字数上下限、梗概最低字数与梗概;梗概达到最低字数且其他项填完才能保存。
- 右上角「自动推演」会先提示「将覆盖现有内容」,确认后按当前字数与时间长度重新生成故事梗概 + 章节名称 + 整章正文并保存。
- 「生成章节故事」会先问「是否以当前故事梗概生成故事」,确认后才重写正文。
- 大纲不完整时「保存并离开」会被拒绝并提示。
4. 文件存储与迁移¶
- 索引文件:
<DSH_HOME>/novel-studio/projects/<项目id>/project.json(DSH_HOME默认为~/.dsh)。 - 正文、梗概、快照全部写到工作目录下、以作品名称命名的文件夹:
<工作目录>/<作品名称>/
├── 作品信息.md 作品参数总览 + 章节一览表
├── 第01章 章节名.md 章节正文(纯正文)
├── 章节大纲/
│ └── 第01章 章节名.md 该章梗概 + 时间跨度 + 字数上下限 + 实际字数
└── 世界快照/
└── 第030天.md 世界观 / 角色 / 势力 / 关系 / 阶段变化
- 每次保存正文、生成章节、保存大纲、结算快照都会同步刷新这些文件;改标题会删除旧文件名。
- 若直接编辑
.md文件且比插件记录更新时间更晚,下次打开作品会以文件内容为准(梗概与快照目前是单向导出)。 - 作品名称受文件名规则限制:不能为空、最多 60 字、不能以空格或点开头结尾、不能含
\ / : * ? " < > |与控制字符、不能用CON/NUL/COM1等系统保留名。
安装与启用¶
插件通过官方插件命令安装:
dsh plugin --profile web add dsh-novel-generator
或直接安装仓库:
dsh plugin --profile web add https://github.com/XiaoOu2024/dsh-novel-generator
也可在 DSH 的 设置 → 插件 中安装(本包声明了 dsh.bundle)。装好后刷新页面,界面左下角会出现「小说工坊」按钮。
使用流程概览¶
1. 创建作品¶
- 点击「小说工坊」进入项目管理界面。
- 点击「创建作品」,选择工作目录(通过「选择」调用目录选择器,不能手填)、模型与预设。
- 创建动作会自动调用
sessionController.create为作品开启会话,会话出现在左侧列表中。 - 每行显示当前模型,点击「模型」可切换作品绑定的会话模型。
2. 打开工作室¶
- 点击作品行的「打开」进入时间线界面。
- 右上角「快照间隔」选择或输入天数,决定快照网格。
- 拖动时间线查看不同时间点下的世界观、角色、势力与关系。
3. 生成章节¶
- 在时间线界面,点击「进入故事」进入离选中时间最近的章节。
- 在章节故事页或大纲页,填写章节最低/最多字数、故事时间长度(天)、章节名称(大纲页可留空)。
- 大纲页达到最低字数后可保存,再点击「生成章节故事」生成正文。
- 或在新建章节弹窗中直接点击「自动推演」,一次性拿到梗概、章节名称与完整正文(第一章禁用)。
4. 生成与刷新快照¶
- 手动:拖到网格点,点击「生成世界快照 · 第 N 天」或「重新生成快照 · 第 N 天」。
- 自动:满足「结束时间在网格点」且「上一格有快照」时,生成章节后自动触发快照生成。
- 时间线右上角「重置快照」会清空所有快照,再按当前间隔从第 1 格重建到故事末端。
迁移与导入¶
- 改目录:点击作品行的「改目录」,把整个作品文件夹移动到新目录,作品的
cwd随之更新。 - 导入已有作品:点击「导入已有作品…」,选中包含
作品信息.md的文件夹,插件从文件重建条目(章节、大纲、梗概、字数、时间长度、世界快照),并新建会话。
注意事项¶
- 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
- 需要使用 DeepSeek Harness 0.2.1-rc.2 或更新的 0.2.x,宿主侧需要提供
sessionController、workspaceRegistry与agentPresets接口。 - HTTP 接口前缀为
/dsh-novel-generator/api,仅接受本机页面同源请求。 - 界面语言跟随 DSH 设置 → 通用 → 语言,目前部分文案仍是中文。
总结¶
小说工坊把「时间线」和「世界快照」引入 DSH 的会话体系,让每个作品绑定一个普通会话,由该会话里的 Agent 按时间推进故事。拖拽式时间线、按天统计、快照与大纲、文件级存储,让写小说的过程从「无上下文的会话」变成「有延续性的时间线」。
- 目录页:https://www.skillhub.cn/plugins/XiaoOu2024/dsh-novel-generator
- GitHub:https://github.com/XiaoOu2024/dsh-novel-generator