dsh-session-porter:把 DSH 對話導出到同步目錄並在另一臺機器導回

前言

在 DeepSeek Harness(DSH)里長期跑智能體時,會話日誌留在本機 sessions/ 下。換電腦、重裝系統或想在辦公室與家裏共用同一批對話時,若只靠手工拷貝目錄,容易漏文件、版本對不上,也不方便只遷其中幾段會話。社區插件 dsh-session-porter(維護者 LZ-jun,分類:記憶)面向這類需求:在 Web UI 側邊欄用 導出 / 導入 兩個入口,把選中的會話寫到你自己指定的文件夾(例如 OneDrive),在另一臺裝了 DSH 的機器上再讀同一目錄導回來。全程本地讀寫,不發起外部網絡請求。

這是什麼

dsh-session-porter 是 DSH 的會話搬運插件:一鍵導出到自選目錄,換機一鍵導入;支持按會話勾選、覆蓋開關和操作前確認彈窗。倉庫:https://github.com/LZ-jun/dsh-session-porter;社區目錄頁:https://www.skillhub.cn/plugins/LZ-jun/dsh-session-porter。許可證 MIT,當前 package 版本 1.0.0。

客戶端與宿主通過本機 loopback 路由 /dsh-session-porter/* 通信,帶同源校驗與自定義請求頭;無遙測、無第三方服務。

核心功能

導出

  1. 點擊側邊欄左下角(餘額信息上方)的 導出。
  2. 在彈窗裏勾選要導出的會話(默認全選「有內容」的會話)、確認目錄,再通過確認彈窗防誤觸。
  3. 每個會話落在 <導出目錄>/sessions/session-<id>/,典型文件如下:
文件 說明
session.v4.jsonl.zstd 原始會話日誌(版本號隨 DSH 格式變化;未壓縮時沒有 .zstd 後綴)
meta.json 標題、工作目錄、創建時間、preset、字節數、導出時間
attachments/ 該會話引用的附件(存在時才寫入)

導出結束後會清理導出目錄裏已變成空殼的舊會話目錄,避免同步盤堆積無效目錄。目錄根還會寫入 dsh-session-porter.json(標記爲 DSH 同步目錄)以及可選的 plugins.json(見下文)。

空會話(從頭到尾沒有 user / assistant 消息)不參與掃描與導出。

導入

  1. 點擊 導入,默認讀取與導出相同的目錄(也可在設置裏單獨指定 importCwd)。
  2. 界面會列出對端目錄中的會話,以及本機是否已有同名會話。
  3. 覆蓋 爲開關:關閉時跳過已存在的同名會話;開啓時才替換。
  4. 正在本機運行的會話會被拒絕導入。

插件清單(僅導出)

設置項 導出插件列表 默認勾選。勾選時會在導出目錄生成 plugins.json,逐條記錄已安裝插件的 name、title、version、description、author、license、homepage、repository、keywords、kind、installPath、installSource、profile、enabled 等元數據,供新機器對照安裝;只導出,不自動導入。

安裝與啓用

在插件市場(dshmarket)中搜索 dsh-session-porter 安裝,然後重啓 DSH:

在 dshmarket 搜索 dsh-session-porter → 安裝 → 重啓 DeepSeek Harness

也可將倉庫作爲本地 bundle 裝進某個 profile(dsh.bundle.patch 指向倉庫根的 cordis.patch.yml)。

環境要求:DSH 需帶 Web UI;Node ≥ 22(宿主側使用 zlib.zstdDecompressSync 解壓會話日誌)。

配置

配置文件位於 <dsh home>/session-porter.json(與 sessions/ 同級),也可在插件設置面板修改。示例:

{
  "schema": "dsh-session-porter/v1",
  "exportDir": "C:\\Users\\<you>\\OneDrive\\DSH-Sessions",
  "importCwd": "",
  "includePlugins": true,
  "lastExportedAt": 1793383216210,
  "lastImportedAt": null
}

importCwd 留空則與 exportDir 一致。從舊版 session-sync.json 升級時,舊配置會以只讀方式沿用。

界面入口掛在 sidebar.footer.action 槽位(order: -10),位於餘額插件上方;按鈕爲 1px 描邊、跟隨宿主深色主題變量。

典型用法

下面是一條可復現的跨機同步路徑。

  1. 在機器 A 的 DSH 設置裏把 exportDir 指到 OneDrive(或其它同步盤)下的文件夾,例如 DSH-Sessions。
  2. 點 導出,保留默認「有內容會話全選」或按需取消勾選,確認後等待完成。
  3. 等待同步盤把 sessions/、dsh-session-porter.json 以及可選的 plugins.json 同步到機器 B。
  4. 在機器 B 安裝同一插件,將導入目錄指向同一文件夾(或留空 importCwd 與 exportDir 一致)。
  5. 點 導入,根據需要打開或關閉 覆蓋,確認後完成導入。
  6. 若需要在新機還原插件環境,對照導出目錄中的 plugins.json 在 dshmarket 或本地 bundle 方式自行安裝;插件不會替你執行導入清單。

適用場景與注意

適合:需要在多臺電腦間共享 DSH 對話、用 OneDrive / 網絡共享 / U 盤等「宿主可寫」目錄做會話備份、遷移時只帶走部分會話。

隱私:只讀本機會話與插件元數據,只寫入你選定的目錄;plugins.json 不含密鑰或 token。

邊界(README 已說明):

  • 導入會重建會話日誌,不會修改工作區裏的項目文件;工作區路徑不一致時,歷史消息仍在,新消息會落在當前工作區。
  • 同名會話 id 以 覆蓋 開關決定是否替換。
  • 插件清單僅導出,不導入。

安全與信任:插件以當前 DSH 進程權限讀寫本機會話與導出目錄。安裝前建議在 GitHub 查看源碼與 MIT 許可證,確認導出路徑不會指向不可信共享。

DSH 生態強調「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文安裝路徑以 dshmarket 搜索爲準。

結尾

dsh-session-porter 把「挑會話 → 寫進同步目錄 → 另一臺機器導回」收成側邊欄兩次確認操作,適合把 DSH 對話當作可攜帶資產來管理。進一步瞭解可訪問社區目錄 https://www.skillhub.cn/plugins/LZ-jun/dsh-session-porter 與倉庫 https://github.com/LZ-jun/dsh-session-porter。

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

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

小夜