小說工坊:在 DeepSeek Harness 時間線上寫小說

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

小夜