前言¶
在 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 把歷史摺疊爲五個固定字段:
- Goal(目標)
- Current state(當前狀態)
- Key decisions and conventions(關鍵決策與約定)
- Key files(關鍵文件)
- 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.yml 和 lib/ 下的實際行爲。社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係,插件由社區維護者獨立發佈。
結尾¶
dsh-plugin-bridge 解決的是 DSH 長任務中途換 preset 時的上下文遷移問題:固定五段交接、可預覽可編輯、原會話不動、目標會話乾淨啓動。對需要在工具組合之間切換、又不想丟失決策與文件上下文的開發者,這是一個可直接落地的斜槓命令工作流。