前言¶
在 DeepSeek Harness(DSH)里跑智能体,会话会随工作目录、归档状态和运行状态不断累积。官方侧边栏能打开和切换会话,但删除往往只是归档隐藏,回收站、统计、暂停回合、工作区分组等操作分散在不同入口,或需要直接翻日志目录。长时间使用后,列表臃肿、误删难恢复、上下文压缩时机不可控,是常见痛点。
下面介绍社区插件 dsh-session-manager(维护者 dream12347)。它在不改动 DSH 核心的前提下,在设置页与对话顶部提供统一的会话管理界面,覆盖删除与回收站、统计、继续/暂停、日志目录、工作区分组排序,以及全局上下文压缩阈值。
这是什么¶
dsh-session-manager 是 DSH 的客户端插件(platform: web),通过官方插槽向 Web UI 注入「会话管理」分栏和对话顶部快捷入口。Host 层注册删除、恢复、彻底删除、暂停、打开文件夹、压缩阈值等路由;Client 层订阅 useSessions / useWorkspaces 等标准数据源,自绘列表与抽屉。
插件不修改系统提示词、不新增模型工具,对 token 与模型行为无额外影响。当前版本 v0.2.2,适配 DSH 0.1.1-rc.1。
- 目录页:https://www.skillhub.cn/plugins/dream12347/dsh-session-manager
- GitHub:https://github.com/dream12347/dsh-session-manager
核心功能¶
设置页「会话管理」分栏¶
安装后,设置页左侧会出现与 Notifications 同级的 会话管理 分栏。主列表展示未归档会话(标题、工作目录);底部折叠区单独列出 已归档会话,支持一键恢复。
每行可操作:
- 继续会话 — 打开并进入对话,同时关闭面板
- 暂停 — 停止正在运行会话的当前回合
- 统计 — 居中弹窗展示近期活动(轮次、用户消息、助手消息、全部工具调用、活动窗口)
- 文件夹 — 在系统文件管理器中打开该会话日志目录
- 删除 — 会话移入回收站(非运行中均可删;当前打开且空闲的会话也可删)
回收站保留最近 10 条删除记录,超出自动清除最早一条。回收站内可 恢复(回到会话列表)或 彻底删除(永久清除,不可恢复)。删除时先走官方归档通道,侧边栏会立即隐藏该会话。
对话顶部快捷入口¶
任意对话页右上角(Session log 左侧)新增三个入口:
- 对话管理 — 打开右侧会话管理抽屉(完整列表 + 已归档 + 回收站);图钉可固定常驻,点击外部自动收起
- 回收站 — 打开抽屉并直接展开回收站
- 删除本对话(红色) — 确认后将当前对话移入回收站
抽屉行内「更多」菜单收纳统计、文件夹、新聊天中继续(调用官方 sessions.fork fork 子会话并打开)。
未读 / 已读状态¶
会话行标题旁圆点表示四种状态:
| 颜色 / 形态 | 含义 |
|---|---|
| 蓝色 | 手动标记未读 |
| 琥珀 | 官方等待输入 |
| 绿色 | 官方完成提醒 |
| 转圈 | 运行中 |
点击琥珀或绿色点可 就地标记已读(不跳转);点击蓝色点清除未读;点击空白处标记未读;打开会话自动已读。官方侧边栏对应会话行旁同步显示蓝色未读点(按标题文本匹配;重复标题的会话会共享该点,抽屉内按真实 id 精确标记)。手动未读集保存在浏览器 localStorage 的共享 key dsh.session-unread.v1,与其他会话管理插件互通。
工作区分组与排序¶
会话按工作区分组展示,组内按最后使用时间排序,可切换 最新在前 / 最旧在前。拖拽工作区标题可调整顺序:放到某组上方或下方插入、放到标题上交换、拖到最下方移到末尾。悬停工作区标题出现 置于顶部、重命名、删除(二次确认;按官方定义仅移出列表,文件夹与会话记录保留,会话归入「未分组」)。
上下文压缩阈值¶
在 设置 → 通用设置 中新增「上下文压缩阈值」滑块(17%–90%)。当对话上下文用到模型窗口(100 万 token)的设定比例时自动压缩,每次压缩保留最近 16% 原文。保存后立即生效(含已打开会话),对所有 Agent 预设的会话统一生效,重启后依然有效。阈值持久化在 DSH 存储域;Host 在 agent/pre-step 钩子里写入各预设的压缩引擎配置。
子代理与删除限制¶
子代理(subagent)会话在非运行状态下支持删除,包括主会话已删除后的「孤儿子代理」。不能删除正在思考的会话(按钮禁用);多标签页场景需先确认该会话已在别处停止。live 会话删除后,内存状态在 DSH 重启时彻底清理。
安装与启用¶
从 GitHub 安装(官方 README 命令):
dsh plugin --profile web add 'github:dream12347/dsh-session-manager#v0.2.2'
Windows CMD:
dsh plugin --profile web add github:dream12347/dsh-session-manager#v0.2.2
从本地目录:
dsh plugin --profile web add /absolute/path/to/dsh-session-manager
从 tarball(先 pnpm pack):
dsh plugin --profile web add /absolute/path/to/dsh-session-manager-0.2.2.tgz
安装完成后 重启 dsh web(host 插件与客户端 bundle 需重启加载)。
典型用法¶
设置页清理与恢复会话¶
- 打开侧边栏底部 设置(齿轮图标)
- 左侧点击 会话管理
- 对不需要的会话点 删除 → 进入底部 回收站 折叠区
- 误删则在回收站内 恢复;确认无用则 彻底删除
- 展开 已归档会话 可恢复曾被官方归档的会话
对话中快速管理¶
在对话页右上角点 对话管理 打开抽屉,用图钉固定后可持续浏览全量列表;点 回收站 直接处理最近删除项;红色 删除本对话 一键移入回收站。
调整压缩时机¶
- 设置 → 通用设置
- 调整「上下文压缩阈值」至 17%–90%
- 保存后立即生效,无需逐个会话配置
适用场景与注意¶
适合谁: 长期在 DSH Web 界面维护多个工作区、多会话的开发者;需要回收站式删除、活动统计、暂停回合、fork 子会话、工作区排序,或统一控制上下文压缩比例的用户。
运行权限: 插件以当前 dsh 进程权限运行。删除、打开文件夹、读写 ~/.dsh/storages/dsh_delete_session.json 与 ~/.dsh/dsh-delete-session-trash/ 等操作均受此权限约束。安装前应阅读源码与许可证(仓库含 LICENSE),确认符合本机安全策略。
兼容性: 当前适配 DSH 0.1.1-rc.1,依赖 settings.section、conversation.session.header.utilities 等插槽及 ctx.sessionPersistence、ctx.workspaceRegistry、ctx.agents 等服务。DSH 升级后若 API 变化,需等待插件同步适配。
已知限制: 不能删除运行中会话;侧边栏未读点按标题匹配,重复标题会话共享蓝点;已彻底删除的会话 id 会留在浏览器 localStorage(防止刷新「复活」),属无害残留。
结尾¶
dsh-session-manager 把 DSH Web 里分散的会话操作收拢到设置分栏与对话顶部抽屉:删除带回收站、统计与暂停、工作区分组排序、全局压缩阈值,均在不改核心的前提下通过官方插槽实现。若你日常会话量大、需要可恢复的删除与更细的列表管理,可按上文命令安装 v0.2.2 并重启 dsh web。
- 目录页:https://www.skillhub.cn/plugins/dream12347/dsh-session-manager
- GitHub:https://github.com/dream12347/dsh-session-manager