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