前言¶
在 DSH Tavern 裏跑遊玩會話時,常見兩類需求:生成結果不滿意,想改上一條用戶話再讓模型重跑;以及把對話從短聊拉長成有目錄、有設定、有審查流程的長篇寫作。前者若只靠複製粘貼,很難和「回退本輪」裏的變量、狀態對齊;後者若仍用默認遊玩側欄,又缺少項目級目錄與專用 agent preset。
dsh-tavern-extras 由 Lindemellis 維護,分類爲客戶端插件。它不修改 dsh-tavern 源碼,通過 Cordis patch 與前端擴展,在遊玩會話提供「編輯上一條發言」,並增加獨立的「寫作」模式與項目結構。下面介紹定位、能力與在 Windows 桌面版 DSH Tavern 上的安裝方式。
這是什麼¶
一句話:dsh-tavern-extras 是 DSH Tavern 的附加 bundle,提供「編輯上一條發言並重新生成」,以及基於項目目錄的長篇寫作模式(預設、Skill、子 agent 審查、可編輯提示詞)。
- 倉庫:https://github.com/Lindemellis/dsh-tavern-extras
- 社區目錄:https://www.skillhub.cn/plugins/Lindemellis/dsh-tavern-extras
- 當前 package 版本:
0.1.0(MIT)
插件在 DSH 進程權限下運行;安裝前請自行查看源碼與許可證,確認符合你的環境與安全要求。
編輯上一條發言¶
遊玩會話輸入框上方會出現「編輯上一條發言」。點擊後的行爲可以概括爲:先走作者原有的「回退本輪」(正文、變量、狀態一併回退,必要時可用「撤銷回退」恢復),再把上一條用戶發言原文填回輸入框;改完發送即觸發重新生成。
使用上需注意:
- 該入口只在遊玩會話出現,卡片對話和 silly 對話不會出現。
- 若最後一輪生成失敗,第一次點擊只會清掉失敗回覆並把那條輸入交還;再點一次纔會進入「編輯上一輪」。
- 原發言中的圖片或附件不會帶回輸入框。
寫作模式¶
左側欄在「遊玩 / 卡片」旁增加「寫作」。寫作模式下,列表區變爲「項目 → 對話」結構。
項目目錄¶
項目落在酒館資源目錄下,路徑形如:
DSH-Tavern/data/harness/profile-data/tavern/data/resources/novel/<書名>/
每個項目有一套約定子目錄(大綱、設定、伏筆賬本、點子、正文、摘要等),項目級配置在 .novel/project.json。項目旁的「+」用於新建對話,「⚙」打開右側欄「項目設置」。打開寫作項目內的對話時會自動切換到寫作模式。
對話使用「長篇寫作」agent preset(presets/novel/):包含九個寫作 Skill、子 agent 分工檢索與審查、計劃模式、上下文壓縮。此外還可使用酒館「Skill 庫」裏你自己的 Skill,以及項目內 .dsh/skills/ 下的 Skill。項目根目錄的 AGENTS.md 會自動進入上下文。
項目設置(右側欄)¶
- 額外素材路徑:指定已有小說、設定集或資料所在的文件夾或文件;AI 在本項目中默認只讀訪問。桌面端「+ 選擇文件夾」會彈出系統文件夾對話框;手機遠程訪問時退回頁面內瀏覽。
- 寫作預設:從酒館「預設庫」選一個預設,按與「應用到本局」相同的方式讀取啓用條目,寫入項目作爲文風要求。預設庫中開關變更後,可點「重新讀取」。
這兩項在每次請求時附在系統提示末尾,修改後下一條消息即生效。
寫作 Agent(右側欄「其他」)¶
配置對所有寫作項目生效:
- 主提示詞(默認
presets/novel/persona.md)與 九個 Skill(默認presets/novel/skills/):可編輯、查看默認、恢復默認。自定義版本保存在resources/novel/.agent/(persona.md、skills/<名>/SKILL.md),同名時優先於默認;插件更新只替換默認文件。 - 流程設置(
resources/novel/.agent/settings.json):例如寫完一章是否自動審查、審查方向、每章目標字數、子 agent 模型等;組裝時會轉成「寫作流程設置」一節放在主提示詞之後。子 agent 模型只能從 DSH 設置「子 agent 模型選擇」裏允許的路由中選擇。
主提示詞與流程設置在每次組裝時放在系統提示最前面;Skill 由 DSH 每次加載時重讀,故改完下一條消息即生效。計劃模式規則仍在 agent.cordis.yml 中,修改後需要重啓。
與 dsh-tavern 的共存方式¶
側欄:dsh-tavern 把側欄註冊在 sidebar.workspaces(priority -1)。本插件以 priority -2 註冊外殼,原樣渲染酒館側欄,再把「寫作」按鈕與寫作面板掛進對應 DOM(依賴 .dsh-tavern-sidebar、.dsh-tavern-mode-switch 等類名)。
system 組裝:dsh-tavern 的鉤子會替換非酒館會話的提示詞段落,並去掉文件 / Skill / 子 agent 等工具。本插件對寫作項目會話(工作目錄存在 .novel/project.json)把這些能力補回,其他插件新增內容保留。最裏層鉤子在啓動約 3 秒後登記;啓動後立刻在寫作會話裏發出的第一條請求,有可能尚未補回。
系統文件夾對話框複用 DSH 自帶的 @deepseek-ai/dsh-host-directory-picker-native;桌面端宿主在 Electron utility 進程中運行,調用期間會臨時設置 ELECTRON_RUN_AS_NODE=1,否則對話框子進程可能被啓動成第二個桌面程序。
安裝與啓用¶
README 記載已在 DSH Tavern 2.5.0(DSH 0.1.5-rc.2,Windows 桌面版)上驗證。下文 <DSH Tavern> 指安裝目錄(含 DSH Tavern.exe 與 data 文件夾)。社區目錄未提供 dsh plugin add 一類命令,安裝以倉庫 README 爲準。
- 將本倉庫放在 DSH Tavern 安裝目錄之外的任意位置,例如
D:\dsh-plugins\dsh-tavern-extras(避免升級時被清掉)。 - 關閉 DSH Tavern,編輯
<DSH Tavern>\data\harness\profiles\tavern\package.json:
- 在dependencies增加:"dsh-tavern-extras": "link:D:/dsh-plugins/dsh-tavern-extras"(路徑改爲你本機位置,使用正斜槓);
- 在dsh.profile.bundles數組末尾加上"dsh-tavern-extras"。 - 建立目錄聯結(PowerShell):
New-Item -ItemType Junction -Path "<DSH Tavern>\data\harness\profiles\tavern\node_modules\dsh-tavern-extras" -Target "D:\dsh-plugins\dsh-tavern-extras"
- 啓動 DSH Tavern。
DSH Tavern 升級時會保留你自行添加的 bundle 與依賴。卸載時刪除 package.json 中上述兩處及聯結目錄,再重啓即可。
改了插件代碼或 cordis.patch.yml 後需重啓 DSH Tavern;僅改前端 lib/client.js 時可用 Ctrl+R 刷新。
典型用法¶
改話重跑(遊玩):在遊玩會話中生成不滿意 → 點「編輯上一條發言」→ 在輸入框改文案 → 發送,完成回退後的重新生成。
開長篇項目(寫作):切到「寫作」→ 在項目列表建 <書名> 項目 → 「⚙」配置額外素材路徑與寫作預設 → 「+」新建對話 → 在對話中按 preset 流程寫作;需要時在右側欄調整主提示詞、九個 Skill 或流程設置(如下一章自動審查、目標字數、子 agent 模型)。
適用場景與注意¶
適合已經使用 DSH Tavern、且需要在遊玩裏快速「改上一條再生成」,或希望用統一目錄與 agent preset 管理長篇小說的用戶。
務必知曉:
- 插件不改 dsh-tavern 源碼,但依賴其內部 API 與 DOM 結構(如
/api/dsh-tavern/rollbackTurn、listPresets、getPreset,事件dsh-tavern-data-changed,以及system-prompt/assemble鉤子等)。dsh-tavern 大版本升級後若結構變化,插件可能失效;設計上儘量原樣放行、不影響酒館本體,問題可在 GitHub 開 issue 並註明 DSH Tavern 版本。 - 安裝與運行等同於向 DSH 進程加載第三方 bundle,安裝前應閱讀倉庫源碼與 MIT 許可證。
DeepSeek Harness 社區插件目錄(如 SkillHub)由社區維護,與 DeepSeek / 幻方無官方從屬關係;本文安裝步驟僅複述該插件 README,不代表官方應用商店的一鍵安裝流程。
結尾¶
dsh-tavern-extras 把「編輯上一條發言」接到 dsh-tavern 原有的回退機制上,並在此基礎上提供項目化的長篇寫作側欄與 agent 配置,適合在不動酒館核心代碼的前提下擴展遊玩與寫作工作流。詳情與更新見 GitHub 倉庫 與 SkillHub 目錄頁。