DeepSeek Harness (DSH) 是一个插件化系统。默认情况下,AI 更多扮演对话者而非主持人。dsh-diceframe 填补了这一空白,为 DSH 添加了骰子、检定判定、世界书和角色卡,以便 AI GM 能够主持结构化的 TRPG 会话,而不是无结构的闲聊。
环境要求¶
- 已安装 DSH CLI (
dsh)。 - Node.js ≥ 22。
安装¶
使用官方安装命令添加插件:
dsh plugin --profile <名字> add dsh-diceframe
核心功能¶
骰子与检定¶
插件提供两个核心工具:roll_dice 和 resolve_check。
-
roll_dice 工具
- 支持常见骰子格式:3d6、d20、d100、3d6+2。
- 支持高级规则:2d20kh1(优势)、2d20kl1(劣势)、4d6dl1。
- 支持特殊机制:1d6!(爆炸骰)。
- 提供加密随机数生成与逐骰明细。 -
resolve_check 工具
- 支持模式:d100、d20、求和。
- 包含判定结果:大成功、成功、失败、大失败,以及判定 margin。
世界书与角色卡¶
- 支持 Markdown 格式的世界书与键值格式的角色卡。
- 支持将内容注入系统提示词,作为 AI 主持的依据。
DiceFrame 互通¶
插件支持直接导入 DiceFrame 生态内容,无需转换。
- 单个文件导入:支持单个世界书 JSON 或角色卡 JSON,自动识别路径。
- 内容包导入:支持导入包含
plugin.json的整个内容包目录,一键全量导入(含 worlds、characters、npc、items、spells、classes、rules)。
斜杠命令与会话状态¶
- 斜杠命令:
/trpg:开团,GM 会用已加载世界书的「起始场景」直接开场。/roll:掷骰,直接执行不经过模型。/check:检定,直接执行不经过模型。/state:查看当前桌台状态。- 会话状态追踪:通过
table_state与table_update工具,记录世界、玩家角色卡、NPC、场景与先攻顺序。
存档互通¶
插件实现了 DiceFrame 与 DSH 之间的关键状态搬运。
- 导入:使用
save_import工具,可读取 DiceFrame 的state.json或可移植 zip,将世界、角色、场景载入当前会话。 - 导出:使用
save_export工具,将当前进度导出为 DiceFrame 可识别的存档格式(state.json+chatlog.jsonl+ zip)。
配置¶
在 profile 的 cordis.patch.yml 中配置六个独立插件行(dsh-diceframe/dice、gm、lore、commands、table、save)。
通用配置示例:
- id: dsh-diceframe-lore
config:
enabled: true
world_book: |
## 迷雾王国
大陆被永雾笼罩,只有灯塔之城仍有人烟。
character_card: |
姓名: 艾琳
职业: 游侠
注意事项¶
- 纯 ESM、无构建步骤,运行时零依赖(仅 Node 核心与自身模块)。
- 不内置任何第三方/IP 同人内容包。
- 仅搬运关键状态(世界/角色/场景/历史)互通,非完整机制复刻。
参考资料¶
- 插件目录:https://www.skillhub.cn/plugins/diceframe/dsh-diceframe
- GitHub 仓库:https://github.com/diceframe/dsh-diceframe