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.4.3Restart `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 的 dsh web 中使用角色卡、世界书与长期记忆,开启 Tavern 式角色扮演。
中文 | English
功能特性 · 核心概念 · 安装与升级 · 快速上手 · 日常使用
兼容范围 · 数据与备份 · 常见问题与诊断 · 文档指南 · 开发与调试 · 参与贡献
dsh-liketavern 是为 DeepSeek Harness(简称 dsh)打造的角色扮演插件。你可以直接导入 SillyTavern(简称 ST)规范的角色卡和提示词预设,在 dsh 原生环境中管理设定、推进剧情、分支出行和无损回滚。
- 宿主负责:模型接入、长上下文聊天历史、工具调度与 Agent 运行时。
- 插件负责:角色资产管理、ST 预设与提示词组装、剧情状态隔离(记忆/世界状态/变量)、交互卡与脚本沙箱。
- 开箱即用:内置 EJS 模板引擎、酒馆助手接口子集、原生 MVU 支持;界面默认跟随宿主语言。
💡 第一次使用? 建议先阅读环境要求与安装并跟随快速上手 5 步走体验第一场对话;若需迁移现有 ST 资产,请先核对核心概念与兼容范围。
功能特性
| 模块 | 特性与能力支持 |
|---|---|
| 🎭 角色卡与人设 | • 导入/导出 V1、V2、V3 规范的 PNG 与 JSON 角色卡<br>• 支持多开场白切换、内嵌世界书、卡内正则与 HTML 交互卡面<br>• 可恢复的收纳箱与防误删引用保护;人设提供全局/会话级 {{user}} 身份定义 |
| 📖 世界书与世界状态 | • 全局、角色专属、当前会话私有三级世界书体系<br>• 关键词触发(次要关键词/反向排除/逻辑与或)、常驻条目与递归扫描<br>• 剧情变化层(Delta Layer)自动记录设定在剧情中的新增、变更与失效 |
| 🧠 智能长期记忆 | • 基于 BM25 检索与时间衰减权重,模型在对话中按需自主读写<br>• 容量超限时在后台空闲期自动摘要压缩,并完整保留可溯源的原始归档 |
| 🌿 剧情分支与无损回滚 | • 重新生成、修改 AI 发言或回退时自动创建独立子会话<br>• 自动撤销未继承楼层的记忆、变量等剧情状态,原始会话与历史分支完好无损 |
| ⚡ EJS 模板引擎 | • 内置沙箱执行条件、循环、异步宏与装饰器<br>• 支持剧情/消息级变量、JSON/YAML 初值、JSON Patch、Zod、Lodash、Faker |
| 📦 交互卡与脚本沙箱 | • 严格隔离的 iframe 卡面沙箱,支持三类脚本库(全局/预设/角色)<br>• 剧情变量自动持久化,支持同页剧情事件、世界书读写与消息局部刷新 |
| 🔄 原生 MVU 支持 | • 可选自动初始化与回复收口后的变量更新执行器<br>• 更新任务失败保留重试队列;兼容角色展示正则声明的状态栏占位符 |
| 🛠️ 模型工具与辅助生成 | • 7 个专用 PTC 工具(记忆检索/写入/更新、世界书按条读取、世界状态更新、资产列表/读取)<br>• 支持 AI 代答(生成用户发言并一键复制)与沿上下文继续生成 |
🧩 智能工具调用:角色扮演默认直接流畅回复;仅在缺失关键设定或需要固化重要剧情事实时,模型才会精准调用工具,兼顾沉浸感与长期一致性。
核心概念
在开始使用前,了解以下核心概念有助于更好地理解插件的运作机制:
flowchart LR
subgraph Shared["共享资产 (复用)"]
Card["角色卡 (Character)"]
Preset["提示词预设 (Preset)"]
Persona["用户人设 (Persona)"]
end
subgraph Runtime["运行时 (隔离)"]
Session["宿主会话 (Session)"] --> Story["独立剧情状态 (Story)"]
Story --> Mem["长期记忆 / 变化层"]
Story --> Vars["卡片变量 / 局部世界书"]
Story --> WAL["事务回滚日志 (WAL)"]
end
Shared -.->|"绑定到"| Runtime
| 概念 | 说明与边界 |
|---|---|
| Tavern 模式 | dsh 的专用会话预设,用于激活本插件的角色扮演 Agent 运行时。新建会话时选择即可开启。 |
| 提示词预设 | 在「Tavern → 预设」中管理的 ST 提示词模板与结构配置。可绑定到会话,也可直接使用内置默认预设。 |
| 角色卡 vs 人设 | 角色卡定义 AI 扮演的角色身份与背景;人设定义你在故事中的身份,并为提示词提供 {{user}} 的姓名与设定。 |
| 世界书 / 记忆 / 世界状态 | 世界书提供静态世界观;记忆记录发生的剧情事实;世界状态动态维护世界设定在故事中的新增与失效。 |
| 会话 vs 剧情分支 | 会话记录线性的聊天消息;剧情保存插件内部的记忆、变量与状态。重新生成等操作会派生出子会话与独立子剧情。 |
| 原生 MVU | Model-View-Update 变量更新框架。插件内置了安全的轻量执行器,支持依赖数据流驱动的复杂角色卡。 |
安装与升级
环境要求
| 依赖项 | 最低要求 | 说明 |
|---|---|---|
| Node.js | ≥ 24.0.0 | 开发与 CI 环境均基于 Node 24 |
| dsh CLI / 宿主 | 0.1.7-rc.2 | 插件的宿主 Peer 依赖锁定此版本 |
| pnpm | 任意主流版本 | 用于 dsh plugin 自动拉取与管理依赖 |
| 模型配置 | 已在 dsh 中完成配置 | 确保在宿主中可以正常发起对话 |
📌 首次接触 dsh?建议先查阅 DeepSeek Harness 官方文档,运行一次
dsh web完成基础配置。
方式一:通过 dsh plugin 安装(推荐)
在终端中执行以下命令,固定安装到最新稳定标签:
# 1. 添加插件到 web profile
dsh plugin --profile web add github:Amakurai/dsh-liketavern#v0.4.3
# 2. 检查安装状态
dsh plugin --profile web list --depth 0
# 3. 启动 dsh web(若已在运行,请先停止再启动)
dsh web
本仓库已包含预编译的 lib/ 产物,无需本地配置 TypeScript 构建环境。
方式二:通过 Release 安装包(离线环境)
…
