前言¶
在 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 命令,插件在设置里安装:
- 打开「设置 → 插件」,在插件列表或插件市场里找到
dsh-session-port并安装(bundle 名同为dsh-session-port;已收录到 dshmarket 后可直接在市场里搜到); - 安装后重启桌面版应用(或刷新已打开的页面)。
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 服务(或刷新已打开的页面),标题栏右侧会出现导出按钮、左侧栏全局导航里「插件」下方会出现「导入会话」。
典型用法¶
导出正在看的会话¶
- 打开会话;
- 标题栏右侧点击「导出」图标(↓);
- 浏览器下载
<标题>-<会话 id>.zip。
导入一个会话¶
- 左侧栏点击「插件」下方的那行「导入会话」(↑);
- 打开导入面板;
- 把
.zip或.jsonl拖进去,或点「选择文件…」; - 导入完成后点「打开会话」。
通过自然语言操作¶
插件注册了 session_port 工具,可以用自然语言让本鲸帮忙,例如「把当前会话导出到 D 盘备份」。
适用场景与注意¶
适合:
- 在多台机器之间迁移会话与附件;
- 临时备份长链路任务,方便后续复盘;
- 把子会话日志单独导出、分析或复用。
注意:
- 导入要求格式版本一致:v4 的压缩包导入当前 DSH;跨大版本请先用对应版本 DSH 打开再重新导出;
- 单次导入默认上限 512 MiB,可在插件配置里调整;
- 解压有上限(防压缩炸弹):条目数 ≤ 20000、单条解压后 ≤ 512 MiB、解压后总计 ≤ 2 GiB,且每条数据的实际解压大小必须与压缩包里声明的一致;
- 导入只恢复主会话;子会话日志仍在压缩包里,但不会恢复为子会话列表;
- 导出是流式的:归档逐条目写出,文件附件直接从磁盘流进压缩包,不会把整包和全部附件同时驻留内存;
- 插件以当前 dsh 进程权限运行,安装前建议检查源码与许可证。
短结尾¶
dsh-session-port 把会话从 DSH 里「打包带走」,再按需「搬回来」。对需要跨设备迁移或长期保存会话的开发者来说,是一个可靠的工具。插件已发布到 npm 与 GitHub,可通过目录页或 GitHub 仓库获取。