dsh-novel-studio:在 DeepSeek Harness 裏單獨開一塊小說寫作分區

前言

在 DSH 裏寫長篇,常見做法是任務、聊天和設定文件混在一起:人物卡散在筆記裏,正文在另一個目錄,關係靠腦子記,改一章還要自己搜「這個名字在哪出現過」。Novel Studio(lyjsyyds/dsh-novel-studio)把長篇當成獨立分區裝進 DSH:側欄一本書的圖標,點開是書架和當前作品的十一個內容分區,外加檢索、進度、關係圖、校驗、AI、導出等工具標籤。數據仍是本機 YAML 與 Markdown,插件只是讀寫與展示層;聊天裏的 Agent 還能通過十六個註冊工具直接操作書庫。

這是什麼

Novel Studio 是維護者 lyjsyyds 發佈的 DSH 客戶端插件(npm 包名 dsh-novel-studio-lyjs,GitHub 倉庫 dsh-novel-studio,當前版本 0.2.1,MIT 許可證)。它要求 DSH 引擎 >=0.2.0-rc.1,在瀏覽器側注入側欄與主面板,在宿主側提供 HTTP 路由與 Agent 工具。

社區目錄頁:skillhub.cn/plugins/lyjsyyds/dsh-novel-studio(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。源碼:github.com/lyjsyyds/dsh-novel-studio。

界面與數據怎麼組織

側欄圖標打開後,左側是書架(每部小說一條;標題旁箭頭可折成豎邊,寬度偏好記在瀏覽器裏,無記錄時默認收起),右側是當前書的總覽 · 人物 · 世界觀 · 大綱 · 面板 · 正文 · 素材 · 草稿,以及 檢索 · 進度 · 導入 · 設置 與 關係圖 · 校驗 · AI · 導出 等工具。

每部作品在書庫根目錄下佔一個獨立文件夾,默認根路徑爲 ~/.dsh/novels。實際根目錄按優先級決定:顯式參數 → 環境變量 DSH_NOVEL_ROOT → 面板保存的位置(寫入 ~/.dsh/novel-studio.yaml 的 root)→ 默認路徑。環境變量會鎖定書庫(GET /root 返回 locked: true 時面板改不動),避免測試數據寫進正式書庫。

典型目錄結構如下(摘自 README):

~/.dsh/novels/<書名>/
  book.yaml                作品元信息
  settings.yaml
  characters/<id>.yaml     人物
  relationships.yaml       關係
  world/                   世界觀
  outline/                 大綱
  panels/                  面板
  chapters/<id>.md         正文
  meta/                    章節元信息
  drafts/                  草稿
  materials/               素材
  publish/                 發佈產物

核心功能

下面按「寫設定 → 寫正文 → 查問題 → 交給 AI / Agent」的順序介紹已文檔化的能力。

全庫檢索與寫作進度

檢索在一個入口搜索整本書:正文(帶行號)、各分區記錄與字段、素材文件名、原始 YAML;命中後跳轉到對應分區並高亮。

進度基於 progress.yaml 記錄每日淨產出(刪正文會記爲負值,而不是「今天 0 字」),展示總字數、今日與本週、連續寫作天數、30 天曲線,以及設定目標後的差額、日均需寫字數與按當前節奏的預估完稿日。

關係圖與一致性校驗

關係圖把人物、勢力、地點、物品連成網:記錄字段(如勢力的 leader、地點的 region、物品的 owner)自動成邊,手寫邊在 relationships.yaml。僅看人物時,所屬勢力仍作爲灰色上下文節點出現。圖可縮放(0.5×–4×)與拖拽平移。

校驗只讀掃描全書:懸空邊、無效 [[鏈接]]、章節重號或斷號、伏筆未回收或超期、長期未出場配角、退場後再出現、可能泄密、曆法與年齡不一致、空分區等,分錯誤 / 提醒 / 提示三檔。同一面板含「讀者報告」:模擬讀者按章打分與情緒曲線(結果存 reader/reports.yaml)。

曆法子功能純本地算術:結合 world/calendar.yaml、world/festivals.yaml、年表與人物出生年,算節日倒計時與「現在」日期下年齡,不調用模型。

正文、草稿、導入導出

草稿箱在改章節前存快照;從草稿恢復前會自動再存一份「恢復前」狀態,便於逐步退回。

導出可渲染 Markdown 手稿、純文本、單頁 HTML 或完整 JSON 備份(含分區與素材正文、不含本地路徑),支持預覽、複製、下載或寫入該書 publish/ 並記錄 manifest.yaml。

導入默認僅預覽:JSON 可整庫恢復或恢復成新書;粘貼的 Markdown 可按 # 第一章 等形式切章;materials/、publish/、import/ 下已有文件也可讀入。整本替換需二次確認。

書架刪除的書移入書庫根目錄 .trash/(改名不刪字節),可在「回收站」恢復或永久刪除。

AI 面板與 Agent 工具

面板 AI 標籤用當前書的真實數據組提示詞:關係圖、人物、世界規則、術語、故事線、節拍、章節索引、校驗問題等;續寫、潤色、大綱推演、一致性審稿等任務跑前可勾選要納入的條目(分區列表由 lib/schema.js 推導,擴展新增分區會自動出現)。

插件向 DSH tools 服務註冊 16 個工具(無 tools 服務時面板仍可用),例如:

工具 作用
novel_library 建書、列書、改元信息、刪書
novel_records 讀寫各分區條目
novel_graph / novel_link 讀關係網、增刪改關係
novel_validate 跑一致性校驗(只讀)
novel_search 全書檢索
novel_chapters / novel_drafts 章節順序與草稿箱
novel_progress 進度查詢與目標設定
novel_export / novel_publish 渲染導出與寫入 publish/
novel_import JSON / Markdown 等導入(含 dry-run)
novel_ai 在聊天中執行本書 AI 任務
novel_extract 從正文識別新條目並只填空字段落庫
novel_guide / novel_extension 讀手冊、腳手架擴展

擴展放在 lib/extensions/ 下,除 lib/index.js 外 host 側代碼按 mtime 熱重載,下一個 HTTP 請求即生效;瀏覽器側改完刷新頁面即可。詳見倉庫內 EXTENSIONS.md。

其他面板能力

網站接口把常用上架後臺存成卡片,列表在 ~/.dsh/novel-studio.yaml,只接受 http:// / https:// 鏈接,點擊在新標籤打開。

設置寫入 settings.yaml(如 theme、autosave、fontSize、wordGoal);閱讀字號統一作用於正文、AI 結果與導出預覽等。

安裝與啓用

README 給出的本地安裝方式是將插件目錄 link 到 desktop profile(需先把倉庫放到本機某一目錄;正文不展開 clone 步驟):

dsh plugin --profile desktop add link:<此目錄的絕對路徑>

安裝後 profile 的 bundles 會加入 dsh-novel-studio-lyjs,node_modules/dsh-novel-studio-lyjs 指向該目錄的 Junction,改插件代碼一般不必重裝。npm 包名與 GitHub 倉庫名不同,是因爲 npm 上 dsh-novel-studio 已被佔用;命令裏寫的是目錄路徑,與包名差異無關。

依賴僅 yaml ^2.9.1;插件在 DSH 進程內以當前用戶權限讀寫書庫,安裝前宜通讀源碼與 MIT 許可證。

典型用法

  1. 換書庫或搬家:面板設置裏「更改」書庫根路徑,可勾選「把現有的書一起搬過去」;也可用 POST /root 傳 { root, move? },或設環境變量 DSH_NOVEL_ROOT 釘死位置。
  2. Agent 寫設定:先 novel_records 的 action: 'schema' 看分區路徑,再讀寫人物、世界觀等 YAML 條目;改關係用 novel_link,改完用 novel_validate 看問題清單。
  3. Agent 寫正文:novel_drafts 在改章前 save 快照;novel_chapters 處理斷號、重排;novel_extract 可從新正文 recognize 候選條目,再 apply 只補空字段。
  4. 面板裏續寫:打開 AI 標籤,勾選要餵給模型的設定條目,選擇任務後流式生成;生成前可用 GET /library/:book/ai/tasks 查看任務菜單(HTTP 路由與面板共用同一套數據層)。
  5. 發佈備份:面板導出或 novel_export 拿文本;需落盤時用 novel_publish 寫入 publish/。

開發側可在插件目錄執行 npm test 跑冒煙測試;對運行中的 DSH 可用 node tests/http.e2e.mjs 打真實 HTTP(README「開發」一節)。

適用場景與注意

適合:在 DSH 里長期維護多部長篇,希望設定、大綱、正文、關係與校驗在同一套 UI 和 Agent 工具裏閉環;需要純文件書庫以便 git 或手改 YAML/Markdown 的作者。

注意:

  • 插件與 DSH 同進程、同文件系統權限,書庫路徑勿指向不可信共享目錄;鏈接類配置(網站接口)僅允許 http(s)。
  • 無 tools 服務時 Agent 工具不可用,但客戶端面板仍可操作本地書庫。
  • 跨書複用設定走 README 所述跨書共享庫(顯式提升與引入),不會自動在多本書之間串數據。
  • 社區目錄僅作發現與說明,安裝命令以 README 與官方 DSH CLI 文檔爲準。

結尾

Novel Studio 把長篇寫作從通用任務流裏拆成獨立分區:結構化 YAML、Markdown 正文、關係圖與只讀校驗、淨產出進度,以及讀取真實設定的 AI 與十六個 Agent 工具。若你在 DSH 生態裏找客戶端側的小說工作臺,可從目錄頁瞭解概況,在 GitHub 查看完整 README、EXTENSIONS.md 與測試說明,再按 link 方式裝入 desktop profile 使用。

  • 目錄頁:https://www.skillhub.cn/plugins/lyjsyyds/dsh-novel-studio
  • GitHub:https://github.com/lyjsyyds/dsh-novel-studio
羽毛球分组比赛记分
小程序二维码

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

小夜