前言¶
在 DeepSeek Harness(DSH)里跑智能体任务,侧边栏会积累大量会话记录。子代理(subagent)还会派生出多层子会话。DSH 自带能力主要是归档:会话和子代理相关数据仍留在磁盘上,日志、投影缓存、工作区记录等也会一直占空间。若你需要从存储里彻底清掉某条会话及其整棵子代理树,归档不够用。下面介绍社区插件 dsh-session-purger(目录条目 ricardoyan/dsh-session-delete,维护者 RicardoYan,分类 admin-security),它在会话菜单增加「删除会话」,与 DSH 自带归档形成互补。
这是什么¶
dsh-session-purger 是一个 DSH 插件:给会话行的 ⋯ 菜单增加 删除会话,将当前会话连同其派生的所有子代理会话(任意层级)永久删除。npm 包名与卸载时使用的插件 id 均为 dsh-session-purger;GitHub 仓库为 RicardoYan/dsh-session-delete,当前发布版本 0.2.1,许可证 MIT。插件在 DSH 社区目录 SkillHub 条目 中归类为 admin-security。
核心功能¶
经 README 说明,插件能力可概括为以下几点:
- 整树删除:删除目标会话时,一并删除其下所有层级的子代理会话。
- 存储清理:会清理会话日志、投影缓存、工作区记录、spill 文件,以及浏览器里的界面状态。
- 二次确认:第一次点击「删除会话」会先展示将连带删除的子代理会话数量,再点一次才执行,降低误删概率。
- 明确不删的范围:不会删除由分叉(fork)产生的会话,也不会删除工作区文件夹里的项目文件。
- 占用文件:若删除时部分文件被占用,会在下次启动 DSH 时自动继续清理。
删除操作不可撤销,使用前需确认会话内没有仍需保留的内容。
安装与启用¶
安装命令以仓库 README 为准(勿凭仓库目录名自行拼接 github:owner/repo):
dsh plugin --profile desktop add github:RicardoYan/dsh-session-purger#v0.2.1
若使用 DSH Web 端,将 --profile desktop 中的 desktop 换成你的 profile 名(一般为 web)。安装完成后重启 DSH 使插件生效。
卸载:
dsh plugin --profile desktop remove dsh-session-purger
版本与运行环境(来自 package.json 与 README):
- 依赖
@deepseek-ai/dsh:>=0.2.1-rc.1 <0.3.0-0 - Node:
^22.19.0 || >=24.0.0
插件通过 Cordis patch(cordis.patch.yml)接入 DSH,客户端面向 web 平台。DSH 采用「一切皆插件」的扩展方式;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
典型用法¶
- 按上一节命令安装并重启 DSH。
- 在会话列表中找到要清除的会话,点击该行右侧的
⋯。 - 选择 删除会话。首次点击会显示将要连带删除的子代理会话个数;确认无误后再点一次执行永久删除。
无需额外配置文件;交互路径与会话侧边栏菜单一致。
适用场景与注意¶
适合谁
- 需要定期清理试验会话、失败任务或含大量 subagent 的会话树,且希望磁盘与 UI 状态一并释放的 DSH 用户。
- 关注 admin-security 类能力、希望比「仅归档」更彻底的管理员或日常维护者。
务必注意
- 插件在当前 DSH 进程的权限下读写存储;安装前应阅读源码与 MIT 许可证,确认符合你的安全策略。
- 功能依赖 DSH 的存储布局,仅适用于上述 dsh 版本区间;大版本升级后需核对
engines.dsh是否仍匹配。 - 永久删除无法恢复;fork 会话与工作区项目文件不会被本插件删除,若也要清理需另行处理。
结尾¶
dsh-session-purger 补上了 DSH 默认「归档仍留盘」之外的硬删除路径:一条菜单、两次确认,即可去掉会话及其全部子代理在 DSH 侧的持久化痕迹(项目文件与 fork 会话除外)。更多信息见社区目录 https://www.skillhub.cn/plugins/RicardoYan/dsh-session-delete 与 GitHub https://github.com/RicardoYan/dsh-session-delete。