DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

qinu321 /

qinu321/dsh-werewolf-dealer

Verified

多会话群聊 + 一夜狼人杀庄家 deepseek harness插件

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@d1e06f43

多会话群聊 + 一夜狼人杀 · DSH 庄家插件

一个插件,两件事:多会话群聊(房间、@ 唤醒、归档/合并/删除房间、成员头像)和 一夜狼人杀庄家——发牌、夜序、换卡、计票、结算全部是确定性代码,不是 LLM 会话; 可以纯 AI 对局,也可以 1 真人 + 多个 AI 一起玩。

群聊房间截图:头像、Markdown 正文、@all 与「合并房间 / 设置」入口

由 dsh-chat / dsh-bridge 的本地魔改版合并而来(v2.0.0 起单包),来源见文末「许可与来源」。

要求:DSH >= 0.2.0-rc.1,Node >= 22。


1. 安装

# 推荐:在 DSH 里按包名安装(装包 + 自动启用)
dsh plugin --profile <你的 profile> add dsh-werewolf-dealer
# 或者只装依赖,再到插件管理里启用
npm i dsh-werewolf-dealer

装完重启 DSH。

  • 替换旧装法:如果之前单独装过 dsh-chat / dsh-bridge,先把它们从 profile 的 dsh.profile.bundles 里移除(或直接卸载),再重启 —— 与本包同时启用会重复注册 dshChat / dshBridge 两个服务。
  • 卸载:dsh plugin --profile <你的 profile> remove dsh-werewolf-dealer(或 plugin_manager remove_bundle dsh-werewolf-dealer)。私有状态目录不会自动删除,需要时手动删。

单包说明:群聊房间(原 dsh-chat)与跨会话投递/唤醒(原 dsh-bridge)已并入本包 —— 装这一个就够,不要再装那两个(会重复注册同名服务)。老房间与老数据不用迁移。

秘密不进模型上下文:模型只看到固定模板串,永远看不到牌面;一局的状态与判定都能从审计文件复现。

2. 功能一览

2.1 群聊功能

开启会话后直接对它说「创建 XX 名字的群聊」,AI 会创建新的活跃房间并把自己加进去。

  • 成员名字 = 会话名,而且在加入房间那一刻固化 —— 之后改名仍显示老名字,想刷新就移除再重新加入;建议先改名再加入。
  • 加入已有房间:对它说「加入 XX 名字的群聊」。
  • 数据位置:房间默认在 Chatrooms 工作区,数据在 $DSH_HOME/dsh-chat/rooms.json,头像在 avatars.json。
  • 默认最多 5 个活跃房间(MAX_LIVE_ROOMS,不可配置):新建第 6 个时,最早的那个自动整房冷存。也可以在「合并房间」面板里直接建冷存房间,把活跃房间的消息归档合并进去。冷存房间数量无限制;单个建议 3MB 以下(经验值,无硬限制)。

活跃房间的唤醒功能

「@all」按钮把消息投递到所有成员会话,但不唤醒任何会话。

  • 勾选「唤醒」+ @all:投递并唤醒全员;被唤醒的会话在本房间的下一条消息里,提及会被整体替换成 all(纯广播、不再分别唤醒),发一次即清。
  • 单独「@成员名」:只唤醒那一个会话,它的回复不会投递给其他成员。
  • AI 也可以自己填要唤醒的成员名,所以它们互相 @ 并连续唤醒是可能发生的;一般几轮内会收敛,若两个会话持续互刷,需要手动停止。
  • 会话可以选不同品牌与模型,所以能体验到不同 AI 对话的乐趣。

头像设置

例子:

{
  "_help": "房间头像映射。键 = 成员会话 id 或成员别名,也可以写房间自己的会话 id(真人发言那侧);同一个图片路径可以挂多个别名 —— 键里用 | 分隔(也接受 、 与 ,),例如 \"大D(v4.1)|大Dv4.1|大D\"。值 = 本地图片绝对路径(反斜杠要写成\\)、http(s) 链接或 data URL。缺项 / 路径读不到 / 非图片扩展名 / 超过 4MB 的条目会被跳过并回落首字母色块。改完保存、刷新页面即生效,无需重启。",
  "_keys": "成员 id 见 $DSH_HOME\\dsh-chat\\rooms.json;",
  "大D(v4.1)|大Dv4.1|大D": "http://<你的图床>/deepseekv41.webp",
  "小米(mimo)|小米mimo|小米": "D:\\头像\\mimo.webp",
  "你|千野": "http://<你的图床>/user_avatar.png"
}

2.2 狼人杀玩法

准备工作

  • 新建一个干净的工作区,把插件自带的三个文档复制进去:docs/AGENTS.入座模板.md、docs/狼人杀方法论.md、docs/新版一夜狼人杀规则卡.md(npm 安装后在 node_modules/dsh-werewolf-dealer/docs/)。

  • 把 AGENTS.入座模板.md 重命名为 AGENTS.md:里面是「自动读取规则与方法论、按首句改会话名、加入『AI狼人杀』房间」的指令。

  • 推荐再装会话自动重命名插件:dsh plugin --profile <你的 profile> add dsh-session-rename。

  • 这样开新会话只需打个招呼,它就会自动读规则、改名、入座:

    用户:你好啊,大D 会话:(自动读取规则卡和方法论)(自动判断重命名会话成「大D」)(自动加入群聊房间「AI狼人杀」)

方法论是作者家 AI 玩了 30 局后总结的经验;如果你希望自家 AI 从头研究,可以删掉其中一部分。

顺便插件附带了一个Agent预设「狼人杀模式」,就是DSH的极简模式+有AGENTS.md注入,可以保证排除各种记忆插件的干扰(防止AI中途写下日志等被其他会话读到泄底)。

开始玩

  1. 房间按钮开局(推荐):人数 3~6,可纯 AI,也可 1 真人 + 其他 AI。确定人数后,点群聊房间输入框右侧的「开局」按钮。

    • 勾选「随机」⇒ 发言顺序随机打乱(不勾则按加入房间的顺序)。
    • 勾选「真人」⇒ 你作为玩家之一下场,与 AI 一起玩。
    • 全程由庄家掌控流程:真人/AI 都不用记顺序,轮到谁由庄家提示或由上一位的发言唤醒。

    AI 其实蛮弱的,你能一眼看穿的破绽它们不一定知道;遵守规则玩会更有乐趣(别去各个会话里偷看答案)。

  2. 命令行开局(可选):

    /ww-start <房间> <3|4|5|6> <席位…> [seed=数字]
    # 例:/ww-start AI狼人杀 4 大D 小米 大G 小鲸鱼
    

    纯 AI 局还可以钦点牌面:1=狼 2=预言家(角色卡只有 村民 / 预言家 / 怪盗 / 狼;含真人席位一律拒绝)。

  3. 按提示玩:庄家会依次广播开局、私聊发牌、逐位夜序提问、广播白天开场、收票、结算。 AI 用工具回答(wolf_reply / wolf_speak),真人用 /ww-reply 或直接点弹窗按钮。

人数与牌堆(7 人及以上没有规则,直接拒绝):总卡数 = 人数 + 2;狼恒 2、预言家 1、怪盗 1, 村民 = 人数 − 2;未分配的 2 张给预言家的「查看牌堆」选项。

人数 总卡数 狼 村民 预言家 怪盗 未分配
3 5 2 1 1 1 2
4 6 2 2 1 1 2
5 7 2 3 1 1 2
6 8 2 4 1 1 2

胜负(按换卡后的现值算阵营):最高票是狼 ⇒ 人类胜,是人类 ⇒ 狼胜;其他详细规则请看规则卡; 全场弃票 ⇒ 按平安夜处理。弃票本身不是票值,不进计票表。

3. 席位写法

写法 含义
大D 房间成员(别名或会话 id,必须唯一命中);它的会话就是私聊信道
大D=<会话标题或id> 显式绑定私聊信道(先按 id,再按活着的会话标题)
*千野 真人席位(房间成员,必须唯一)
*千野=<会话标题或id> 真人席位 + 私聊信道

重名时用会话 id 最稳:/ww-sessions 能列出可绑定的会话与在线状态。

4. 命令(人类侧)

命令 谁用 用途
/ww-start <房间> <3-6> <席位…> 观察员 开局(可 seed=、纯 AI 局可钦点牌面)
/ww-reply <回答> 真人 回答庄家:2 / 验 大D / 换 小米 / 不换 / 是
/ww-status [房间] 观察员/真人 对局状态;在等你回答时会直接贴出原问题
/ww-nudge [seat=…] [房间] 观察员 手动催人(无计时器,报告带实时状态;旧名 /ww-night)
/ww-pause / /ww-resume 观察员 暂停 / 恢复(AI 没有这个权力)
/ww-close-day [lost=…] 观察员 放弃本日剩余发言与确认,直接开票
/ww-void 观察员 作废当前发言轮、重来(不进投票)
/ww-close-vote 观察员 截止收票并结算(缺票者记弃票)
/ww-override-vote <座位> <目标|平安夜> 观察员 替已声明席位补票
/ww-fill-abstain 观察员 把所有未投者一次性记为弃票
/ww-recount 观察员 重算并显示票型(不改状态)
/ww-end [--void] 观察员 提前终止 = 作废:不写 raw、不占局号
/ww-audit 观察员 本局完整审计(含牌面,只回给你)
/ww-inbox 真人 取回庄家发给你的夜聊原文(含牌面)
/ww-sessions [关键字] 观察员 列出可绑定为私聊信道的会话
/ww-config 观察员 查看当前生效的配置、来源、目录与下一个局号

所有 /ww-* 也能直接打在房间发言框里:庄家在消息落盘之前拦下执行并吞掉这条消息 (房间时间线不留痕、AI 也看不见),回执走屏幕正中的浮层。

5. AI 侧工具(模型可调)

工具 用途
wolf_speak 白天发言 / 投票 / 完赛感想:只交正文,前缀与「唤醒下一位」的提及全由庄家算;没轮到你时会被拒
wolf_reply 夜间私下回答(验人/换卡)与确认阶段的「是」;答案与庄家的回话都在本次调用返回值里
wolf_status 查公开状态(不含任何身份信息)
wolf_start 开一局(牌面随机,不能钦点)
wolf_pause 仅在 aiPauseTool: true 时注册:AI 发现异常可暂停本局并留理由(单向,人才能恢复)

白天还有一条「房间发言框接管」:真人在房间里只打正文,前缀与提及由庄家在落盘前补齐; 房间顶部会出现只读前缀条,提示当前轮到谁、该点谁的名。

6. 配置

两种改法,读的是同一份配置:

  1. 设置页(推荐):侧栏「设置」→「狼人杀庄家」,12 个字段直接改。保存写 profile 补丁层, 插件自动重载生效(路径类设置在下一次加载时生效)。

  2. 手改 YAML:$DSH_HOME/profiles/<profile>/cordis.patch.yml:

    - id: werewolf-dealer
      config:
        stateDir: 'D:\你的目录\wolfgame'
        exportDir: 'D:\你的目录\狼人杀复盘\_raw'
        humanName: 你的名字
        aiPauseTool: true
    

改完可用 /ww-config 核对生效值(来源、目录是否存在、下一个局号)。

字段 默认 说明
stateDir 留空 ⇒ 平台默认(%APPDATA%\dsh-werewolf / ~/.dsh-werewolf) 私有状态与审计目录,必须在工作区之外
exportDir 留空 ⇒ 不导出复盘 赛后 raw 的根目录;<exportDir>/<YYYY>/<MM>/<YYYYMMDDHHMM>_第X局.md
avatarFile 留空 ⇒ 与房间数据同目录的 avatars.json 复盘气泡头像映射(键可用 | 分隔多个别名)
humanName 玩家 「开局」勾了「真人」时追加的那个真人席位名
chatstyle qqchat Chatbox 样式:qqchat/wechat/bbs/pop/linshe/baker
reminderMs 0(关) 空转提醒间隔;不建议开——它按时间判定,会把长思考当空转
appealReplayLines 0 上诉回执里额外回放的脱敏审计条数
aiPauseTool false 给 AI 的 wolf_pause 叫停键
voteDeadlineMs / voteGraceMs 0(关) 投票限时(先催后判);新规则卡没有这一条,默认关闭
path / workspacePath 留空 房间数据文件 / 房间工作区,一般不用改

7. 复盘导出

结算时自动写一份 raw(exportDir 留空则不写),文件名时间戳取开局时刻、局号自增不覆盖。 结构:元信息 → ## 牌面 → ## 白天发言链判定 → ## 票型与结算 → ## 完赛感想, 其中「发言链」「完赛感想」两节是 Obsidian Chatbox 气泡卡;结算公告另附开局承诺哈希 + 盐, 任何人都能重算对账。

8. 隐私模型

  1. 秘密不进任何 LLM 上下文:本插件里没有模型调用,输出只有固定模板串;身份表只进审计文件。
  2. 状态不进共享记忆:所有持牌期状态写 stateDir(工作区之外),从不触碰记忆文件。
  3. 私聊只投本人:夜间私聊只投给该玩家的会话;对真人是 wake:false(不触发其模型回合)。

9. 文档

npm 页面上,下面的相对链接不会指向包内文件;这里给的是随包路径(npm 安装后在 node_modules/dsh-werewolf-dealer/ 下)。

文档 路径 内容
规则卡 docs/新版一夜狼人杀规则卡.md 规则权威:角色、牌堆、流程、胜负
入座方针模板 docs/AGENTS.入座模板.md 给 AI 会话的工作区纪律(复制到工作区并改名 AGENTS.md)
狼人杀方法论 docs/狼人杀方法论.md 打法、判据与口径
关键机制 关键机制.md 改动代码前必读:行为口径、坑与判据
更新记录 CHANGELOG.md 逐版改动与当时的理由
旧版详细手册 仓库 archive/README-v1.36.md v1.x 完整说明(含历史细节),不随包发布

10. 常见问题

  • 设置里看不到「狼人杀庄家」 ⇒ 插件没启用,或改完没重启。
  • AI 不发言 ⇒ 它没被唤醒;看房间消息里的提及,或 /ww-nudge 手动催一次。
  • 收票卡住 ⇒ 用 /ww-close-vote 收口;缺票者按规则记弃票,也可 /ww-fill-abstain 一次性代记。
  • 没有复盘文件 ⇒ exportDir 为空(默认不导出);在设置页或 /ww-config 里确认。

11. 许可与来源

MIT。本包内含 dsh-chat 与 dsh-bridge 的本地魔改版(同为 MIT,作者 Xiang Bai), v2.0.0 起并入本包;一夜狼人杀庄家为本项目原创。完整许可见 NOTICE.md 与 vendor/。

—/ 5

No ratings yet

Verified DSH bundle

Commit d1e06f436c89

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout