
把 DeepSeek Harness 变成 RPG 工作台:dsh-rpg-workstation 插件安装与玩法全解
把 DeepSeek Harness 变成一个 RPG 工作台:每次完成一个对话回合就获得经验值,升级、解锁成就、保持每日连击,右下角浮动的游戏面板实时展示你的战绩。
Game-ify your DeepSeek Harness usage — earn XP per completed conversation turn, level up, unlock achievements and keep daily streaks, with a floating RPG dashboard in the web UI.
声明在前:这个插件是我本人开发的,已经开源放出来供大家随意使用(MIT 协议)。仓库地址:https://github.com/Jay-R-J/dsh-rpg-workstation。下面把它的安装、用法、公式和架构一五一十讲清楚,照着做就能让你的 DSH 也变成 RPG 工作台。
如果你已经读过我之前那篇 DeepSeek Harness 上手全攻略,应该对”插件即一行声明”这套 Cordis 哲学不陌生了。dsh-rpg-workstation 这个插件,就是把这套哲学用在一个特别有意思的方向上——给你的 AI 工作台加一层游戏化外壳。
说白了,它不改变 DSH 的任何原有能力,只是在右下角给你长出一个浮动面板:你跟 AI 每聊完一个回合就涨经验,工具用得多有加成,连续每天聊有连击加成,攒够经验升级,解锁成就,称号从”新手”一路爬到”传说”甚至”圆满”。原本枯燥的”再让它改一版”变成了”再升一级”,特别能治”提不动需求”的拖延症。
环境要求
在装之前,先把基础环境对齐:
| 依赖 | 版本 | 说明 |
|---|---|---|
| Node.js | >= 18 | 构建与运行 |
| DeepSeek Harness CLI | 任意较新版本 | 必须先全局安装(npm install -g @deepseek-ai/dsh),否则 dsh plugin 等命令不存在 |
| DeepSeek Harness | web profile | 插件面向 dsh web 界面 |
关键点:这个插件是面向 web 界面的,TUI / headless 模式下不会显示面板(事件逻辑仍然会跑,但你看不到)。所以使用场景就是浏览器里开 dsh web。
安装
前置:先全局安装 dsh 命令行工具
没有它就没有 dsh plugin / dsh web 这些命令:
1 | npm install -g @deepseek-ai/dsh |
如果这步已经做过(前面那篇攻略里就装过),直接跳到下一步。
一条命令安装本插件
1 | dsh plugin --profile web add dsh-rpg-workstation |
dsh plugin add 会自动把包加入 profile 层叠(包声明了 dsh.bundle.patch),无需手写补丁——这是 DSH 插件机制的好处之一,省掉手动改 cordis.patch.yml 的麻烦。
重启 dsh web
安装完成后必须重启 dsh web,界面右下角才会出现 RPG 面板:
1 | # 先 Ctrl+C 停掉旧的 dsh web 进程,然后重新启动 |
卸载
不想要了就一条命令走人:
1 | dsh plugin --profile web remove dsh-rpg-workstation |
原理速记:dsh 的 profile 由一层层补丁拼装。
cordis.patch.yml里的- insert:是标准补丁写法,id是该行的稳定句柄,name是 loader 要解析的 npm 包名(必须先装进 profile 的node_modules)。客户端 bundle 由 dsh 的dsh.client字段扫描自动打包,所以lib/产物 +dsh两个字段就够用了,不用自己写打包配置。
使用方法
面板挂在界面右下角(shell.overlay 插槽),一切都是自动的——聊着聊着就攒经验,完全不用主动点按钮。
怎么得分
| 做什么 | 得到什么 |
|---|---|
| 正常对话 / 让 AI 干活 | 每完成一个回合 +10 XP;回合内每调用一次工具额外 +2 XP(单回合加成上限 +20) |
| 连续每天对话 | 保持连击;3 / 7 / 30 天时 XP 分别乘以 1.1 / 1.25 / 1.5 |
| 完成每日任务 | 每完成一个任务 +20 XP(次日刷新) |
| 达到里程碑(5 / 10 / 15 级) | 升级提示切换为专属文案 |
| 解锁 14 个成就 | 称号变为「圆满」,卡片出现高亮彩蛋 |
面板交互
| 操作 | 效果 |
|---|---|
| 单击面板头部 | 折叠或展开主体 |
| 按住头部拖动 | 把面板移动到屏幕任意位置(至少保留 8 px 在屏幕内,防止拖丢) |
| 单击成就圆点那一行 | 展开详情区(可键盘聚焦 + Enter / Space 切换) |
| 点击「导出」按钮(详情区底部) | 下载当前存档为 rpg-data-YYYY-MM-DD.json |
| 点击「导入」按钮(详情区底部) | 选择之前导出的 JSON 文件,替换当前存档(导入成功后下一次轮询自动刷新面板) |
详情区里有什么
展开详情区后可以看到这些区块:
- 今日任务:对话达人、工具狂人、保持连击,每个显示进度和奖励状态;
- 签到日历:最近 7 个自然日,活跃日实心,今天画品牌色外框;
- 本周报告:7 根柱状图(以 XP 为高度、活跃日实心、周末半透),下方汇总 7 日总回合数和总 XP;
- 统计:累计工具调用、累计文件写入、今日回合数;
- 成就列表:14 个成就逐行列名称、说明、解锁状态;
- 存档:导出和导入按钮。
功能一览
把核心能力列一遍,心里有个数:
- 经验与等级 — 每回合
(10 + min(20, 工具数 × 2)) × 连击加乘;level = floor(sqrt(xp/100)) + 1 - 连击加乘 — 连击 3 / 7 / 30 天 → XP × 1.1 / × 1.25 / × 1.5
- 14 个成就 — 对话数、等级、工具调用、文件写入、连击、单日回合、深夜 / 清晨各成一档
- 每日任务 — 对话达人 / 工具狂人 / 保持连击,每完成一个 +20 XP,次日刷新
- 称号系统 — 新手 → 学徒 → 冒险者 → 勇者 → 大师 → 传说(全成就时为「圆满」)
- 每周报告 — 最近 7 个自然日柱状图(以 XP 为高度)+ 周汇总
- 存档导出 / 导入 — 一键下载
rpg-data-YYYY-MM-DD.json;导入走与加载相同的归一化路径(旧版或手改存档不会留下 undefined / NaN 空洞) - 全成就彩蛋 — 14 个成就全部解锁的瞬间,称号变为「圆满」,卡片描边与标题切换为品牌色,并弹出一行停留更久的提示
- 持久化 — 保存在
~/.dsh/rpg-data.json(尊重DSH_HOME环境变量),原子写入 + 串行队列,进程崩溃不损坏存档 - 界面克制 — 使用宿主主题变量(浅色 / 深色自动适配)、无 emoji 噪音、支持
prefers-reduced-motion
最后一条挺关键:它不抢戏。面板用的是宿主的主题变量,深色浅色自动跟,没有花里胡哨的 emoji 堆砌,对减少动画偏好的用户也友好。
架构
了解架构有助于你判断”这个插件能改到什么程度”以及”它会不会动到我别的会话”。
1 | +-- Host (Node.js) -------------------------------------------+ |
对照前一篇攻略里讲的”动态插件分宿主半 / 客户端半”模型,这个插件的架构完全是标准结构:
- Host 面(
src/index.ts)负责后端:监听会话事件、算分、落盘、状态 / 导出 / 导入三个路由。 - Client 面(
src/client/)负责界面:插槽注册、样式注入、轮询渲染。
两端只交换纯 JSON,通过同源 fetch 通信,没有跨进程 RPC。这也是为什么它能稳定常驻——通信链路简单,不容易出问题。
玩法公式
想精打细算刷 XP 的,把公式记牢:
| 项目 | 公式 |
|---|---|
| 每回合经验 | (基础 +10 + 工具加成 min(20, 工具数 × 2)) × 连击加乘(仅 turn/end 且 reason.kind === 'completed' 时计入) |
| 连击加乘 | 连击 3 / 7 / 30 天 → × 1.1 / × 1.25 / × 1.5 |
| 等级 | level = floor(sqrt(xp / 100)) + 1 |
| 升下一级阈值 | level² × 100(xpAtLevel(level + 1)) |
| 当前级跨度 | (2 × level - 1) × 100(进度条分母) |
| 连击 | 当天首次对话 → 1;连续每天 → +1;中断一天 → 归零 |
| 称号 | 1-2 新手 / 3-4 学徒 / 5-6 冒险者 / 7-9 勇者 / 10-14 大师 / 15+ 传说;全成就时覆盖为「圆满」 |
| 行为统计 | 累计工具调用(tool/call 事件)、文件写入(write / edit 工具)、今日回合数 |
几个值得注意的细节
等级公式是开根号,不是线性。 早期升级很快,到中后期越来越慢——这是 RPG 经典设计,让你前几级尝到甜头,后面靠连击加成和每日任务维持动力。
连击加成是乘法不是加法。 30 天连击直接 ×1.5,相当于每回合 XP 半价。所以保持每天聊一句比某天猛聊要划算得多。
工具加成上限是 +20。 也就是说一个回合里调 10 次以上工具,加成封顶。设计上鼓励你让 AI 真正干活(多调工具),但也不鼓励故意刷工具调用。
“完成回合”才计分。 半途取消、报错中断的不算。这是防刷机制——你得让对话真正完成,才有收益。
License
MIT 协议,可以放心用于个人和商业场景。
我的玩法建议
装上之后,我自己摸索出的几个习惯,给你参考:
早上第一件事先跟它打个招呼。不是为了什么正经活,就是保连击。一句话也算一个回合,+10 XP 到手,30 天连击保住。
把”让 AI 帮你做”当成默认选项。以前小改个文件还自己手敲,现在统一甩给 AI——不光省事,工具调用多了 XP 也涨得快(每个工具 +2 XP 呢)。
每日任务当成 todo list 用。”对话达人”、”工具狂人”这三个任务,本质就是提醒你今天有没有真正用上 DSH。完成了就有 +60 XP(3 × 20),相当划算。
到了 14 级再追求全成就。等级成就自然推进就行,工具调用 / 文件写入这种是”用着用着就有了”的。真正要刻意追求的是”深夜档”和”清晨档”——如果你不是夜猫子或早起党,这两个成就可能要专门熬一次。
每周一看周报。7 根柱状图能直观看出你这周哪天聊得多、哪天偷懒了。比单纯的”今日回合数”更有反馈价值。
与前作的呼应
如果你读过 DeepSeek Harness 上手全攻略,再回头看这个插件,会发现它正好印证了攻略里讲的几个核心机制:
- “一行插件”哲学:装它就一条命令,不需要改源码、不需要重启整个 dsh(只需重启 web 进程);
shell.overlay插槽:攻略里提到”插槽是界面里能塞 UI 的位置”,这个面板就挂在shell.overlay上,是 DSH 预留的”右下角浮层”位置;- 宿主 / 客户端两半架构:Host 管事件和数据,Client 管界面,标准结构;
- 版本不可变 + 审批:虽然是
dsh plugin add装的正式插件(不是动态插件),但同样走”补丁层叠 + bundle 自动打包”的标准流程。
所以这个插件不光好玩,它本身就是一个学习 DSH 插件开发的优质样例。如果你想自己写插件,扒一遍它的源码会比看文档更有用。
关于这个插件
dsh-rpg-workstation 是我自己写、自己用的项目,最初就是为了治自己用 DSH 时的”启动拖延症”——给一层数字反馈,聊一句就有 +10 XP 到手,心理门槛立刻低一半。写完发现效果不错,索性整理成标准插件开源出来,希望对同样想给 DSH 加点动力反馈的朋友有用。
- GitHub 仓库:https://github.com/Jay-R-J/dsh-rpg-workstation(源码、Issue、PR 都欢迎)
- 协议:MIT,可随意用于个人和商业场景
- 安装:
dsh plugin --profile web add dsh-rpg-workstation一条命令搞定 - 存档:本地
~/.dsh/rpg-data.json,纯 JSON 可导入导出,数据完全归你
用着有问题、有想加的成就或面板功能,欢迎去 GitHub Issues 反馈。后续我会根据实际使用情况持续迭代,比如加更多每日任务类型、周报导出 Markdown、成就之间互相联动之类的玩法。Star 一下是对作者最好的鼓励。
更新时间: 2026-08-17
作者: Jay
作者本人开发并开源(GitHub 仓库),MIT 协议。愿你的 DSH 工作台早日「圆满」。





