酒馆管理面板:多角色卡、多世界书、多预设与会话级隔离,记忆总结、角色关系网、剧情选项一键发送,另有 NSFW 模式。完整效果需同时安装伴生插件 dsh-muv-engine 与 dsh-muv-table,用于渲染状态栏、剧情选项与变量表格。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-tavern
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:chen731215-dev/dsh-tavern-v2
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
⚠️ v2.0.0 破坏性更新:协议变更为 PolyForm-Noncommercial-Copyleft-1.0.0(禁止商用)。旧版 1.0.0~1.9.2 已全部废弃,不再维护。
⚠️ AI 助手注意:修改本项目代码前,请务必先阅读 AGENTS.md(或
.cursorrules/CLAUDE.md),了解代码规范、测试方法、提交规范和常见坑。未通过语法检查和重启验证的代码不要提交。
⚠️ 旧仓库已归档:本仓库的旧版本(MIT 协议)已归档在 dsh-tavern,只读。本仓库使用 PolyForm-Noncommercial-Copyleft-1.0.0 协议。
dsh-tavern-v2
🎴 为 DeepSeek Harness 打造的角色卡 / 世界书管理插件,导入角色卡就能开始角色扮演。
🔴 v2.7.19 更新要点(会话隔离)
完整说明见 CHANGELOG.md。
- 注入只看顶部 agent 预设:只有当前会话在 DSH 顶部选中了某个酒馆 agent 预设,
才会载入它的角色卡 / 世界书 / 预设模块 / 记忆;选
standard等其他预设则一个字符都不注入。 面板里的「生效范围」「当前会话绑定」不再影响注入(数据保留,仅兼容)。 - ST 预设导入:面板「导入预设」现在支持 SillyTavern 的 chat completion preset, 自动转成独立 agent 预设(结构占位、废稿、SPreset 配置会被丢掉)。
使用方式(隔离口径)
- 在
.agent-presets/里为每套角色建一个 agent 预设(面板「预设」页可新建/导入)。 - 卡、世界书、模块、记忆都挂在这个预设目录下 —— 它们属于预设,不属于会话。
- 聊天时在 DSH 顶部选择器选中这个预设;换预设 = 换内容,没选 = 不注入。
- 想彻底避免串台:不要依赖面板绑定;切会话后先确认顶部预设。
🔴 v2.7.17 更新要点(建议尽快升级)
完整说明见 CHANGELOG.md。
注:当前包版本 2.7.18 是纯文档修正版——运行时代码与依赖声明均未改动,仅版本号抬到 2.7.18, 功能内容止于 v2.7.17,所以下面的要点仍以 v2.7.17 为准。
- v2.7.17:修「装了插件却一个修复都拿不到」——两个伴生插件的依赖范围都钉死在旧版本。
原先声明
dsh-muv-table: ^0.2.2/dsh-muv-engine: ^0.3.2,而 0.x 的 caret 锁的是 minor (^0.2.2实为>=0.2.2 <0.3.0),实测satisfies('0.3.1', '^0.2.2')= false, 所以从 npm 装到的始终是muv-table@0.2.12+muv-engine@0.3.x—— table 0.3.1 的「世界书 JSON initvar 读不出 ⇒ 状态栏恒『未知』」等修复全部到不了用户手里。 已抬到^0.3.1/^0.4.1。本次只动版本号与依赖声明,运行时代码一字未改。 - v2.7.16:
tavern:card的正文组装搬进lib/server/assemble.js。另随本版一并发出两批改动:- 修正 4 个从未定义的
--dsw-*CSS 令牌——写法合规(名字格式、语法都对)所以三道闸门全放行, 但运行时静默失效。用户可见的修复:违禁词弹层「保存」按钮恢复背景色、世界书条目编辑器输入框 恢复边框、关系网标题改为跟随主题。面板panelHTML段内还有多处同类令牌,留待后续处理。 - 10-10 四笔修复:
presetStatus双 setter、golden 测试临时目录治理、 字符串字面量工具去重、pre-commit 钩子退出码三态。
注:后两批在 CHANGELOG 里仍挂在「未发布」标题下,属标题滞后——它们已随 2.7.16 的 tarball 发出(实测包内
setPresetStatusHtml由 2.7.2 的 0 处变为 6 处:lib/client.manager.bundle.js内 5 处、包内CHANGELOG.md内 1 处)。 - 修正 4 个从未定义的
更早:v2.5.2 ~ v2.6.0
v2.5.4 的完整说明见 docs/archive/RELEASE_NOTES_v2.5.4.md。
- v2.5.3(严重):修掉「开场白播种把会话日志写坏到永久打不开」——
报错特征是
SessionFormatError: system/message requires a protected first surface head。 根因:会话日志要求受保护 head 只能由「还没有任何 surface 事件时出现的system/message」 建立,而旧版播种抢先写了assistant/message。现在三处写入点共用闸门canAppendGreetingSurface():日志里已有system/message才允许再写。 已损坏的会话可以救回(删掉日志里那条抢跑消息即可,见 release notes)。 - v2.5.2:修掉「点 🎓 技能 的按钮后聊天输入框点不动」——技能卡片不再反复触碰宿主工具注册表,
且内容没变时不再重写
SKILL.md;另加输入框遮挡守卫(下次会直接说出是谁挡住了输入框)。 - v2.5.4:把已不可能生效的「自动播种开场白」整套机制删除(含状态位
greetingSeedEnabled)。 - v2.5.5:隐私清理 —— 仓库与发布包里残留的本机预设 id / 预设名 / 角色卡名已全部替换为虚构占位,无行为变更。
- v2.6.0:恢复成人向提示段的机制:面板「🎲 玩法 → 🔞 成人向提示段」可自行填写正文(存在本机
state.nsfwPrompt,不进代码/发布包、升级不覆盖),按会话注入并过统一生效范围闸门;默认关闭 + 空正文 ⇒ 升级零行为变化。
⚠️ 行为变化:新会话不再自动出现角色卡开场白;请用面板 「📌 开场白 → ➕ 注入开场白到会话末尾」 注入(要求该会话已经跑过至少一个回合)。
升级后请重启一次 DSH。
🆕 v2.4.0 更新内容
渲染职责交割给 dsh-muv-engine
本插件原先自带一套剧情/状态美化(beautifyContentEl),而 dsh-muv-engine 另有一套
更完整的状态栏级联。两套渲染器同时运行会互相覆盖:酒馆这套把 『』 表头与
- 😋 名字 当作对话行平铺,覆盖掉 muv-engine 结构化后的卡片,用户看到的是半成品。
现在渲染归 dsh-muv-engine,本插件只负责面板与数据:
- 三处调用点统一走
delegateBeautify(msgEl)→window.MuvEngine - 未安装 muv-engine 时静默跳过,本插件仍可单独使用
beautifyContentEl定义保留作为回退,但不再被调用
消息定位改用结构匹配
DSH 的消息容器类名是 CSS Modules 生成的哈希(历史上是 Sxvs8a_root,后来是
_markdown_kcgor_5),每次 DSH 重建 Web 资源都会变。写死任何一个哈希,都会在
某次 DSH 升级后静默失效——选择器匹配不到任何消息,整条美化链路全部不执行,而页面上
看不出任何报错。
现在按形状匹配(_markdown_<hash>_<n>)并用块级子节点把同名的文件类型图标排除掉,
另保留 [data-role="assistant"] 等显式标记退路。
其他修复
- 新建/复制预设后同步刷新预设绑定与 DOM 标签,修复「新建预设后添加角色卡/世界书 写进了另一个预设」
⚠️ 配套版本(随 v2.7.17 更新):当前需配合 dsh-muv-engine ^0.4.1 与 dsh-muv-table ^0.3.1。 注意 0.x 的
^锁的是 minor,装旧版伴生插件会拿不到已发布的修复。
📜 许可证
Copyright (c) 2026 chen731215-dev
本项目采用 PolyForm-Noncommercial-Copyleft-1.0.0 协议。
- ✅ 免费用于非商业用途
- ✅ 修改后必须使用相同协议开源
- ❌ 商业用途需要单独授权
完整协议文本见 LICENSE。
🔗 伴生插件
| 插件 | 说明 | 当前配套版本 |
|---|---|---|
| dsh-muv-table | MUV 变量表格编辑器 | ^0.3.1 |
| dsh-muv-engine | MUV 正则引擎 + 变量追踪 | ^0.4.1 |
📦 v2.3.0 更新(2026-08-31)
- 🎯 状态栏移到消息底部:世界/状态/状况/sese 状态卡渲染后统一追加到消息末尾(虚线分隔),剧情正文在前
- 🎯 选项交互修复:剧情选项点击改为 document 级事件委托(永不失效),输入框查找增强
- 🐛 转义标签还原:
<choices>/<Drama>/<style>等转义形态还原成真实标签再渲染,不再裸奔显示 - 🐛 预设单一事实来源:编辑器/选择栏/MUV 表格永远读同一份权威数据,保存后从磁盘重建描述、孤儿预设自动清理
- 🎨 CSS 统一 DSH 变量:背景/边框/文本/品牌色全部跟随主题
🚀 3 步开始
- 安装:DSH 插件市场搜索
dsh-tavern安装,重启 DSH - 导入:设置 → 酒馆管理 → 把角色卡 PNG/JSON 拖进去
- 开聊:点「💾 保存并注入」,直接开始聊天
AI 会自动读取角色卡和世界书,不需要手动贴设定。
✨ 能做什么
核心功能
🎭 角色卡管理 — 支持 SillyTavern 格式(PNG/JSON),多角色卡
📚 世界书 — 智能关键词注入,全局条目常驻、角色条目按需触发,省 60% 上下文
⚙️ 多预设 — 每个会话独立保存角色卡/世界书,切换对话自动加载
🎭 状态栏美化 — AI 回复中的「状态栏:」格式自动渲染为紫色状态卡(日期/时间/地点/用户列表)
✂️ 清理 — 自动剥离 AI 输出中的 草稿容器标签,正文干净
➕ 新建空白预设 — 新建预设默认完全空白(不复制上一个预设),另有一键「复制当前预设」
可选功能(默认折叠)
- 🧠 记忆总结 — 手动/自动总结对话,AI 能看到之前的剧情
- 🔗 角色关系网 — 总结时自动提取角色关系,可视化图谱
- 🎬 剧情选项 — AI 每次回复输出 3 个选项,点击继续
- 🔥 成人模式 — 强破限注入,需搭配成人词条预设使用
📦 安装
方法一:插件市场(推荐)
- 打开 DSH 设置 → 插件
- 搜索
dsh-tavern - 点击安装,重启 DSH
方法二:npm
dsh plugin add dsh-tavern
方法三:本地
下载源码复制到 DSH 插件目录,重启 DSH。
🎮 使用指南
1️⃣ 在酒馆面板设置角色卡 / 世界书 / 预设
打开 设置 → 酒馆管理,你会看到三个卡片区:
| 区域 | 作用 | 操作 |
|---|---|---|
| 🎭 角色卡 | 定义角色的人设、性格、说话方式、首条消息 | 拖入 PNG / JSON 角色卡文件(SillyTavern 格式),可导入多份 |
| 📚 世界书 | 定义世界观、场景、NPC、规则(按关键词触发省 token) | 拖入 JSON 世界书文件,或点「+ 新增条目」手动建 |
| ⚙️ 预设 | 预置写作风格、破限词条、行为模块 | 拖入 JSON 预设文件,或点「+ 新增条目」手动建 |
保存:三个区域的内容会自动写入当前预设的目录文件,无需手动保存。
💡 新建空白预设:点「+ 新建」创建的是完全空白的预设(无任何角色卡/世界书/词条),方便从零搭建;想基于现有预设改造就点「⧉ 复制」。
2️⃣ 生成 Agent 预设
角色卡/世界书/预设设置好后,该预设就是一个完整的「Agent 预设」——它同时具备:
- DSH 原生 Agent 预设:在 DSH 聊天顶部的预设选择器里可见、可选
- 酒馆注入内容:角色卡文本、世界书条目、预设词条会在每次请求时自动注入系统提示
切换「完整角色卡本体」请用聊天顶部预设选择器选择后新开会话;酒馆面板里的下拉只让 世界书/记忆/关系网 跟随。
3️⃣ 新建聊天并选择 Agent 预设
- 点 + 新会话(新建一个聊天)
- 在聊天顶部的预设选择器里,选中你要用的 Agent 预设(比如刚才配好的那个)
- 开始聊天——AI 会自动读取该预设的角色卡/世界书/词条,无需手动粘贴设定
⚠️ 关键:Agent 预设是在会话创建时绑定到聊天的(DSH 事件流记录)。所以先选预设,再开始聊。
4️⃣ 对已经生成的聊天修改角色卡/世界书,会有什么效果?
这是最容易困惑的一点,说清楚:
| 操作 | 对已有聊天的影响 |
|---|---|
| 修改角色卡(如改人设、加描述) | ✅ 立即生效:下一次生成回复时,AI 会用新角色卡。但历史已生成的消息不变(不会重写) |
| 修改世界书(加条目、改关键词) | ✅ 立即生效:后续请求按新世界书注入。历史消息不变 |
| 修改预设词条(加破限、改风格) | ✅ 立即生效:后续生成用新词条 |
| 切换当前会话绑定的预设 | ⚠️ 需在聊天顶部选择器切换(会写 DSH 事件流);酒馆面板的下拉只影响 世界书/记忆/关系网 跟随 |
| 删除/重命名预设 | ⚠️ 已绑定该预设的会话:删除后绑定失效(回退默认);重命名不影响绑定(按 id 绑定) |
一句话总结:修改角色卡/世界书/预设 = 对后续生成即时生效,历史消息保持不变。
5️⃣ 使用建议
- 想保持角色一致性:建好角色卡后尽量少改;要调整时直接改酒馆面板,下一次回复就生效,不用重开聊天
- 想开新剧情/新角色:用「+ 新建」建空白预设,配新角色卡,新开会话选择它——老会话的角色不受影响
- 角色卡和世界书分开管理:角色卡管"是谁",世界书管"世界长什么样",分开维护更清晰
- 记忆让剧情连贯:配合「记忆总结」功能,AI 会记住之前的剧情,修改角色卡后依然保持连贯
- 成人内容:在酒馆面板启用「成人模式」,并搭配成人词条预设(如破限词条)使用
📖 详细教程
见 TUTORIAL.md — 包含世界书配置、记忆总结、预设管理等详细说明。 (注:插件曾内置「成人模式强破限注入」与「通用增强层」,均已移除 —— 破限与文风请写在你自己的 ST 预设里。)
📄 许可协议
PolyForm-Noncommercial-Copyleft-1.0.0(源码公开 / 非商业共享)
Copyright (c) 2026 chen731215-dev
- ✅ 免费用于任何非商业用途(个人学习、研究、使用、修改、非商业分发)
- ✅ 可以自由修改,但修改后的衍生作品必须以相同协议开源(Copyleft)
- ❌ 禁止任何商业用途(含收费、广告、接外包、打赏变现等);商业用途需向作者单独获取授权
- 📝 分发时必须保留版权声明与协议全文,不得移除或更改
完整协议文本见 LICENSE。
因含非商业条款,不符合 OSI 对"开源软件"的严格定义,准确表述为"源码公开 / 非商业共享"。
作者:chen731215 | 仓库:https://github.com/chen731215-dev/dsh-tavern-v2
链接
同类插件
PC2005-cloud/dsh-pet#dsh-pet★ 3496
DSH Web UI 桌面宠物,Windows / macOS / Linux 三端可用:浏览器浮层或透明置顶桌面窗口,106 个透明动画、带挤压与粒子的甩抛反弹物理、随会话事件实时联动的工作状态气泡、碎碎念与带持久记忆的对话、余额展示、表情包配图、多开同屏,并支持直接放入的自定义动画与宠物种类(pet pack)。
Nagi-ovo/dsh-ads★ 682
2005 年中文站点风格的整活广告插件:侧栏广告/信息流/角落弹窗 + 假关闭叉,素材全虚构。
vlln/whale-girl★ 375
桌面宠物(QQ 宠物形态):右下角悬浮、可拖拽/投喂/玩耍。
yyh-001/dsh-meme★ 295
聊天表情包:纯文本斗图、情绪主动发图、像 QQ/微信 一样发图、AI 自动学图、自定义表情包。
a86582751/dsh-nexttavern★ 191
NextTavern 是面向 DeepSeek Harness 0.1.7-rc.2 Web 的长篇角色扮演插件,支持角色卡导入与创作、世界线、世界书、分层长期记忆、关键词/语义/混合检索、角色 Agent,以及角色卡或小说导出;支持 SillyTavern 角色卡导入,v0.2.9 修复分发与安装问题。
Sutera-Diffusus/dsh-whale-musume★ 156
鲸鱼娘桌宠:45 项成就、每日任务与周签到、三个小游戏、92 张立绘、620 条台词、成长日记、天气与节日反应、按工具类型切换工作姿态、跨端存档导出/导入(JSON 文件或迁移码)、无障碍模式,以及可选的 MiMo TTS 台词播报。数据只存放在宿主 localStorage,无遥测;已在 DSH 桌面端 0.2.0-rc.2 验收,兼容 0.2.1-rc.1/rc.2 与旧版 0.1.x Web。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。