dsh-revivecoin:把 DSH 助手的「完整我」打成可还原的复活币

前言

在 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 加载:

  1. 图形界面:设置 → 插件 → 从本地目录安装,选中插件根目录。
  2. 由 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「注意事项」):

  1. 还原会跳过本次运行期间可能被改写的当前会话文件,避免写坏正在记录的对话。
  2. 不自动安装或升级插件;只给出缺失与版本差异提示。
  3. 不自动重启宿主;写回后需手动重启 DSH。
  4. backups/ 不会自动清理。
  5. daily=true 时同一天再次 coin_create 会刷新当天那枚币的 files/,不是另建目录。
  6. 还原是覆盖币内状态,不是合并;新产生的文件不会被动删除,可用 coin_diff 预判。
  7. 币内记录的是绝对路径,跨操作系统不会自动转换路径。

若 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 与发布版本为准选用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye