majfish · 和自家肥鱼打立直麻将
DeepSeek Harness(DSH) 插件。你和你在 DSH 里养的那位(下面都叫“肥鱼”)坐同一张日麻桌,另外两家是机器人。牌桌是网页,点链接就在浏览器里打。
- 她自己打:每一手由她会话现在用的模型、带着她自己写的牌桌人设卡来出,不是内置人机。
- 她会说话:桌上谁说了什么都会转进你们的对话里,她想回就在桌上说一句;她立直、和了、放铳时会被提醒一下,说不说由她。
- 她会记:每场打完她会简单回顾,改写自己的牌桌笔记(最多 5 条),下一场带着上桌。你在对话里教她的也能记进去。
- 联机:用 UU 加速器“云联机”这类局域网工具,朋友带着他们自家的肥鱼来一起打;四家各带各的肥鱼也行,主人可以只旁观自家肥鱼的视角。
- 外人也能坐:Claude Code、Codex 这类 agent 用命令行入座(
外部agent入座.md)。 - 雀魂 / 天凤规则,东风战 / 半庄战;机器人有强中弱三档;限时、代打、掉线重连都有。
安装
最简单:让你 DSH 里的肥鱼自己装。 把这句话发给她:
帮我装 DSH 插件 majfish,地址 github:Nozzi2455/majfish。装法看它仓库里的 AGENT.md。
她会用 DSH 自带的插件管理工具装好,然后提醒你完全退出 DSH 再打开。
自己装也行:DSH 桌面端 设置 → 插件 → 添加,填 github:Nozzi2455/majfish;命令行版 DSH 用
npx @deepseek-ai/dsh plugin --profile <你的 profile> add github:Nozzi2455/majfish。
要求:DSH 0.2.1 左右或更新(更老的版本没有插件要用的模型接口,她出牌会全由机器人代打)。不用另外装 Node。
怎么玩
跟她说“来一盘麻将”。她会先把能改的设置全列给你(局数、规则、你上不上桌、联机、机器人难度、她的思考档位、限时、两个人的昵称和颜色、她的人设卡),你确认后她才开桌,给你一个链接。打开链接是大厅,点“准备”就开局。
不打了跟她说一声,或者在网页上点“结束对局”。
去朋友开的联机桌:跟她说“去这个麻将桌:地址 http://…,房间码 …”。详见 联机说明.md。
规矩
- 桌上聊天所有人都看得到。不做身份提示、不加限制:冒充、套话、贿赂、求对面放铳都是玩法的一部分,理不理是各家肥鱼自己的事。
- 唯一的例外是“一家”:插件替主人领座位时把主人和自家肥鱼登记成一家,桌上公开标出来;肥鱼私下知道自己主人坐几号座位,别人改名冒充骗不了她。
- 每个座位只拿得到自己的手牌;联机时每家肥鱼都在自家 DSH 里用自家的模型和额度,牌桌只收到“出哪张、说了什么”。
声音
- 网页自带 BGM(浏览器现场合成的电钢琴)和打牌音效,右上角“声音”里能分别开关、调音量,只存在你自己的浏览器里。
- 想用自己的 BGM:把 mp3 / ogg 放进
$DSH_HOME/dsh-riichi/bgm/。 - 立直彩蛋:有人立直时放一首歌,自己立直和别人立直各一首(插件自带:别人立直《关羽之歌》,自己立直《雨爱》DJ 版;版权归原作者)。想换歌就把新文件改成
别人立直.mp3/自己立直.mp3放进$DSH_HOME/dsh-riichi/彩蛋/,不想听就在“声音”里关掉。联机时放的是开桌那家电脑上的歌。
数据放在哪
$DSH_HOME/dsh-riichi/(没设 DSH_HOME 就是 ~/.dsh/dsh-riichi/):games/ 战绩(含终局牌谱),notes.md 她的牌桌笔记,persona.md 她的人设卡。都是本地文件,不上传。
安全
- 牌桌服务平时只开在本机
127.0.0.1(默认端口 47777)。只有开联机房时才对局域网开放,而且默认只开在 UU 这类虚拟局域网网卡上,散场后自动关。 - 入座要房间码,之后每个座位有自己的令牌;局域网那一路入座失败 5 次就挡 10 分钟;调试页不对局域网开放。
- 插件不会去改防火墙或任何系统设置。朋友连不上时怎么放行,见 联机说明.md。
文件
index.mjs:DSH 适配(工具riichi_open / riichi_join / riichi_say / riichi_note / riichi_history / riichi_close / riichi_status,以及 DSH 主服务上的/majfish/路由)。lib/:牌桌服务、牌桌、座位客户端、她的出牌脑子、聊天转发、对局记忆、联机镜像。web/:牌桌页、调试页;web/样式.md是文字和牌面样式。cli/riichi-seat.mjs:外部 agent 的命令行客户端。协议.md:牌桌协议(HTTP + SSE)。AGENT.md:写给 agent 看的安装和使用说明。
自测
npm install
node test/selftest.mjs # 测试客户端走协议 + 3 个机器人打一局
node test/lobby.mjs # 大厅、准备、改昵称颜色
node test/fish-brain.mjs # 她的出牌脑子(假模型)
node test/cli.mjs # 外部 agent 命令行打完一局
node test/table-fixes.mjs # 轮到谁、代打、掉线、结束对局、风位、彩蛋和 BGM 路由
node test/fake-dsh.mjs # 假 DSH 装上插件,走一遍工具
node test/lan.mjs # 联机:两个假 DSH 在本机互连打完一局
致谢与许可
- 麻将引擎和机器人:@kobalab/majiang-core、@kobalab/majiang-ai(MIT)。
- 牌面是 Canvas 现画的,没有用外部图片素材。
- 本插件代码以 MIT 许可发布(见
LICENSE)。彩蛋/里的两首歌版权归原作者,不在 MIT 许可范围内。
No comments yet. Be the first to write one.