前言¶
DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。在开发过程中,会话历史的管理、查看以及清理是高频需求。dsh-session-manager 是一个由 huajuan2024 维护的插件,它为 Web UI 的「设置 → 插件」页面提供了一个会话管理面板。该插件位于「记忆」分类,旨在解决查看历史消息、删除旧会话以及导出会话记录的痛点。
核心功能¶
插件主要包含 Host 服务和 Web 客户端两部分。Host 进程负责核心逻辑,通过 ctx.sessionManager 和 ctx.sessionQuery 服务读取会话,执行删除和格式转换,并处理文件操作。Web 客户端通过标准 /api RPC 调用 Host,渲染会话列表与详情面板。
具体能力包括:
1. 列出会话:列出所有已知会话,包含 title、cwd、updatedAt、turns、steps、agentPreset 等信息。
2. 查看历史:点击单个会话可查看其消息历史,支持导出为 JSON 或 Markdown 格式。
3. 删除会话:支持删除单条会话,但运行中的会话会被拒绝删除。
4. 导出功能:导出操作走浏览器 Blob URL 触发下载。
安装与配置¶
安装需要使用官方提供的 tarball 包。请确保已安装 Node.js 22.19 或更高版本,以及兼容 DSH 0.1.0-rc.7 的版本。
执行安装命令:
dsh plugin --profile web add ../../plugin-releases/dsh-session-manager-0.1.5.tgz
安装后,包内 cordis.patch.yml 会提供默认配置。若需覆盖配置,需在 ~/.dsh/profiles/web/cordis.patch.yml 中使用相同的 id 写入配置。注意:覆盖时必须使用列表替换整份 config,不能追加在 [] 后面。
检查最终配置结果:
dsh --profile web --dump-config
典型用法¶
- 查看列表:启动 Web profile 后,进入「设置 → 插件」,即可看到「会话管理」面板,列出所有会话。
- 查看详情:点击列表中的会话行,展开查看消息历史(默认最多预览 200 条)。
- 导出数据:点击导出按钮,浏览器会下载 JSON 或 Markdown 格式的文件。
- 清理会话:点击删除按钮,在确认对话框中删除会话。
注意事项与限制¶
使用该插件前,请务必检查源码与许可证。插件以当前 dsh 进程权限运行,涉及文件操作。
- 权限与安全:文件操作只在 Host 进程中进行,token 或文件绝对路径不会进入 Remote 返回值,防止信息泄露。
sessionId必须是裸 UUID 或匹配session-<uuid>格式,其他格式会被拒绝以防止路径穿越。 - 运行时限制:处于
running状态的会话不可删除,必须先结束会话。 - 导出限制:单次导出的字节上限为
10485760(10 MiB),超过此大小会返回too-large错误。 - 故障排查:
-session-running:会话正在运行,无法删除。
-not-found:会话目录已不存在。
-invalid-session-id:Session ID 格式不正确。
-permission-denied:Host 进程没有读写权限。
-upstream-error:文件解压或解析失败。
总结¶
dsh-session-manager 为 DeepSeek Harness 用户提供了在 Web 端直接管理会话历史的能力。通过列出、查看、导出和删除,它辅助开发者更好地维护和利用会话数据。更多细节及源码可参考其 GitHub 仓库与 SkillHub 目录。