dsh-novel-studio:在 DSH 中打開小說工坊,由 Agent 代行審稿與編輯

前言

寫長篇時,常見做法是桌面寫作軟件加外掛 AI 助手:界面在一個進程,對話在另一個窗口,作品數據還可能各存一份。DeepSeek Harness(DSH)把能力拆成插件後,可以把寫作界面和 Agent 放在同一套宿主裏協作。下面介紹維護者 linque0 發佈的 dsh-novel-studio(目錄分類:工作流):小說工坊的 DSH 插件版,當前 README 標明爲實驗性質,GitHub 星標爲 1。

這是什麼

dsh-novel-studio 的目標是:在 DSH 裏打開小說工坊的完整界面,並讓 DSH 的 Agent 代替恍然夢對作品做建議、審稿與編輯;桌面軟件版與插件版讀寫同一份作品庫。插件包名 @linque0/dsh-novel-studio,package.json 中版本爲 0.2.8,要求宿主 dsh 版本 >=0.2.2-rc.1 <0.3.0。

README 中寫的當前進度是 M0 骨架(作品庫核心 + 靜態託管 + RPC + 3 個只讀工具 + iframe 客戶端),同時文檔也列出了 v0.2.0 能力清單與界面、數據層等後續進展說明,使用時以倉庫最新 README 爲準。

核心功能

作品庫與寫入語義

庫目錄由插件配置 libraryDir 指定;缺省通過共享指針讀取:

%LOCALAPPDATA%/novel-studio/library.json   ->   { "path": "D:/Novels" }

寫入只走 submit:必須帶 requestId(冪等)與各 op 的 baseRevision(CAS);衝突返回 conflict.currentRevision 與當前內容,由調用方重讀合併,不靜默覆蓋;ai.cred* 類密鑰在入庫前會被剔除。具體目錄結構見倉庫 src/core/library.js 頂部註釋。

Agent 工具與技能(README v0.2.0)

只讀:studio_works、studio_outline、studio_read、studio_search、studio_preset。

審稿:studio_review(意見需帶正文唯一 quote;引用設定/人物會反查 verified)、studio_recheck(須覆蓋全部原問題)。

寫入:studio_propose(候選不落庫)→ studio_apply { confirm: true }(作者確認後落庫,含 requestId 與 expectedRevision)→ studio_undo。

技能:6 個(project / write / plan / memory / revise / review),漸進披露。

界面與入口

面板形態爲:頂部診斷條、備份導入、整塊 iframe(/api/novelstudio/app/index.html)。模塊包括書架、正文、大綱、設定、人物、靈感、設置、圖譜、統計、回收站、導入導出等。插件版不渲染恍然夢入口,由 DSH 自身取代。

宿主側入口:右側欄「開始」頁卡片欄裏的「小說工坊」(guide.order = 15)。插件版界面在倉庫內 fork 獨立前端(app/),經 npm run build:app 產出到 assets/app/;外觀方案爲設計稿「書架 · 流動封面(隱現)」,桌面版四套皮膚已從插件項目中移除,body[data-skin] 恆爲 dsh。

與桌面版的數據關係

README 說明:桌面版與插件可共享作品庫;M3 同步層會把 Dexie 變更批量提交到作品庫並輪詢增量回灌。導入軟件版作品可走路徑之一——面板「導入軟件版備份」,或在本機倉庫根目錄執行:

cd dsh-novel-studio
node scripts/import-from-desktop.mjs
node scripts/import-from-desktop.mjs --keep

第二條命令在 --keep 下不關閉桌面版;腳本通過 --remote-debugging-port=9222 連接桌面版渲染進程 dump 數據。

安裝與啓用

社區目錄頁:https://www.skillhub.cn/plugins/linque0/dsh-novel-studio。源碼與說明:https://github.com/linque0/dsh-novel-studio。

README 給出的本地掛接方式(面向 DSH 桌面 profile,非 git clone 後的開發目錄內執行)如下:

node scripts/install-local.mjs

腳本會做三件事:在 C:\Users\<你>\dsh-plugins\dsh-novel-studio 建立指向本倉庫的目錄聯接(路徑無空格)、在 profile 的 dependencies 里加入 link: 依賴、在 dsh.profile.bundles 中追加 dsh-novel-studio。修改後必須完全退出並重啓 DSH 才生效。 回退可恢復 profile 目錄下的 package.json.bak-*。

若需自行構建插件內嵌前端,README 典型順序爲:

npm run link:app-deps
npm run build:app

構建前若聯接丟失,先跑 link:app-deps;改完界面需重跑 build:app 後再重啓 DSH。

開發者還可使用:

npm run contract
npm run smoke

分別做宿主契約預檢與 75 項冒煙(README 描述)。

典型用法

  1. 按 README 完成 install-local.mjs 並重啓 DSH,在右側「開始」打開「小說工坊」卡片。
  2. 配置或確認 libraryDir / 共享 library.json 指向你的作品目錄,與桌面版對齊時兩邊讀寫同一庫。
  3. 在 DSH 對話中讓 Agent 調用只讀工具查看書目、大綱、正文,再按需走 studio_review / studio_propose / studio_apply 流程;寫入需作者確認與 revision 校驗。
  4. 從桌面版遷移:導出備份 JSON 在面板導入,或在本機執行 import-from-desktop.mjs。
  5. iframe 空白或 SPA 報錯時,可在倉庫根目錄用預覽臺排查(不依賴重啓 DSH):
node scripts/preview.mjs
node scripts/preview.mjs --serve

默認端口 NS_PORT 爲 18688,會寫 .tmp/preview.png 與 .tmp/preview.log。

適用場景與注意

適合:已在用或打算用小說工坊、希望寫作界面與 DSH Agent 同屏協作、並願意接受實驗階段 API 與界面迭代的作者或工作流開發者。

注意:

  • 插件在 當前 DSH 進程權限下運行,安裝前應閱讀源碼與倉庫 LICENSE,並理解其對 libraryDir 與作品文件的讀寫範圍。
  • README 多次強調 完全退出並重啓 DSH 後配置與前端產物才生效。
  • 社區目錄(skillhub.cn)與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本文事實均來自上述 GitHub README 與 package.json 摘錄,未覈實的數據(如未在資料中出現的全局安裝命令)不寫入正文。

結尾

dsh-novel-studio 把小說工坊以 iframe 形式接進 DSH,用統一作品庫和一組 studio_* 工具/skills,把「恍然夢」側的建議、審稿、可確認寫入遷到 DSH Agent。進一步細節與版本能力以倉庫 README 爲準。

羽毛球分组比赛记分
小程序二维码

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

小夜