dsh-doudizhu:在 DSH 等待回話時進行在線鬥地主

前言

DSH 的擴展方式之一是插件。有些插件解決工具鏈問題,也有一類偏輕量的 Web GUI 插件,用來在等待智能體回話的間隙做一點臨時交互。dsh-doudizhu 屬於後者:它把鬥地主放進 DeepSeek Harness Web GUI 裏,讓等待時間可以打一把在線牌局。

插件定位

dsh-doudizhu 是一個運行在 DeepSeek Harness Web GUI(http://127.0.0.1:3080)裏的 DSH 鬥地主插件。

它由 AwesomeHou 維護,採用 MIT 許可。當前能力集中在在線對戰:3 人在線 PVP,真人不足 15 秒時自動補機器人。客戶端使用 React/TypeScript 插件入口,並提供淺色大廳與牌桌界面。

在線對戰依賴部署在 Cloudflare 的後端,使用 Workers、Durable Objects 和 D1 負責匹配、即時同步與服務端經濟記賬。客戶端內置默認 API 地址,使用者無需自建後端。

當前可用能力

下面列出的能力均來自當前插件說明:

  • 3 人在線 PVP。
  • 真人不足 15 秒自動補機器人。
  • Token/簽到。
  • 匹配。
  • WS 對局。
  • 經濟閉環。
  • React/TypeScript 插件入口。
  • 淺色大廳/牌桌 UI。
  • 默認頭像選擇。
  • 暱稱編輯。
  • 規則引擎。
  • 協議版本與應用版本強制校驗,用於防止在線對局不同步。

客戶端爲在線唯一模式,沒有本地離線對局。

安裝與啓用

前置條件是:

  1. Node.js ≥ 20。
  2. dsh 命令在 PATH 中。dsh 是 npm 包 @deepseek-ai/dsh 提供的命令,不是系統自帶。
  3. pnpm 在 PATH 中。dsh plugin 依賴 pnpm。

推薦安裝命令:

dsh plugin --profile web add github:AwesomeHou/dsh-doudizhu

如果提示 workspace root 報錯,即出現 ERR_PNPM_ADDING_TO_ROOT,可以加 -w:

dsh plugin --profile web add -w github:AwesomeHou/dsh-doudizhu

安裝後重啓 dsh web,刷新界面,在側欄查看“鬥地主”入口。

安裝動作會把插件加入當前 profile 的 bundle 棧,補丁文件是 cordis.patch.yml。

如果安裝時看到 git-hosted plugins allowBuilds 相關提示,當前插件說明裏沒有 prepare/install 構建腳本,因此無需添加 allowBuilds 條目。只要 pnpm 可用,可以重跑安裝命令。

卸載命令:

dsh plugin --profile web remove dsh-doudizhu

使用與本地調試

安裝完成並重啓 dsh web 後,從側欄進入鬥地主入口。進入後可選擇默認頭像、編輯暱稱,並通過匹配進入在線對局。

在線對局中,真人不足時會在 15 秒內由機器人補位。Token/簽到、匹配、WS 對局和經濟閉環均可用。

如果是維護或調試插件源碼,本地開發流程如下:

npm install
npm run typecheck
npm test
npm run build

改完源碼後必須重新構建,並提交 lib/。分發依賴隨倉庫攜帶的構建產物。

後端本地調試:

cd worker && wrangler dev

注意事項

在線 PVP 要求所有玩家的客戶端協議與服務器一致。協議不一致時,客戶端會提示更新;服務端也可以返回 426 拒絕連接。

需要注意以下幾點:

  • 客戶端爲在線唯一模式,無本地離線對局。
  • 在線對戰依賴 Cloudflare 後端,客戶端內置默認 API 地址。
  • dsh plugin 依賴 pnpm。
  • 插件隨 DSH / dsh 插件環境運行,會具備當前 dsh 進程可獲得的權限。安裝前應檢查源碼與 MIT 許可證。
  • 安裝和卸載都作用於當前 --profile web。

參考

GitHub:

https://github.com/AwesomeHou/dsh-doudizhu
羽毛球分组比赛记分
小程序二维码

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

小夜