dsh-session-port:把 DSH 會話打包帶走

前言

在 DeepSeek Harness(DSH)裏跑長鏈路任務或調試複雜智能體時,會話裏往往附着大量附件和子會話。把會話從一臺機器搬到另一臺,或者備份下來留作後續復盤,只能手動複製文件,容易遺漏、路徑不對,或者根本找不到對應的會話記錄。

下面介紹 dsh-session-port 插件,它把 DSH 的會話導出成 ZIP 壓縮包,附件隨行;之後再把壓縮包導入成新的會話,繼續對話或做二次開發。

這是什麼

dsh-session-port 是一個客戶端插件,由維護者 mswinandmc 開發。它的核心是:

  • 把當前會話連同所有附件、子會話日誌導出爲 ZIP;
  • 把導出的 ZIP(或同名格式的 .jsonl)導入回 DSH,變成一個新的會話;
  • 導入時自動處理會話頭、投遞標記、fork 標記等內部字段,避免 DSH 拒絕加載。

插件格式與 DSH 自帶的「下載會話日誌」兼容,壓縮包結構一致,方便手動檢查或跨工具處理。

核心功能

導出會話

打開一個會話後,標題欄右側會出現一個「導出」圖標。點擊後瀏覽器會下載一個 ZIP 文件,文件名格式爲 <標題>-<會話 id>.zip。

導出的 ZIP 包含:

  • session.v4.jsonl:會話頭與事件日誌
  • subagents/<會話 id>/session.v4.jsonl:子會話日誌
  • media/.:會話引用的圖片
  • files/<前綴>/<摘要>/<文件名>:會話引用的文件

導入會話

左側欄全局導航裏,「插件」下方會新增一行「導入會話」。點擊後打開導入面板,把 .zip 或 .jsonl 拖進去,或點「選擇文件…」。導入完成後點「打開會話」即可。

導入的行爲:

  • 新建會話,絕不覆蓋或刪除已有會話;
  • 落在當前會話所在的工作區(空閒時落在最近的工作區);
  • 繼承原會話的標題、完整對話與工具歷史、模型/預設(預設不存在時退回默認);
  • 自動改寫內部標記(投遞水位等),避免 DSH 拒絕加載;
  • 抹平 fork/分支標記,防止格式錯誤;
  • 導入後用 readSession 讀回校驗一次,DSH 打不開的會話會在結果裏告警。

子會話日誌會隨導出,但導入只恢復主會話本身;子會話列表狀態(收藏、置頂、歸檔等)不遷移。

安裝與啓用

桌面版(DeepSeek Harness Desktop)

桌面版不提供 dsh 命令,插件在設置裏安裝:

  1. 打開「設置 → 插件」,在插件列表或插件市場裏找到 dsh-session-port 並安裝(bundle 名同爲 dsh-session-port;已收錄到 dshmarket 後可直接在市場裏搜到);
  2. 安裝後重啓桌面版應用(或刷新已打開的頁面)。

Web / CLI 部署

自建 dsh web、CLI 或其它非桌面部署纔有 dsh 命令。桌面版用戶請用上面的圖形界面方式,命令行方式不適用。

# 從 npm 安裝(官方源;會自動寫進 profile 的 bundles 列表)
dsh plugin --profile web add dsh-session-port

# 沒裝 dsh CLI 時用完整包名
npx @deepseek-ai/dsh plugin --profile web add dsh-session-port

# 從 GitHub 倉庫安裝
dsh plugin --profile web add github:mswinandmc/dsh-session-port

# 從本地打包安裝
npm pack
dsh plugin --profile web add '<repo>/dsh-session-port-<version>.tgz'

裝好後用這些命令查看/升級/卸載:

dsh plugin --profile web list --depth 0                 # 確認 dsh-session-port 在列表裏
dsh plugin --profile web update dsh-session-port        # 升級到 npm 最新版
dsh plugin --profile web remove dsh-session-port        # 卸載

裝好後重啓 dsh 服務(或刷新已打開的頁面),標題欄右側會出現導出按鈕、左側欄全局導航裏「插件」下方會出現「導入會話」。

典型用法

導出正在看的會話

  1. 打開會話;
  2. 標題欄右側點擊「導出」圖標(↓);
  3. 瀏覽器下載 <標題>-<會話 id>.zip。

導入一個會話

  1. 左側欄點擊「插件」下方的那行「導入會話」(↑);
  2. 打開導入面板;
  3. 把 .zip 或 .jsonl 拖進去,或點「選擇文件…」;
  4. 導入完成後點「打開會話」。

通過自然語言操作

插件註冊了 session_port 工具,可以用自然語言讓本鯨幫忙,例如「把當前會話導出到 D 盤備份」。

適用場景與注意

適合:

  • 在多臺機器之間遷移會話與附件;
  • 臨時備份長鏈路任務,方便後續復盤;
  • 把子會話日誌單獨導出、分析或複用。

注意:

  • 導入要求格式版本一致:v4 的壓縮包導入當前 DSH;跨大版本請先用對應版本 DSH 打開再重新導出;
  • 單次導入默認上限 512 MiB,可在插件配置裏調整;
  • 解壓有上限(防壓縮炸彈):條目數 ≤ 20000、單條解壓後 ≤ 512 MiB、解壓後總計 ≤ 2 GiB,且每條數據的實際解壓大小必須與壓縮包裏聲明的一致;
  • 導入只恢復主會話;子會話日誌仍在壓縮包裏,但不會恢復爲子會話列表;
  • 導出是流式的:歸檔逐條目寫出,文件附件直接從磁盤流進壓縮包,不會把整包和全部附件同時駐留內存;
  • 插件以當前 dsh 進程權限運行,安裝前建議檢查源碼與許可證。

短結尾

dsh-session-port 把會話從 DSH 裏「打包帶走」,再按需「搬回來」。對需要跨設備遷移或長期保存會話的開發者來說,是一個可靠的工具。插件已發佈到 npm 與 GitHub,可通過目錄頁或 GitHub 倉庫獲取。

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

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

小夜