dsh-plugin-bridge:可预览的跨 Preset 会话迁移

前言

在 DeepSeek Harness(DSH)里做长任务时,经常会在中途换工具预设:比如从「代码」切到「写作」,或从一套工具组合换到另一套。直接在原会话里切换 preset,历史里会留下旧工具装配的调用痕迹,新 preset 容易读到不兼容的上下文。

常见做法是手动复制对话、重新描述目标,或者开新会话从头交代。这两种方式都费时,且容易漏掉关键决策、文件路径或未处理的图片。

下面介绍 dsh-plugin-bridge(GitHub:Totoro-qaq/dsh-plugin-bridge)。它把当前会话折叠成固定五段交接摘要,先预览再迁移,在干净的目标 preset 里继续工作,原会话不做任何改写。

这是什么

dsh-plugin-bridge 是 DSH 的工作流类插件,维护者为 Totoro-qaq。项目在 GitHub 上有 112 stars、4 forks,npm 包当前版本为 v0.3.0,许可证为 MIT。

插件定位是「可预览的跨 preset 会话迁移」:把源会话的状态、源模型意图和未解析图片,通过固定 schema 的五段交接传递给目标 preset。迁移前可审阅、可编辑;执行后原会话保持原样。

它不是模型工具或 skill,不往普通会话里注入 prompt token。只有调用 /bridge 斜杠命令时才会工作。

核心功能

固定五段交接

Bridge 把历史折叠为五个固定字段:

  1. Goal(目标)
  2. Current state(当前状态)
  3. Key decisions and conventions(关键决策与约定)
  4. Key files(关键文件)
  5. Next step(下一步)

交接内容有界、结构固定,便于在迁移前检查,也便于在目标 preset 里复述上下文。

先预览,再执行

/bridge <preset> 只做预览,不创建目标会话,也不改动源会话。确认内容无误后,再用 --go 执行迁移。

迁移状态,不搬工具痕迹

决策、路径、当前状态和下一步会进入干净的目标 preset;旧工具装配里不兼容的调用不会跟过去。

失败即停(fail closed)

目标会话在启动前会暂停 goal。若无法保证这一点,Bridge 会清除或取消目标,不发送模型请求。

图片处理

  • 已有 assistant 分析的图片:原文复制该回复,默认不重新发送原始图片。
  • 未解析且目标支持图片:通过附件网关复制原图,保留源 VLM。
  • 未解析且目标仅文本:在 prompt 准入阶段拒绝图片,发送可见的文本回退,不做隐藏的本地 VLM 调用。

官方 WebUI 原生卡片

在 DSH 0.1.1-rc.2 及更高版本的官方 WebUI 中,/bridge 以原生卡片渲染。Text 模式把五段内容展平为普通字段和列表行;Markdown 模式保留完整编辑自由;Preview 模式渲染 Markdown 或完整 JSON 树。长内容在卡片内滚动,操作栏始终可达。点击「Confirm migration」可打开创建好的目标会话。

实现了官方 conversation.chat.commandview 插槽的自定义 UI 也会自动获得同样卡片。其他客户端仍可使用完整服务端结果、摘要文件工作流,以及目标标题 / session ID 回退。

安装与启用

需要 Node.js ≥ 22。通过 npm 安装:

dsh plugin --profile web add dsh-plugin-bridge
# 安装后重启一次 dsh web

若需固定 GitHub 版本,可用:

dsh plugin --profile web add github:Totoro-qaq/dsh-plugin-bridge#v0.3.0

卸载:

dsh plugin --profile web remove dsh-plugin-bridge

卸载后同样需要重启 dsh web

安装后建议执行 /bridge --doctor,检查 DSH 升级后的宿主契约是否完整;它会列出缺失的必需 gateway 方法,而不是模糊报错。

典型用法

在官方 WebUI 中输入以下命令。

列出可迁移的目标 preset:

/bridge

检查宿主契约(DSH 升级后建议执行):

/bridge --doctor

预览交接内容,不创建目标、不改动源会话(以 code preset 为例):

/bridge code

执行迁移,目标复述后等待确认:

/bridge code --go

执行迁移,并在同一次目标请求里复述并开始工作(少一次确认请求):

/bridge code --go --continue

在较旧或非原生卡片的客户端上,可先修正打印出的摘要文件,再执行:

/bridge code --go --file <path>

工作流大致为:折叠历史 → 生成五段交接 → 预览 / 编辑 → 创建干净的目标会话 → 暂停并注入 goal → 复述 → 等待或继续。若交接不满意,可归档目标会话后回到源会话重新操作。

适用场景与注意

适合谁

  • 长任务中途需要换 preset,又不想手动重述上下文。
  • 需要在迁移前审阅交接内容,或微调五段摘要后再执行。
  • 会话里有关键决策、文件路径或未处理图片,需要一并带到新 preset。
  • 希望原会话保持完整、可回退,作为迁移前的参照。

迁移模式对比

场景 行为 代价
已安装但未调用 /bridge 无 prompt 注入 0 Bridge token
/bridge code(仅预览) 一次有界摘要 worker 不创建目标会话
--go(默认) 目标复述后等待 多一次显式确认请求
--go --continue 复述并立即工作 请求数更少

兼容性

DSH 基线 服务端交接 原生卡片
0.1.0-rc.6 支持 不支持
0.1.0-rc.7 / rc.8 支持 契约检查
0.1.1-rc.2 支持 支持(doctor 13/13)

CI 覆盖 Node.js 22 和 24。每次 Harness 升级后建议运行 /bridge --doctor

当前已知限制:

  • 安装后需重启一次 WebUI。
  • 原生卡片通过官方 Session runtime 自动打开目标;旧客户端回退到标题和 session ID。
  • worker 运行期间有进度提示;固定三跑样本耗时约 7.4–12.8 秒,previewTimeoutMs 为硬上限。
  • 纯文本模型无法检查未解析图片。
  • 原生卡片重复门禁目前仅三跑固定样本,属于发布证据而非统计保证。

安全与权限

插件以当前 dsh 进程的权限运行,可访问该进程能读写的文件与网络。安装前请阅读源码并确认 MIT 许可证条款,在 GitHub 仓库 核对 cordis.patch.ymllib/ 下的实际行为。社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,插件由社区维护者独立发布。

结尾

dsh-plugin-bridge 解决的是 DSH 长任务中途换 preset 时的上下文迁移问题:固定五段交接、可预览可编辑、原会话不动、目标会话干净启动。对需要在工具组合之间切换、又不想丢失决策与文件上下文的开发者,这是一个可直接落地的斜杠命令工作流。

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

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

小夜