hewzhew/dsh-agent-rp · 上手攻略
- 仓库:hewzhew/dsh-agent-rp
- 链接:https://github.com/hewzhew/dsh-agent-rp
- 分类:ai · agent-rp · sillytavern-migration
- 作者:Tom
- 更新:2026-08-15
是什么
DSH Agent RP 是 DeepSeek Harness(DSH)的一个插件,用于将 SillyTavern 生态中的角色卡、预设、聊天记录迁移到 DSH 原生会话环境中继续角色扮演(Role-Playing)。
SillyTavern 是目前最流行的本地角色 RP 前端,拥有大量社区卡片和预设生态。DSH(DeepSeek Harness)是 DeepSeek 在 2026 年 8 月初开源的 agent harness,核心特点是"一切皆插件",甚至 agent loop 本身也是一个可替换的插件。DSH Agent RP 插件让用户无需放弃已有的 SillyTavern 卡片资产,直接在 DSH 里继续角色对话,而不需要自己维护 SillyTavern 服务器。
简单说:你积累了几百张 SillyTavern 角色卡,现在可以把它们带到 DSH 这个新一代 agent 框架里用。
解决什么问题
- 生态迁移:SillyTavern 积累了大量 PNG/JSON/CHARX 格式的角色卡和社区预设,这些资产无法直接用于其他框架。DSH Agent RP 提供了 importer,让这些卡片无缝进入 DSH。
- 世界书与正则:SillyTavern 的 World Info(世界书)使用正则关键词触发,DSH Agent RP 在隔离的 QuickJS 运行时中执行这些正则,不把危险代码交给 Host JavaScript 执行,兼顾功能与安全。
- 轻前端兼容:部分角色卡附带轻量 HTML 界面和 Tavern Helper 脚本,插件也在隔离脚本环境中运行这些内容。
- EJS 模板隔离:SillyTavern 预设中常见的 EJS 模板在独立 QuickJS/WASM 运行时执行,不会访问宿主文件、网络或进程。
- 持久记忆:支持重写、续写、切换回复版本,同时保留明确的长期记忆。
快速安装
前置依赖
- Node.js(建议最新稳定版)
- pnpm(
npm i -g pnpm) - 已安装的 DSH(
npx @deepseek-ai/dsh@latest,至少 0.1.0-rc.6)
标准安装(无需 clone)
# 安装插件
npx -p @deepseek-ai/dsh@latest dsh plugin --profile web add github:hewzhew/dsh-agent-rp#main
# 启动 DSH
npx -p @deepseek-ai/dsh@latest dsh --profile web
⚠️ DSH 版本声明为 developer preview(
0.1.0-rc.6),生产环境使用请自行评估稳定性。
Android / Termux 安装
ARM64、Android 11+ 设备上可以直接在 Termux 本机运行,无需电脑保持开机:
curl -fsSL https://raw.githubusercontent.com/hewzhew/dsh-agent-rp/main/scripts/install-termux.sh | bash
dsh-agent-rp --port 3080
首次安装需要编译原生模块,耗时比普通插件更新长。安装完成后,在手机浏览器打开 http://127.0.0.1:3080。添加到主屏幕后可获得全屏 Web App 体验。
⚠️ 手机重启后需要重新运行
dsh-agent-rp --port 3080。角色卡和会话保存在~/.dsh,安装器不会删除。
更新插件
npx -p @deepseek-ai/dsh@latest dsh plugin --profile web update @dsh-experimental/dsh-agent-rp
贡献者安装(需修改源码)
git clone git@github.com:hewzhew/dsh-agent-rp.git
cd dsh-agent-rp
pnpm install
pnpm run build
dsh plugin --profile web add .
核心用法
第一次开聊(5 步)
- 在 DSH 中新建空白会话
- 点击输入框下方「选择角色」
- 选择已有角色,或导入 PNG、JSON、CHARX 角色卡
- 选择开场(Opening)与 Persona,然后点击「开始对话」
- 进入会话后,可在标题栏打开角色信息、角色库、预设、世界书或调试视图
导入 SillyTavern 聊天记录
在角色会话中,可以附加一份 SillyTavern JSONL 格式的聊天记录:
- 将对应角色卡和 JSONL 放在同一条消息中,可以一次迁移角色身份与历史记录
- 导入会创建新的角色对话,不会修改源文件或来源会话
调试视图
在沉浸视图与调试视图之间切换,可以检查实际生效的提示内容,对排查卡片兼容性问题非常有用。
诊断工具
启动或导入角色卡时遇到问题,运行:
dsh-agent-rp-doctor
可生成一份脱敏体检报告(不读取令牌、角色卡或会话内容),直接贴到 GitHub Issue。
典型适用场景
| 场景 | 说明 |
|---|---|
| SillyTavern 用户迁移 | 已有大量角色卡资产,想尝试 DSH 新框架但不想重新建卡 |
| 多角色 RP 存档管理 | DSH 的角色库支持收起/恢复角色,不影响已有对话 |
| 深度 RP 调试 | 调试视图检查实际生效提示,适合卡片创作者 |
| 移动端 RP | Android/Termux 方案让手机也能跑完整 RP,无需电脑 |
| 安全沙箱测试 | QuickJS 隔离运行环境测试社区卡片的 EJS/正则行为 |
坑与注意
-
早期安装器版本不迁移:如果之前用老安装器装过,启动错误中出现
.dsh\plugins\dsh-agent-rp路径,需要先把该目录移出plugins作备份,确认 DSH 能启动后再用新 profile 命令安装。不要删除整个.dsh,会话数据和旧插件目录是分开的。 -
EJS 模板与正则的 QuickJS 隔离:不是所有 EJS 特性都支持;详细兼容表见
docs/ejs-compatibility.md。某些依赖 Node.js 原生模块的 EJS 代码会失败,但单条失败不会中断会话。 -
Tavern Helper 脚本限制:只能加载内置或玩家明确批准来源的 HTTPS 模块,不能直接访问 Host 页面、文件或进程。
-
群聊/多人暂不支持:当前里程碑只聚焦单角色 RP,不支持群聊、多人互动或重前端/独立前端。
-
Termux 编译耗时:首次安装需要编译原生模块,比普通插件更新慢,需要耐心等待。
-
Token 安全:在 Issue 或日志里不要公开自己的 NPM Token。
与同类对比
| 特性 | DSH Agent RP | SillyTavern(原生) | LangChain Agent |
|---|---|---|---|
| 角色卡兼容 | PNG/JSON/CHARX 全支持 | 原生支持 | 不支持 |
| 世界书正则 | ✅ QuickJS 隔离执行 | ✅ 原生执行 | ❌ 不支持 |
| EJS 模板 | ✅ QuickJS/WASM 隔离 | ✅ 原生执行 | ❌ 不支持 |
| DSH 插件生态 | ✅ 接入 DSH 体系 | ❌ 独立运行 | ✅ LangChain 生态 |
| 移动端支持 | ✅ Termux | ✅ 可配但资源重 | ❌ |
| 多角色群聊 | ❌ 规划中 | ✅ 支持 | ✅ 支持 |
| 开发活跃度 | 🔥 2026-08 新兴 | 成熟稳定 | 成熟 |
推荐逻辑:如果你已有 SillyTavern 资产且想体验 DSH 新框架,选 DSH Agent RP;如果你只是需要一个稳定的 RP 前端,继续用 SillyTavern;如果你要构建复杂的 agent 工作流,用 LangChain/CrewAI 等。
一句话推荐结论
DSH Agent RP 是把 SillyTavern 角色资产带入新一代 agent harness 的桥梁插件,适合已有大量卡片积累、想探索 DSH 生态的玩家,但目前仍处于早期预览阶段,功能边界和稳定性需要自己把控。
最小可跑命令
# 前置:Node.js + pnpm
node --version # 建议 ≥18
pnpm --version
# 安装 DSH + 插件(一行命令)
npx -p @deepseek-ai/dsh@latest dsh plugin --profile web add github:hewzhew/dsh-agent-rp#main
# 启动 DSH
npx -p @deepseek-ai/dsh@latest dsh --profile web
# Android 端诊断
dsh-agent-rp-doctor
环境:Node.js ≥18,pnpm,DSH 0.1.0-rc.6(developer preview),ARM64 Android 11+(Termux 可选)
原始 commit: https://github.com/hewzhew/dsh-agent-rp/commit/main(本版基于 main 分支 2026-08-15 读取)