前言¶
自己在 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