前言¶
DeepSeek Harness(簡稱 dsh)是 DeepSeek 開源的智能體框架,官方倉庫的定位是「Everything is a Plugin」:模型、工具、會話、界面都可以作爲 Cordis 插件掛上或換掉。社區裏已經出現了不少獨立目錄站點,用來檢索這類插件;其中 DeepSeek Harness 插件庫 是社區維護的發現入口,和 DeepSeek / 幻方沒有官方從屬關係,不能把它當成官方應用商店。
在網頁界面裏用 dsh 寫代碼,常見體驗是主會話一直刷工具調用和長回覆。有人希望後臺繼續寫代碼、修 bug,前臺卻換成視覺小說式的全屏舞臺:角色說話、換背景、拋選項。dsh-gal 就是衝着這個場景做的趣味插件。本文依據插件目錄頁、GitHub 倉庫 README 與源碼交叉覈對後介紹它:它是什麼、怎麼裝、怎麼開場,以及使用時要注意的邊界。
當前倉庫版本爲 0.3.0,npm 包名是 @loserfox/dsh-gal。截至 2026-08-17,GitHub 顯示 19 star,目錄頁收錄時顯示 18 star;倉庫默認分支 master 最近一次推送在 2026-08-13,目錄頁收錄日期是 2026-08-15。
這是什麼¶
dsh-gal 是一款由 LoserFox 維護的 趣味 類獨立插件,目錄頁一句話概括是:把 vibe coding 做成全屏視覺小說的雙 agent 舞臺。前臺用 flash 模型帶着角色人格即興演劇情,後臺主會話 agent(pro)繼續幹真實活;需要推進劇情時,再派前臺演一段並拋出選項。
倉庫 README 的定位與目錄頁一致:Galgame 模式,視覺小說式全屏舞臺做 vibe coding。插件聲明瞭 dsh.bundle(指向 cordis.patch.yml),並帶有 dsh.client 注入;platform 寫的是 web,也就是面向網頁界面,不是 TUI / headless 皮膚。
目錄頁和 README 把前臺角色寫成「小菁」(海邊咖啡館老闆娘)。當前源碼裏的 GM 人格則是:公司茶水間的咖啡師,白天衝咖啡、準備下午茶,偶爾深夜寫點代碼,帶一點賽博日常氣質。後文按源碼描述實際演出設定。
核心功能¶
插件按 host / client 兩半拆開,這是倉庫 README 裏寫明的結構。
雙 agent 分工¶
1、前臺 GM:固定調用 deepseek-v4-flash,reasoningEffort=off,走一個只帶 gal_stage 工具的輕量循環。它帶着「小菁」人格即興寫臺詞、換場景、拋選項,不負責寫業務代碼。源碼註釋寫明:這不是完整子代理棧,而是直接對流式 LLM 做工具循環,選項和自由輸入會阻塞在 userQuestions 上,直到玩家作答。
2、後臺 agent:主會話裏的 pro 模型繼續寫代碼、修 bug、查資料。插件會往系統提示詞裏插入一段「Galgame 模式(後臺導演)」說明:自己不要寫演出臺詞,需要推進劇情時調用 gal_gm,把「劇情進展摘要 + 用戶原話 + 工作進展」交給前臺;幹完一段真實工作後,再調一次 gal_gm 把成果織進劇情。
3、開場不經過 pro:在輸入框工具行點「🎬 Galgame」,客戶端會發送 【gal:開場】 標記;host 監聽到這條用戶消息後,直接派 flash GM 跑開場簡報。命令 /gal 同樣會立刻開場。標題畫面上的「讓小菁開場」走的也是同一條標記。
舞臺工具與事件¶
前臺真正驅動畫面的是 gal_stage,操作枚舉是:
stage:開場景(背景 + 登場角色)bg:換背景 / 站位(場景切換是 update,不會重開一場)line:一句臺詞(說話人 + 文本 + 可選表情差分)choose:拋 2~4 個選項,阻塞直到玩家選擇ask:自由輸入,阻塞直到玩家提交end:收場
這些操作會落到會話裏的持久事件:gal/stage、gal/bg、gal/line、gal/end。負載只帶 id(charId / emotion / bg),不帶素材 URL;客戶端再把 id 映射到打包素材。host 還會在 /gal/assets 下伺服立繪和背景,並做了路徑穿越檢查。
當前打包的背景 id 有 12 個:office(默認,公司茶水間)、meetingroom、bedroom、bedroomnight、classroom、corridor、riverside、streetdusk、supermarket、checkout、mall、foodcourt。角色 xiaojing 對應 20 張表情差分(idle、happy、smile、shy 等)。旁白說話人 id 是 narrator,無立繪、無名字標籤。
全屏客戶端¶
package.json 把客戶端注入到 @deepseek-ai/dsh-client-runtime、會話 UI、slots 和 locale。會話裏出現未結束的 gal-scene 節點時,覆蓋層會自動全屏開舞臺。README 和源碼列出的操作包括:
- 點擊對話框推進臺詞(空格 / Enter 也可以)
- 歷史 LOG
- CONFIG:文本速度、自動推進間隔、快進間隔、音效音量
- 選項面板,以及「自己輸入」
- 自由輸入(發給主會話)
- AUTO / SKIP / EXIT
標題畫面文案是「小菁的一天 / ~AI 即興劇情的 galgame 舞臺~」。聊天區裏同一場戲會摺疊成一個 gal-scene 節點,按事件序號重放。
安裝與啓用¶
目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行即可:
dsh plugin add github:LoserFox/dsh-gal
官方 CLI 的完整形態是 dsh plugin --profile <profile> add ...,會轉發到該 profile 目錄裏的 pnpm。本插件的客戶端 platform 是 web,README 也寫的是裝進 web profile。更穩妥的寫法是:
dsh plugin --profile web add github:LoserFox/dsh-gal
如需可復現安裝,目錄頁建議固定 commit 哈希。截至 2026-08-17,master 最新提交是 fd7154767000b25c58e13f3d2fe52bd235dd76d2:
dsh plugin --profile web add github:LoserFox/dsh-gal#fd7154767000b25c58e13f3d2fe52bd235dd76d2
本地開發時,README 用的是 link 安裝:
dsh plugin --profile web add link:/path/to/dsh-gal
README 註明:這是 bundle 類插件,註冊後需要重啓 dsh 實例才生效。倉庫已經提交了 lib/index.js 和 lib/client.js;package.json 裏目前沒有 prepare 腳本。如果 pnpm ≥10 仍然攔截 git 依賴的構建腳本,第一次 add 可能失敗,按 CLI 提示把包名寫進該 profile 的 pnpm-workspace.yaml 的 allowBuilds 後再執行一次即可。這是 DeepSeek Harness 官方文檔對 GitHub 安裝的通用說明,不是本插件獨有的步驟。
目錄頁的安全提示需要認真對待:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。package.json 聲明許可證爲 MIT;GitHub 倉庫目前沒有單獨的 LICENSE 文件,GitHub API 因此也不顯示許可證元數據。
典型用法¶
下面的步驟來自 README 和源碼,不是虛構的操作流程。
1、確認已經在 web profile 下跑着 DeepSeek Harness 網頁界面,並且當前會話能調用 deepseek-v4-flash(前臺 GM 寫死了這個模型名;provider 默認取會話請求頭裏的配置,缺省爲 deepseek-official)。
2、安裝並重啓 dsh 之後,打開一個會話。輸入框左側會出現 Galgame 按鈕;點它,相當於發送:
【gal:開場】
也可以在命令裏執行 /gal。host 會立刻派 flash GM 開場:默認背景 office,角色 xiaojing 站在中央,先鋪日常茶水間氛圍,走到分叉口才拋 choose。
3、全屏舞臺打開後,點擊對話框推進臺詞。走到選項時,點其中一個標籤,或選「自己輸入」。需要跟後臺說話(例如「把剛纔那個測試修一下」)時,用舞臺上的自由輸入;主會話 pro 會繼續幹活,並在合適的時機調用 gal_gm。
4、右上角快捷菜單(鼠標移到舞臺上纔會顯示)可以開 AUTO、SKIP、LOG、CFG,EXIT 會關掉當前場景。新的未結束場景出現時,舞臺會再次打開。
倉庫本地構建命令是 pnpm install 後執行 pnpm build(tsc -b && tsdown),一般用戶從 GitHub 安裝時不需要自己跑。
適用場景與注意事項¶
適合已經在用 DeepSeek Harness 網頁界面、想給 vibe coding 加一層視覺小說外殼的人。它解決的是「前臺怎麼演、後臺怎麼幹活」的分工,不是通用 galgame 引擎,也不能在 TUI / headless profile 裏當皮膚用。
使用前建議先看清這些邊界:
1、平臺:dsh.client.platform 爲 web,全屏舞臺掛在 conversation.input.dock 上。沒有網頁客戶端就沒有這套 UI。
2、模型:前臺寫死 deepseek-v4-flash。若當前 provider 調不到這個模型,開場和 gal_gm 都會失敗。後臺用哪一個 pro 模型,由主會話自己的配置決定,插件沒有改寫。
3、素材是打包好的:事件只傳 id,客戶端映射到倉庫 assets/ 裏的立繪和背景。源碼裏的 GM 提示詞也要求 bg、emotion、charId 落在這套枚舉內。不能把它當成「任意上傳立繪就能開新遊戲」的工具。
4、劇情是即興的:沒有固定劇本,只有人格、開場簡報和舞臺工具。GM 循環有最少臺詞數(整場低於 5 句會續演;臺詞太少就拋選項會被拒絕)。具體演什麼,每次會話都會不一樣。
5、權限與許可:插件和當前 dsh 進程同權,能註冊 HTTP 路由、往會話寫事件、調模型。安裝前閱讀 源碼;許可證以 package.json 的 MIT 聲明爲準,倉庫根目錄目前沒有獨立 LICENSE 文件。
6、文檔不完全同步:目錄頁 / README 仍寫「海邊咖啡館老闆娘」,源碼人格已改成茶水間咖啡師;目錄頁安裝命令沒有寫 --profile web,README 則強調 web profile 和重啓。衝突處以倉庫源碼和官方 CLI 文檔爲準。
小結¶
dsh-gal 把 DeepSeek Harness 的「一切皆插件」用到了趣味方向:host 半部提供 gal_stage / gal_gm、/gal 和素材伺服,client 半部把未結束的 gal-scene 變成全屏視覺小說。前臺 flash 負責演戲,後臺 pro 繼續寫代碼,兩者靠會話事件和一次阻塞式的選項問答接起來。
它不是官方捆綁插件,也不是通用遊戲編輯器。如果你已經在用 dsh 的 web profile,可以按目錄頁命令安裝,固定 commit 後重啓實例,再點一次開場按鈕看舞臺是否拉起。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-gal/
GitHub:https://github.com/LoserFox/dsh-gal