在 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。