Amakurai/dsh-liketavern
dsh-liketavern
A DeepSeek Harness (dsh) plugin — turns dsh web into a SillyTavern-style roleplay frontend: character cards, prompt presets, lorebooks, personas, BM25 long-term memory, world-state deltas, and rollback-able floor operations, all on the dsh agent runtime.
Install
npx @deepseek-ai/dsh plugin --profile web add github:Amakurai/dsh-liketavern#v0.5.9Restart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-liketavern)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from Amakurai/dsh-liketavern, cleaned of badges and images.
dsh-liketavern
基于 DeepSeek Harness 原生 Agent 运行时的 SillyTavern 角色扮演插件
dsh-liketavern 将 SillyTavern(ST)的角色卡、提示词预设、世界书、正则、EJS 模板与前端交互卡生态引入 DeepSeek Harness(dsh)。它不另起独立的发信通道,而是直接运行在 dsh 的会话与 Agent 管线之上——由宿主负责模型连接、长上下文历史与工具调度,由插件负责提示词编排、沙箱渲染与事务级剧情状态管理。
为什么选择 dsh-liketavern
1. 剧情状态与分支真正隔离,重试绝不“串味”
传统角色扮演工具在重新生成或回退历史消息时,长期记忆、世界状态与卡片变量往往停留在最新轮次,导致旧分支带入“未来记忆”。
在 dsh-liketavern 中,角色资产(角色卡 / 预设 / 人设)全局共享,而剧情状态(Story)严格按分支隔离。每一轮楼层写入均先记录预写式日志(WAL)再落盘正文。无论是重新生成、编辑 AI 回复,还是通过宿主消息栏「在新对话中分支」,系统都会先在独立草稿中回滚未继承楼层的派生记忆、世界状态与变量,再原子发布并绑定子会话——原时间线与新分支互不干扰。
2. 不打断叙事的 Agent 长期记忆与动态世界观
插件围绕长线剧情构建了三层上下文机制:
- 三级世界书(Lorebooks):支持全局、角色专属与当前剧情私有世界书,兼容常驻条目、递归扫描、次要关键词、反向排除与逻辑与/或触发。
- 世界变化层(World State Delta):记录设定在故事推进中的新增、变更与失效,使静态设定随剧情自然演进。
- BM25 长期记忆:融合词频相关性与时间衰减权重。日常对话中模型直接流式回复,仅在缺少设定或需要固化已确定事实时,才通过宿主原生 PTC(程序化工具调用)按需调用
tavern_*工具读写记忆与设定;超出容量后在会话空闲期自动生成可溯源的归档摘要。
3. 开箱即用的 ST 生态兼容:EJS、酒馆助手与原生 MVU
- 角色卡与预设:支持 V1 / V2 / V3 规范的 PNG 与 JSON 角色卡导入导出、多开场白切换、内嵌世界书与 ST 提示词预设。DeepSeek 官方 API Key 通道支持按冻结的预设布局直接投影消息结构。
- EJS 模板与持久检查点:内置兼容 ST 语法的 EJS 提示词模板引擎,支持条件、循环、异步宏、世界书装饰器及
lodash、zod、faker、jsonrepair等工具库,并支持跨步骤的 QuickJS 虚拟机快照恢复。 - 酒馆助手子集与原生 MVU:支持全局 / 预设 / 角色三级脚本库、剧情变量持久化、同页事件通信与局部消息刷新;内置原生 MVU(Model-View-Update)状态更新执行器,兼容数据流驱动的复杂状态栏角色卡。
4. 默认零信任的第三方代码隔离
角色卡附带的正则、模板与 HTML 脚本均视为不受信任输入:
- 提示词组装、世界书评估、正则替换、Markdown 渲染与 EJS 模板统一在可超时终止的 Worker 线程及 QuickJS/WASM 沙箱内执行,不暴露 Node、DOM、网络或模块加载器。
- HTML 交互卡面运行在无同源权限的
sandbox="allow-scripts"iframe 中,仅通过受控桥接协议执行枚举业务操作与高度同步,杜绝第三方卡面脚本逃逸至宿主主窗口。
安装与升级
前置要求:Node.js
>= 24.0.0、DeepSeek Harness0.2.1-rc.3、pnpm,且已在dsh中配置好可用的模型。首次使用请先参阅 DeepSeek Harness 官方文档。仓库已内置预编译的lib/产物,安装时无需本地构建。
桌面端安装
打开 dsh 桌面端 「插件 → 添加插件」,填入以下仓库标签地址并安装,完成后重启桌面端:
https://github.com/Amakurai/dsh-liketavern.git#v0.5.9
Web / CLI 在线安装
# 安装插件到 web profile
dsh plugin --profile web add github:Amakurai/dsh-liketavern#v0.5.9
# 确认安装状态
dsh plugin --profile web list --depth 0
# 启动(或重启)dsh web
dsh web
Release 离线包安装
从 v0.5.9 Release 下载 dsh-liketavern-0.5.9.tgz(可配合同页的 SHA256SUMS.txt 校验完整性),在下载目录执行:
dsh plugin --profile web add ./dsh-liketavern-0.5.9.tgz
dsh web
版本检查与升级
- 检查更新:在
dsh内进入 「设置 → Tavern → 关于」,可查看当前版本并检测 GitHub 最新正式发布与宿主版本兼容性。 - 桌面端升级:先查阅 CHANGELOG.md 并备份数据;在桌面端「插件」管理页卸载旧版本,再用新版标签地址重新添加,安装后完全退出并重启桌面端(「关于」页仅提供版本查询,不直接执行覆盖安装)。
- Web / CLI 升级:使用新版标签重新执行
dsh plugin --profile web add并重启dsh web。升级会自动沿用既有数据目录。
快速上手
- 导入角色卡
打开 「设置 → Tavern → 角色」,点击「导入角色」选择 PNG 或 JSON 角色卡。导入前会先展示静态兼容性检查报告,若卡片内嵌世界书可一并选择是否导入。 - 创建 Tavern 会话
新建会话时将模式切换为 「Tavern 模式」,在欢迎页点选要扮演的角色卡(新会话不会强制自动绑定默认卡)。 - 选择开场白并开局
若角色卡带有多条开场白,通过‹ ›切换心仪的开局场景,点击「开始对话」即可发送第一条消息。 - 在对话中分支、续写与代答
- 重新生成 / 编辑回复:在任意 AI 消息操作栏点击重试或编辑,插件会自动切入新分支并回滚后续楼层状态,随时可通过消息下方的
‹ n/m ›在兄弟分支间切换。 - 继续生成:顺着当前回复末尾继续扩写。
- AI 代答:让模型以
{{user}}视角草拟下一句台词并自动复制到剪贴板。
- 重新生成 / 编辑回复:在任意 AI 消息操作栏点击重试或编辑,插件会自动切入新分支并回滚后续楼层状态,随时可通过消息下方的
日常使用指南
配置入口与作用域
flowchart LR
subgraph Assets["全局共享资产 ($DSH_HOME/dsh-tavern/)"]
Card["角色卡 (Characters)"]
Preset["提示词预设 (Presets)"]
Persona["用户人设 (Personas)"]
GlobalWI["全局/角色世界书"]
end
…

