前言¶
在 DeepSeek Harness(DSH)里长期跑智能体,会话会不断积累。归档能把侧边栏里暂时不用的对话收起来,但归档记录仍占磁盘,也缺少一个集中查看体积、批量恢复或彻底清理的入口。手动到 ~/.dsh/sessions/ 下翻目录既容易误删,又很难对照工作区与会话 id。
会话管理(@local/dsh-session-manager)是挂在 DSH 设置里的一页插件:只列出已归档会话,支持按标题、工作区路径或 session id 搜索,展示每条日志的占用体积与归档合计,并支持多选恢复或永久删除。下面介绍它的定位、能力与使用时的边界。
这是什么¶
- 名称:会话管理(包名
@local/dsh-session-manager,社区目录xiaobaga281/dsh-session-manager) - 维护者:xiaobaga281
- 分类:记忆(社区目录归类)
- 版本(资料中的当前包版本):1.1.0
- 许可:MIT © 2026 xiaobaga281
插件在 Settings 中注册 Session Manager 页面:英文 README 将其描述为列出 archived Harness sessions、检查占用、恢复与永久删除,并带搜索与多选批量操作。
核心功能¶
以下能力均来自项目 README,未归档会话不会出现在该页。
仅归档视图¶
页面只管理已归档记录;未归档会话不在列表中显示。
搜索¶
对列表做过滤,匹配字段包括:标题、工作区路径、session id(字面匹配,不区分大小写)。README 说明:主查询服务未挂载全文检索后端(openAt: never),因此不能按对话正文搜索,仅 metadata。若要在归档日志上做字面内容搜索,需在 sessionQuery.filterEvents 之上自行扩展,代价是读取每条归档 log。
多选与批量操作¶
支持全选 / 逐行勾选,再对选中项执行恢复或删除。
恢复¶
对选中会话执行 unarchive,它们会回到对应工作区的对话列表。
永久删除¶
一次性移除 durable session log、其 session_projcache checkpoint,以及 Workspace 里的 sessionIds 成员关系。 destructive 操作会要求确认,并在完成后展示回收的体积。
删除涉及的路径包括:~/.dsh/sessions/<workspace>/<session-id>/ 下的 log 目录及相关 checkpoint 与成员项。
体积展示¶
每一行显示该会话 log 在磁盘上的大小;页面汇总当前已归档会话占用的总量。
安装与启用¶
官方 README 未给出 dsh plugin add github:... 一类 CLI 命令。安装方式为:
- 通过 DSH Plugin Manager 使用
install_bundle安装插件包目录;或 - 将插件加入某个 profile 的 bundle 列表。
说明:
- Host 侧(
index.js等)改动后需要 重启 DSH 应用 才会生效。 - Client 侧(设置页 UI)在 host 重新提供 bundle 后,随页面刷新即可加载。
- 运行环境要求 Node.js >= 20(见
package.json的engines)。
若自行打包分发,仓库 README 给出:
npm pack
产物示例为 dsh-session-manager-1.1.0.tgz(以 package/ 为根),tarball 内含 files 列表、README.md 与 LICENSE。
典型用法¶
- 在 DSH 中打开 设置,进入插件注册的 会话管理 / Session Manager 分区。
- 浏览已归档会话列表,查看各行体积与页脚/合计处的归档总占用。
- 在搜索框输入标题片段、工作区路径或 session id,缩小列表。
- 勾选需要处理的行(或全选),选择 恢复 或 永久删除,按提示确认。
- 删除完成后留意界面提示的回收体积;若侧边栏仍有个别残留条目,见下文「行为与限制」。
行为与限制¶
删除是即时且不可逆的¶
一次请求内移除 log 目录、projcache checkpoint 与 workspace 成员关系,确认后即执行。
正在跑 turn 的会话不能删¶
若会话当前正在执行一轮对话,需先停止再删。仅驻留在内存、处于 idle 的会话可以删除。
驻留会话与侧边栏残留¶
Harness 会把已打开的会话留在进程内存,且没有公开的 unload API。删除后记录已无法解析到数据,但插件仍保留 archive 条目(用于在 UI 中隐藏),直到下次启动;启动时的 drain 会去掉最后一条 archive 条目。若侧边栏归档组里仍看到已删会话的空壳,重启应用一次即可让该条目消失。
延迟删除重试¶
若请求时 log 因罕见原因无法删除(例如仍有句柄占用),对应 id 会写入:
~/.dsh/storages/session-manager/pending-deletions.json
并在下次启动时重试删除。
实现结构(便于审阅源码)¶
| 文件 | 作用 |
|---|---|
index.js |
Host:在 webServer 注册 /session-manager/{list,restore,delete};经 ctx.sessionQuery 读语料;改 live workspace 成员;删存储目录 |
client.js |
Web:注册 settings.section 页面、样式与导航图标 |
cordis.patch.yml |
插入 session-manager Loader 行 |
locale/en.json、locale/zh.json |
Plugin Manager 与 Settings 展示文案 |
icon.svg |
线型图标 |
适用场景与注意¶
适合:经常归档大量 Harness 会话、需要按 metadata 检索、想看清磁盘占用并批量恢复或彻底清理归档数据的开发者。
注意:
- 插件以当前 DSH 进程权限读写
~/.dsh/下会话与存储;安装前请阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全与合规要求。 - 永久删除不可恢复;删除前务必确认选中项。
- 社区目录 SkillHub 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本文事实以仓库 README 与 package 元数据为准。
结尾¶
会话管理把「已归档 Harness 会话」收拢到设置页:搜索 metadata、看体积、多选恢复或永久删除,并在无法即时删盘时通过 pending-deletions.json 在下次启动重试。若你已在用 DSH 归档对话并关心磁盘与清理流程,可通过 Plugin Manager 的 bundle 安装方式启用该插件。