前言¶
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。
- 默认头像选择。
- 昵称编辑。
- 规则引擎。
- 协议版本与应用版本强制校验,用于防止在线对局不同步。
客户端为在线唯一模式,没有本地离线对局。
安装与启用¶
前置条件是:
- Node.js ≥ 20。
dsh命令在 PATH 中。dsh是 npm 包@deepseek-ai/dsh提供的命令,不是系统自带。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