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 時的上下文遷移問題:固定五段交接、可預覽可編輯、原會話不動、目標會話乾淨啓動。對需要在工具組合之間切換、又不想丟失決策與文件上下文的開發者,這是一個可直接落地的斜槓命令工作流。

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

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

小夜