前言¶
DeepSeek Harness(dsh)是 DeepSeek 開源的智能體運行時,核心理念是「一切皆插件」:模型、工具、會話、沙箱、存儲、循環和界面都可以用插件替換或組合。官方倉庫目前仍處於 developer preview,文檔也寫明接口還會有破壞性變更。
社區裏已經出現不少面向編碼、側邊欄、主題的界面增強插件。長篇小說創作的需求不太一樣:角色、世界觀、章節藍圖、草稿和審稿記錄需要按階段留下來,而不是把整本書塞進一次聊天。AI-Novel-Writer 就是衝着這條流程做的:桌面端是本地優先的創作工作臺,倉庫裏同時還維護着一份 DeepSeek Harness 插件的開發預覽,把同一套「小說項目」接到 Web 界面的側欄工作臺。
下面介紹的安裝命令、項目格式和審批流程,均以目錄頁、倉庫 README 和插件子目錄說明交叉覈對。社區插件目錄 deepseek-harness-plugin.com 是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。
這是什麼¶
AI-Novel-Writer 由 EthanYoQ 維護,目錄頁分類爲「界面增強」。倉庫主頁當前約 377 星(目錄頁收錄時顯示爲 376)。它提供兩套可獨立理解的產物:
- Windows / macOS 桌面應用:面向長篇小說的本地優先工作臺,把「前提 → 角色 → 世界觀 → 章節藍圖 → 草稿 → 審稿 → 修稿 → 定稿」組織成可追溯流程;模型由使用者自己配置,項目資料留在本機。倉庫根目錄許可證爲 GPL-3.0。寫作時倉庫 README 標明的桌面正式版是 v0.8.4。
- DeepSeek Harness 插件開發預覽:包名
@ethanyoq/dsh-ai-novel-writer,版本 0.1.0,位於plugins/dsh-ai-novel-writer/。它把項目設置、人物設定、故事藍圖、章節藍圖和章節正文帶進 DeepSeek Harness Web,並通過對話裏的單文件審批卡片逐項保存。插件使用獨立的 Harness 小說項目格式,不讀取桌面版.vela項目。該子包是獨立 pnpm workspace,許可證爲 MIT;尚未進入桌面正式 Release,也未發佈到 npm。
產品定位需要先說清楚:桌面應用不是內置模型服務,也不是在線小說平臺。它提供的是創作編排層——保存項目狀態、組織提示詞與上下文、管理章節藍圖和草稿版本,再把生成、審稿和修稿串起來。插件預覽把這條鏈路接到 dsh 的 Web 界面,而不是把桌面應用整包掛進 Harness。
核心功能¶
桌面工作臺(倉庫主體)¶
桌面端已經實現的能力,倉庫 README 用一張表概括過,這裏按已覈實內容列出:
- 結構化創作流程:從前提、角色、世界觀到章節藍圖、草稿、審稿、修稿和定稿,按階段組織創作資產。
- 章節級生成:生成時圍繞當前章節藍圖和相關資料組織上下文,而不是把整本小說塞進一次請求。
- 審稿與修稿:爲草稿生成結構化審稿信息,並以報告作爲修稿輸入。
- 角色卡與項目資料:在項目內維護角色、世界觀、藍圖、草稿和定稿。
- 參考文本與知識庫:可導入常見文本格式;未配置 embedding 時仍可用 SQLite FTS 全文檢索。
- 批量創作任務:單獨的批量章節任務可設爲 1–10 章,支持暫停、取消;後處理失敗會停止後續章節。這一項屬於桌面端,插件預覽明確不提供批量多章任務。
- 模型協議:支持 OpenAI-compatible(OpenAI、DeepSeek、Ollama、NovelAI 預設等 Chat Completions 兼容服務)以及 Gemini 原生協議。自定義 API 只是在上述協議範圍內改地址、模型標識和憑據,不是任意 HTTP 協議。
本地模型可以走 Ollama 的 OpenAI-compatible 接口,README 給出的配置如下:
Provider: Ollama(本地)或自定義
Protocol: OpenAI-compatible
Base URL: http://127.0.0.1:11434/v1
API Key: 可留空;若界面要求,可填任意本地佔位值
Model: 你的 Ollama 模型名,例如 qwen3:14b
不要把 Base URL 寫成 http://127.0.0.1:11434/api:/api 是 Ollama 原生接口,不是當前應用使用的 OpenAI-compatible 路徑。
項目、角色、藍圖、草稿和定稿默認落在本機項目目錄與本地 SQLite;模型配置與 API Key 當前保存在 ~/.vela/models.json。選擇雲端端點時,提示詞和上下文會發送給對應服務商。軟件本身不提供模型賬號或雲端生成額度。
DSH 插件預覽(本文重點)¶
插件把小說項目做成一套帶版本的本地格式。V1 項目與桌面 .vela 格式獨立:清單和結構化規劃資產放在 .ai-novel/,章節草稿放在 chapters/。模型讀寫使用資產引用,而不是隨便傳本地路徑;寫入會比對上次讀到的 SHA-256 修訂號,提交用原子替換。
包裏有三個插件入口:
- 根上的 Host 入口,由
cordis.patch.yml加載; ./agent,只由捆綁的ai-novel-writerPreset 掛載;./client,在插件配置裏註冊「AI 小說作家」證據卡片,並通過 shell overlay 加入緊湊的「小說工作臺」側欄抽屜。
專用智能體只看到兩個工具:novel_read 和 novel_apply_change。每一次變更都以單文件 diff 呈現,必須經過 Harness 原生的一次性審批纔會執行。Preset 不會掛載 shell、通用文件系統寫入、文本替換或 Code Mode。
工作臺能編輯的五類資產是:項目設置、完整人物設定、故事藍圖、當前章節藍圖、當前章節 Markdown。瀏覽器本身不暴露變更 RPC,也不能直接創建清單;真正落盤必須由專用智能體調用 novel_apply_change,再由用戶在對話裏點「允許一次」。
插件 README 也寫了當前邊界:不導入 .vela 項目、不提供多資產事務、不跑批量多章任務、自身也不發佈到 npm。Client 聲明的平臺是 web,package.json 要求 Node.js 爲 ^22.19 || >=24。
安裝與啓用¶
目錄頁上的命令¶
社區目錄頁給出的安裝命令原文是:
dsh plugin add github:EthanYoQ/AI-Novel-Writer
如需按目錄頁說明做可復現安裝,頁面還給出了固定 commit 的寫法:
dsh plugin add github:EthanYoQ/AI-Novel-Writer#commit
把 commit 換成實際哈希即可。插件會以當前 dsh 進程的權限運行,安裝時可能執行代碼;安裝前應檢查源代碼倉庫和許可證。
倉庫一手說明:不要對倉庫根目錄執行這條命令¶
這裏有一處需要單獨強調的來源衝突。目錄頁把上述 GitHub spec 當作安裝入口;倉庫 README 則明確寫了:
不要使用
dsh plugin add github:EthanYoQ/AI-Novel-Writer:倉庫根包是桌面應用,不是可激活的 DSH bundle。
更接近一手的說明是倉庫 README 和插件子目錄。DSH 的可安裝單位是聲明瞭 dsh.bundle.patch 的 npm 組合包;這個聲明在 plugins/dsh-ai-novel-writer/package.json 裏,不在倉庫根目錄。因此,按當前倉庫結構,應進入插件目錄構建後再裝到 web profile,而不是對整個桌面應用倉庫執行 dsh plugin add。
從源碼安裝(倉庫 README 原文):
git clone https://github.com/EthanYoQ/AI-Novel-Writer.git
cd AI-Novel-Writer/plugins/dsh-ai-novel-writer
pnpm install
pnpm run build
dsh plugin --profile web add .
dsh --profile web
如果希望安裝一份不隨源碼目錄繼續變化的構建產物,可先打包再安裝:
pnpm pack --pack-destination ../../.runtime/.cache
cd ../..
dsh plugin --profile web add ./.runtime/.cache/ethanyoq-dsh-ai-novel-writer-0.1.0.tgz
dsh --profile web
插件文檔還指出:dsh plugin add . 裝的是 profile 級依賴,不是「只對某個小說項目生效」;本地 checkout 只是 npm spec 的來源。開發期用本地目錄時,profile 裏形成的是指向該目錄的鏈接,移動、刪除或未構建該目錄會破壞加載。
Windows 上如果 checkout 路徑含空格,插件文檔記錄過當前 DeepSeek Harness CLI 實現會把絕對路徑拆成多個參數,導致 dsh plugin --profile web add . 失敗。規避方式是使用不含空格的路徑,或先 pnpm pack 再對 tarball 執行 add。這是插件作者在固定 Harness commit 47f943859bef60e4160492346772ded9b24f765a 上的復現結論,不是官方文檔承諾。
啓用 Preset¶
Web 啓動後:
- 打開側欄「小說工作臺」;
- 選擇「安裝 AI 小說作家 Preset」;
- 新建會話,並選擇該 Preset。
同一安裝狀態也會出現在「設置 → 插件 → 插件配置」裏的「AI 小說作家」卡片上。瀏覽器只能調用本機迴環的安裝通道,不能提交本地路徑;Host 會把捆綁的兩份 Preset 文件複製到用戶 Preset 根目錄(默認 $DSH_HOME/.agent-presets,通常是 ~/.dsh/.agent-presets)。字節完全一致時重複安裝是空操作;同名目錄內容不同則報衝突,不會覆蓋用戶文件。已有會話會保留原來的 Preset,需要新開會話才能用上「AI 小說作家」。
典型用法¶
下面的操作來自插件 README,可以按順序復現。
- 確認當前會話已經選中「AI 小說作家」Preset,並且原生審批沒有被關掉。
- 打開「小說工作臺」。未初始化的項目會給出一列表單:標題、語言、類型、計劃章數、目標字數、創作策略。
- 先點「預覽初始化提案」,界面會展示完整的淺層 JSON(含生成的 project id 和時間戳),此時還不會寫入磁盤。
- 再點「提交到當前會話」。瀏覽器把這些值作爲普通 Session 提示發出去;改任何一個字段都會讓預覽失效,需要重新預覽。
- 智能體調用
novel_apply_change後,對話裏會出現 Harness 原生的單文件審批卡片。點擊「允許一次」纔會寫入磁盤;沒有第二次隱藏審批。 - 收到
CommitReceipt後,工作臺會讀回權威清單,並打開項目設置編輯器。
已初始化的項目不會變成一塊儀表盤,而是五類資產的縱向列表。每一類編輯器都帶有可見的基準修訂號、髒狀態、丟棄、精確替換預覽,以及提交到當前會話的動作。人物編輯器支持本地搜索、選擇、創建、編輯和刪除,然後提出完整人物文件的替換;穩定人物 id 自動生成,不會作爲普通表單字段出現。
每個資產編輯器裏還有一塊緊湊的「AI 生成」。簡述可留空:留空表示讓模型根據項目上下文改進當前資產;若表單有未保存修改,這些內容會作爲未保存的用戶指引一併送出。瀏覽器自己不會生成替換字節,也不會直接調變更 RPC。指令要求先對目標資產做一次 novel_read,再對該資產做一次淺層 novel_apply_change,然後等待原生審批。
創作策略(auto / fluent-drafting / consistency-first / deep-planning)只改變小說工作流的規劃順序和寫作側重,不會選擇模型供應商,也不會改推理參數。
適用場景與注意事項¶
適合以下情況:
- 已經在用 DeepSeek Harness Web,希望在側欄裏維護角色、藍圖和章節,而不是隻靠聊天記錄堆設定;
- 需要每次落盤都能在對話裏看到單文件 diff,並用「允許一次」確認;
- 同時需要桌面端做完整長篇編排(含審稿、修稿、批量章節),再用插件預覽把同一作者的工作接到 dsh。
使用前建議先看清這些邊界:
- 插件以當前 dsh 進程權限運行。安裝前應檢查 源代碼倉庫 和許可證。倉庫根目錄是 GPL-3.0 桌面應用,插件子目錄是 MIT。
- 插件項目格式與桌面
.vela不互通,不要指望把桌面作品直接打開。 - 插件預覽不做批量多章、不多資產事務、也不發佈 npm。目錄頁上的一鍵
github:EthanYoQ/AI-Novel-Writer與倉庫一手說明衝突時,以倉庫 README 爲準。 - 保存依賴原生審批。會話權限策略爲 never、或明確關閉了原生審批時,插件說明要求不要調用
novel_apply_change。 - 桌面安裝包目前未代碼簽名;macOS ARM64 包未公證。Windows 可能出現未知發佈者提示,macOS Gatekeeper 可能攔截。只從該倉庫的 GitHub Releases 下載。macOS 安裝包僅支持 Apple Silicon,不提供 Intel 包。
- 軟件不替代作者的創意、事實覈查或版權判斷;AI 輸出需要作者審閱。它也不提供在線發佈、閱讀社區或雲端模型賬號。
小結¶
AI-Novel-Writer 把長篇小說需要的結構化資產從一次性聊天裏拆出來:桌面端負責完整的本地創作編排,DSH 插件預覽則把五類資產和原生審批接到 DeepSeek Harness Web。對 dsh 用戶來說,真正可激活的是 plugins/dsh-ai-novel-writer 這份 bundle,而不是倉庫根目錄的 Electron 應用。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/ai-novel-writer/
GitHub:https://github.com/EthanYoQ/AI-Novel-Writer
插件說明:https://github.com/EthanYoQ/AI-Novel-Writer/tree/master/plugins/dsh-ai-novel-writer