前言¶
在 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