前言¶
自己在 QQ 机器人里做跑团问答,常见做法是把规则手册塞进长上下文,再让模型硬答。问题是模型记的 COC 判定表经常不准,DriveThruRPG 上新、Chaosium 发布这类动态也超出上下文范围,玩家问「最近有什么免费的模组」时只能编。dsh-plugin-trpg 走的是另一条路:把跑团知识做成插件内的工具和本地中文知识库,动态内容走实时抓取,抓不到时退本地快照并标注来源。下面介绍这个插件。
这是什么¶
dsh-plugin-trpg 是 DSH 原生插件,维护者 NormalAorii,仓库 https://github.com/NormalAorii/dsh-plugin-trpg ,社区目录页 https://www.skillhub.cn/plugins/NormalAorii/dsh-plugin-trpg ,分类「联网工具」,GitHub 星标 1。它把「跑团桌边助手」拆成 17 个工具:查规则、选模组、掷骰判定、随机车卡、盯新上架的规则书和模组、看国内外跑团社区在聊什么,并把这些内容渲染成中文图文卡片发到 QQ。
回答策略是混合式的:优先用本地中文知识库(快、可离线),行业动态和社区热帖走实时抓取,抓不到退本地快照并明确标注来源,不编造价格与标题。
17 个工具¶
工具划分按用途走,不需要一次全记住。下面按调用场景分组。
入口和搜索
trpg_help:用户问「你能干嘛」「菜单」时返回能力菜单与示例问法。trpg_search:名字或关键词不确定是英雄、模组、术语还是规则时做全库模糊搜索。trpg_meta:查数据版本、条数、缺文件诊断、抓取缓存状态。
规则和系统
trpg_rules:COC 7e、D&D 5e 与通用规则的速查 Q&A,共 39 条。trpg_glossary:跑团术语速查,40 条,中英对照。trpg_systems:规则系统选型,12 个系统,含风格、难度、中文支持、入门路径。trpg_guide:入坑、当 KP、开团、线上团指南,12 篇。trpg_game:按规则名查。数据在data/games.json,目前收录 10 个系统(三角机构、COC 7e、D&D 5e、PF2e、Delta Green、Blades in the Dark、Cyberpunk RED、Mothership、FIST Ultra、Vaesen)。每条带商店价格、免费材料直链、社区入口,以及该规则专属的实时资讯源。
模组
trpg_modules:按系统、免费、低价、难度、关键词筛本地模组库,31 个模组。trpg_module:单个模组详情,含人数、时长、难度、简介、为什么值得玩、主持提示。
掷骰和车卡
trpg_dice:COC 判定/理智/对抗、D&D d20 优劣势、任意骰式(NdM±K、kh/kl),带中文判定等级。trpg_investigator:COC 7e 随机车卡,3d6×5 属性,HP/MP/SAN/MOV/DB、职业技能点与信用评级、姓名背景。
实时动态与社区
trpg_dtrpg:解析 DriveThruRPG 与 DMs Guild 的 RSS,固定取最新 25 条,支持free/cheap(≤$10)/keyword。trpg_chaosium:Chaosium 官方博客,按实时抓取、Node 直连、本地快照三级降级。trpg_news:EN World 新闻区 + Paizo 官方博客 + Modiphius 新闻,按日期合并。trpg_community:StackExchange RPG 热问、EN World 讨论区、机核跑团标签;channels: true时返回中文/英文社区渠道清单(共 33 条,中文 12、国际 21)。
卡片
trpg_card:渲染 1080 宽深色 PNG 卡片,kind覆盖 dtrpg、chaosium、news、community、module、modules、game、rule、dice、investigator、systems、help、meta。每张卡带卡片级中文概括(intro)与逐条中文导读(zh),模型可用同名参数覆盖成自己的话。生成后由模型调用qqbot_send_file发出。
安装与启用¶
这是标准 DSH 原生插件(package.json 的 dsh.bundle.patch + cordis.patch.yml + index.js 的 apply(ctx)),用 bundle 方式安装,目标路径按自己的工作区改:
plugin_manager { action: "install_bundle", target: "C:\\Users\\aorii\\Documents\\deepseek-harness\\default-workspace\\dsh-plugin-trpg" }
上面这条命令把插件装到指定目录。装好后 17 个 trpg_* 工具进入工具表,同时插件通过 systemPrompt.section 注入一段中文提示,告诉模型什么场景用哪个工具、要图时生成卡片后调用 qqbot_send_file。卸载用 remove_bundle,安装或数据出了问题先跑 trpg_meta 做诊断。
本地自测不依赖宿主服务,适合提交前跑一遍:
node dsh-plugin-trpg/scripts/smoke.mjs # 17 工具 21 用例契约冒烟
node dsh-plugin-trpg/scripts/cards-smoke.mjs # 5 张卡片渲染冒烟(需要 Windows)
node dsh-plugin-trpg/scripts/preview.mjs # 打印社区/新闻/DTRPG 的真实返回文本
node dsh-plugin-trpg/scripts/check-game-live.mjs # 排查某个规则实时源的链接与缓存
典型用法¶
安装之后直接在对话里问。几个可复现的例子:
- 问「DriveThruRPG 最近有什么免费模组」→ 触发
trpg_dtrpg,返回 RSS 中筛出的免费条目。 - 问「COC 母公司最近有什么新书」→ 触发
trpg_chaosium,优先实时抓取,失败退本地快照并在输出里标注。 - 问「帮我掷个理智检定」→ 触发
trpg_dice,返回中文判定等级。 - 问「随机来个调查员」→ 触发
trpg_investigator,出完整车卡文本。 - 问「三角机构是什么」→ 触发
trpg_game,返回规则简介、官方入口、商店价格、免费材料链接、社区与该规则的实时动态。 - 要图时说「生成一张图」→ 触发
trpg_card,卡片出来后模型调用qqbot_send_file发送。
适用场景与注意¶
适合两类人:一是拿 DSH 做 QQ 机器人的开发者,想给跑团群加一个会查规则、掷骰、看新闻的助手;二是想自己维护规则库的人,data/games.json 和 data/community.json 都是纯 JSON,照着加条目即可。
几个决定能不能用的限制,直接来自 README:
- DriveThruRPG 商品详情页被 Cloudflare 403,拿不到折扣力度、评价和详情介绍,只给标题、出版商、价格、RSS 简介与链接。
- Chaosium 实时抓取依赖宿主 web 服务(Node 直连会吃 403),纯 Node 环境会走本地快照。
- 卡片走 Windows PowerShell + System.Drawing,需要 Windows 与中文字体;其它平台会明确报错而不是静默出空白图。
- 机核跑团标签更新不频繁,界面带日期,不会伪装成「今天热门」。
trpg_game的「最新资讯」只来自data/games.json里为该规则声明的源,没声明源的规则只给官方入口与社区列表。- 有些站点本机网络直接抓不到(DMs Guild 商品页、Reddit、知乎、B 站搜索接口等),插件只提供本地库或社区渠道清单,不做站内抓取。
另外,插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)是否符合自己的部署约束;动态抓取的来源和字段随上游站点变化,出错先看 trpg_meta。
结尾¶
这个插件的价值在于把跑团咨询拆成确定性的工具和本地知识库,动态部分补一层实时抓取加快照降级,而不是让模型凭记忆硬答。目录页和源码:
- https://www.skillhub.cn/plugins/NormalAorii/dsh-plugin-trpg
- https://github.com/NormalAorii/dsh-plugin-trpg