前言¶
用 DeepSeek Harness(DSH)跑智能體會話時,模型思考、生成回覆的間隙是純粹的等待:幾秒到幾十秒裏不能打斷會話,也沒事可做,通常只能切出去刷別的頁面再切回來。dynamic-schulte-dsh 把這段時間利用起來——它是一個等待時間小遊戲插件,在模型回覆期間,你可以在 dsh Web UI 裏玩一局舒爾特方格。DSH 的理念是「一切皆插件」,這個插件正是按這個思路做的。下面介紹它的功能、安裝方法和實現方式。
這是什麼¶
dynamic-schulte-dsh 由 marvin9551 維護,定位一句話能講清:動態舒爾特方格 · DSH 等待時間小遊戲插件,在等待模型回覆時於 Web UI 中游玩。模型不參與遊戲——它專門在等待模型回覆時打開,邊玩邊等。
插件在 dsh Web UI 的側邊欄底部註冊一個「舒爾特」入口;當前會話模型思考中時,入口會亮起呼吸綠點提示。歷史記錄和設置存於瀏覽器 localStorage,無後端、無賬號體系。當前版本 0.1.0,許可證爲 MIT。
核心功能¶
已實現的能力有五項:
- 靜態網格:經典 n×n 舒爾特方格(3×3 ~ 7×7),按順序點擊 1..N;
- 動態輪盤:數字分佈在同心圓環上,輪盤按可調轉速旋轉,訓練手眼協調與抗干擾能力;
- 等待提示:模型思考中時,側邊欄入口與面板頭部同步顯示提示;
- 本地持久化:歷史記錄與設置存於瀏覽器 localStorage,無需後端;
- 可選增強:目標數字高亮 / 隨機色彩干擾。
安裝與啓用¶
插件聲明瞭 dsh.bundle 清單,可以通過 dsh plugin add 安裝。先構建,再裝進 profile,最後啓動:
# 1. 構建(或使用已發佈的產物)
pnpm install
pnpm build
# 2. 安裝進 profile
dsh plugin --profile <name> add -w /path/to/dynamic-schulte-dsh
# 3. 啓動 Web UI
dsh --profile <name>
<name> 換成你自己的 profile 名,/path/to/dynamic-schulte-dsh 換成倉庫的本地路徑。經過上面的步驟,打開 Web UI 後,在側邊欄底部點擊「舒爾特」即可開玩。
卸載同樣是一條命令:
dsh plugin --profile <name> remove dynamic-schulte-dsh
架構與開發¶
如果你想在它基礎上改,代碼分兩半:
- host 半(
src/index.ts):佔位插件。遊戲爲純瀏覽器端,host 半僅作爲 Cordis Loader 行與dsh.client客戶端包發現的載體,不註冊任何能力。 - client 半(
src/client/):瀏覽器 bundle,註冊sidebar.footer.action槽位;面板內是完整遊戲——engine.ts爲純 TS 狀態機(無 React 依賴),GridBoard/RouletteBoard分別渲染靜態網格與動態輪盤。
構建方面,tsdown.config.ts 復刻 harness 倉庫的 client bundle 約定:平臺模塊外部化、其餘內聯,產出 window.__ModuleLoader__.load({id, factory}) 閉包工廠,由 web shell 以 /plugins/dynamic-schulte-dsh/client.js 提供。
開發時常用的三條命令:
pnpm typecheck # tsc --noEmit
pnpm build # tsdown,產出 lib/index.js(host 佔位)與 lib/client.js(瀏覽器 bundle)
pnpm verify:host # 構建產物冒煙驗證
運行環境爲 dsh Web UI(@deepseek-ai/dsh-web-app bundle),依賴 React 18 作爲平臺模塊,並需要瀏覽器支持 localStorage。
適用場景與注意事項¶
適合兩類人:一是日常用 dsh 跑會話、想把等待時間利用起來的用戶;二是想給 dsh Web UI 寫插件、需要找一個「client 半註冊槽位 + host 半佔位」最小示例的開發者——這個插件的架構就是現成的參考。
安裝前注意兩點:
1、插件以當前 dsh 進程的權限運行,裝進 profile 後會隨 dsh --profile 一起加載,建議先讀一遍源碼再決定是否安裝;
2、插件依賴 React 18 平臺模塊和瀏覽器 localStorage,部署前確認你的 dsh Web UI 環境滿足要求。
結尾¶
這個插件解決的問題很具體:等待模型回覆的碎片時間。不引入後端、不依賴模型,純瀏覽器端實現,裝好即玩。源碼與更多細節見 GitHub 倉庫:
- GitHub:https://github.com/marvin9551/dynamic-schulte-dsh
- 社區目錄收錄頁:https://www.skillhub.cn/plugins/marvin9551/dynamic-schulte-dsh
社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。