在 DeepSeek Harness (DSH) 中,將一個包含多個子代理、媒體和文件的工作區會話移動到另一個實例,通常涉及複製多個文件和手動配置。dsh-session-port 插件將一個會話及其所有引用(日誌、子代理、媒體、工作區)打包成 ZIP,以便在其他 DSH 實例中完全還原。
插件簡介¶
該插件由 seth-hg 維護,旨在解決會話遷移和持久化的問題。它將會話數據結構化地打包,支持導出和導入。
核心功能¶
- 導出:將會話及其引用打包成 ZIP,包含根日誌、子代理、媒體和引用的工作區文件。
- 導入:還原會話、媒體和文件,自動重新連接到工作區。
- 修復:重新連接導入的會話並重新摺疊標題,修復“未分組”或名稱丟失的問題。
安裝與啓用¶
插件依賴 Node.js >= 22.10 和 pnpm(dsh plugin 底層使用 pnpm)。
- 使用官方命令安裝:
dsh plugin --profile web add "github:seth-hg/dsh-session-port"
- 安裝後需要重啓
dsh web才能在會話標題欄看到導出/導入按鈕。
典型用法¶
通過會話標題欄¶
- Export:點擊後下載
session-port-<id>.zip。 - Import:選擇
.zip文件,會將其恢復到當前會話的工作區中(即頭部cwd)。- 導入也接受 DSH 內置的 session-log 導出(該導出不包含工作區文件,因此導入時也不會期望包含這些文件)。
通過 HTTP 路由¶
以下接口需要 loopback-trust 環境。
- 導出:流式下載 ZIP。
curl 'http://127.0.0.1:3080/wsx/session-pack?sessionId=<id>&scope=referenced' -o out.zip
- 導入:恢復歸檔文件。
curl -X POST 'http://127.0.0.1:3080/wsx/session-pack/import?workspace=/path/to/workspace&remap=/old::/new' \
--data-binary @out.zip
- 修復:重新連接並修復標題。
curl -X POST 'http://127.0.0.1:3080/wsx/session-pack/repair?sessionId=<id>'
適用場景與注意¶
- 該插件以當前 DSH 進程的權限運行,安裝前請檢查源碼和許可證(MIT)。
- 使用 HTTP 路由時需確保信任。
- 導入功能接受 DSH 內置的 session-log 導出,該導出不包含工作區文件,因此導入時也不會期望包含這些文件。
通過上述步驟,可以在不同環境間完整遷移 DSH 會話。更多細節可參考 GitHub。