前言¶
在 DeepSeek Harness(DSH)里长期跑助手,环境往往不是几个配置文件那么简单:会话日志、角色卡与技能、已装插件及版本、各插件产生的数据、profile 下的 Cordis 配置,分散在 $DSH_HOME 和本机其它路径。普通「拷文件夹」备份很难回答:哪些文件该回到哪个绝对路径、插件该对齐哪个版本、哪些是个人扩展路径。
下面介绍社区插件 dsh-revivecoin(维护者 mllun),它按「助手由什么组成」扫描并打包成一枚 复活币(可还原目录),支持每日刷新、只读差异对比、带预备份的一键写回。插件归类为「记忆」,目录页见 SkillHub,源码与文档在 GitHub。
这是什么¶
dsh-revivecoin 是面向 DeepSeek Harness 的 Host 插件(包名 @local/dsh-revivecoin,当前版本 1.1.1,MIT 许可证)。它把当前实例上的会话、人格与预设、插件清单、插件数据、配置文件等,收进 $DSH_HOME/dsh-revivecoin/coins/<coinId>/,内含 manifest.json、manifest.md 与按范围镜像的 files/。还原时用 manifest 里的绝对路径写回,并在写回前自动备份现状。
核心流程可以概括为:
coin_create → coins/20261021-031036/ (manifest.json + manifest.md + files/)
coin_diff → 差在哪(只读)
coin_restore → 先备份现状,再写回
收什么:五个范围¶
复活币按 README 中的范围表组织内容(默认路径以 $DSH_HOME 为主,可通过配置扩展):
| 范围 | 收什么 | 默认位置 |
|---|---|---|
sessions |
会话日志;可按会话 id 只收一个 | $DSH_HOME/sessions/** |
persona |
人格卡、技能与预设 | $DSH_HOME/skills/** 及额外路径 |
plugins |
现场生成的 plugin-inventory.json(声明版本、已装版本、启用包、磁盘缺失项) |
生成文件 |
pluginData |
笔记本、记忆库、日记、语音库清单、画等 | $DSH_HOME/dsh-notebook、memos-plugin、whale-audio 等 |
config |
profile 的 package.json、cordis.patch.yml、cordis.yml、compatibility.json、pnpm-workspace.yaml、.npmrc 等 |
$DSH_HOME/profiles/<profile>/ |
大文件或目录可配置为只记清单(mode: list),超过单文件或总量上限时同样只记清单,明细会写在 manifest.md。
核心功能与工具¶
装好后插件向 agent 暴露四个工具(名称与参数以 README 为准):
| 工具 | 作用 |
|---|---|
coin_create(sessionId?, daily=true) |
扫描并生成复活币。daily=true 时一天只保留一枚:当天已有则刷新,没有才新建。 |
coin_list() |
列出历史币:id、时间、文件数与体积等;损坏的币只报可读原因,不中断列表。 |
coin_diff(coinId) |
只读对比:有变化 / 当前新增 / 已缺失 / 未打包,以及插件清单与版本变化。 |
coin_restore(coinId, confirm=true) |
还原;必须显式 confirm=true。先备份现状再写回,不删除用户文件。 |
还原顺序(固定):备份现状(任一项失败则中止)→ 版本检查(仅报告)→ 写回已复制文件 → 插件依赖提示(不自动安装)→ 生成 restore-report.md → 需自行重启 DSH 使配置与插件生效。
安全约束(摘要):不写入系统目录与正在运行的 DSH 安装目录;生成只读;还原只覆盖或新增;coin_restore 无 confirm: true 不写回;操作记入 logs/revivecoin.log。
安装与启用¶
环境要求:DeepSeek Harness(Cordis 插件宿主)、Node.js ≥ 20。README 说明其为纯 Host 插件,无第三方运行时依赖、无构建步骤(发行包含已构建产物)。
在本地已有插件目录的前提下,按官方 README 加载:
- 图形界面:设置 → 插件 → 从本地目录安装,选中插件根目录。
- 由 agent 安装:调用
plugin_manager,action: install_bundle,target为该目录的绝对路径。
插件以当前 DSH 进程权限读写本机路径;安装前请自行阅读 仓库源码 与 LICENSE,确认符合你的安全策略。
典型用法¶
生成与查看:
coin_create # 生成今天的币
coin_create(sessionId="<会话 id>") # 只收某一个会话的记录
coin_create(daily=false) # 强制新建一枚,不覆盖今天的
coin_list # 历史币
coin_diff(coinId="20261021-031036") # 差在哪(不改任何文件)
coin_restore(coinId="20261021-031036", confirm=true) # 还原
若希望每天自动刷新当天的币,可用 DSH 日程工具,例如:
sched_add action="生成/刷新今天的复活币(coin_create)" at=04:00 repeat=daily
数据落在 $DSH_HOME/dsh-revivecoin/:coins/ 存币,backups/ 存每次还原前的备份,config.json 为本机可选配置(不随包发布)。
配置要点¶
合并顺序:<DSH_HOME>/dsh-revivecoin/config.json 覆盖 cordis.patch.yml 里该插件行的 config。常用字段包括 profile、profileDir、extraPaths(按 section 挂额外绝对路径,mode 为 copy 或 list)、maxFileBytes(默认 16 MB)、maxTotalBytes(默认 512 MB)、maxSessionFiles(默认 200)等。设置页可通过 Host 导出的 Config schema(volatile 字段)与浏览器半注册的 bundle 配置卡片编辑部分项。
适用场景与注意事项¶
适合:需要周期性快照「整实例助手状态」、换机或重装前做可核对 diff、在可控前提下写回历史状态的用户。
务必知晓(摘自 README「注意事项」):
- 还原会跳过本次运行期间可能被改写的当前会话文件,避免写坏正在记录的对话。
- 不自动安装或升级插件;只给出缺失与版本差异提示。
- 不自动重启宿主;写回后需手动重启 DSH。
backups/不会自动清理。daily=true时同一天再次coin_create会刷新当天那枚币的files/,不是另建目录。- 还原是覆盖币内状态,不是合并;新产生的文件不会被动删除,可用
coin_diff预判。 - 币内记录的是绝对路径,跨操作系统不会自动转换路径。
若 DSH 已无法启动,可只读 coins/<coinId>/manifest.json,按 container → path 手动复制文件后再启动宿主。
结尾¶
dsh-revivecoin 把「会话 + 人格 + 插件清单 + 插件数据 + 配置」收成一枚可 diff、可带备份还原的复活币,适合把 DSH 助手当长期资产来维护。进一步了解:
- 目录页:https://www.skillhub.cn/plugins/mllun/dsh-revivecoin
- GitHub:https://github.com/mllun/dsh-revivecoin
社区插件目录由 SkillHub 等站点维护,与 DeepSeek / 幻方无官方从属关系;以仓库 README 与发布版本为准选用。