前言¶
在 DeepSeek Harness(DSH)里长期跑智能体会积累大量会话。宿主默认提供归档或手工删目录的方式,但「删会话」和「删会话在工作区里写过的文件」往往要分开处理,误删也难按时间批量找回。插件 dsh-manage-deletion(维护者 ingk888766-cloud,分类 admin-security)把删除、可选文件范围、回收站还原和多选批量合成一套流程;正在执行的会话会被拒绝,避免打断活动回合。
这是什么¶
dsh-manage-deletion 是 DSH 的会话删除管理插件:删会话时可选择是否一并移走该会话在工作目录内通过 write / edit 产生过的文件;删除默认进插件回收站,可按删除时间单条或批量还原;支持侧栏扫描、行内垃圾桶与多选批量。实现上数据只走宿主服务(sessionPersistence、sessions、workspaceRegistry 等),不直接解析宿主内部文件结构;运行时无额外 npm 依赖(Node 内置模块 + React)。当前包版本 1.3.5,许可证 MIT。
核心功能¶
入口与操作方式¶
- 侧栏 「删除管理」 页:快速扫描、勾选、批量删除。
- 会话行右侧 垃圾桶:删单个会话。
- 工作区顶部 「多选」:勾会话或全选后「删除选中」。
删除范围¶
- 默认:会话日志目录移入
$DSH_HOME/manage-deletion/trash/<条目>/session,并写入index.json;DSH 侧栏中该会话消失。 - 可选「同时删除这些会话产生的文件」:仅收集该会话自己写/编过、且路径落在该会话工作目录(cwd)内的文件;确认对话框会逐条列出,可取消勾选。恢复时会话与勾选过的文件一并还原。不在 cwd 内的路径一律忽略,工作区里其他文件不会被动到。
回收站与彻底删除¶
回收站按删除时间列出条目,支持单条或批量「恢复选中」。回收站内的 彻底删除 会物理删除日志与工作区副本,需二次确认,不可恢复。
拒绝与安全边界¶
- 正在跑(有活动回合)的会话:拒绝删除,不动其文件。
- 打开但空闲的会话可以删。
- 置顶会话可先删:删除前会自动取消置顶。
- 删除前会调用宿主
workspaceRegistry.archiveSession()归档,再移动日志;移动失败会回滚归档,避免「侧栏看不见但数据仍在」的残留状态。 - 同一时刻只允许一个删除/恢复操作(并发保护)。
扫描与列表性能¶
会话数量多时,扫描结果缓存 60 秒,首屏默认 50 行(可通过配置调整 listLimit 等)。
安装与启用¶
- 安装插件(命令来自官方 README):
dsh plugin --profile desktop add dsh-manage-deletion
也可在 DSH 插件市场安装等价包名 dsh-manage-deletion。
- 重启 DSH:Web 端重启服务并刷新页面;Desktop 退出后重新打开。侧栏会出现 「删除管理」。
环境与兼容(见仓库 package.json):
- DSH:
>=0.2.0-rc.2 <0.3.0(在0.2.2-rc.1上开发与实测) - Node:
>=22.19 - profile:
web、desktop
典型用法¶
30 秒上手(界面)¶
- 删单个:鼠标移到会话行 → 点右侧垃圾桶 → 确认框点「删除」。
- 批量:工作区顶部「多选」→ 勾选会话(或「全选」)→「删除选中」。
- 扫全部:侧栏「删除管理」→「快速扫描」→ 勾选 →「删除选中」。
- 误删恢复:删除管理 →「回收站」→ 勾选 →「恢复选中」。
composition 配置(可选)¶
插件不导出 schemastery schema;在 composition 条目里为 manage-deletion 增加 config,例如控制空会话判定、批量上限、回收站目录等:
- id: manage-deletion
name: 'dsh-manage-deletion'
config:
blankMaxBytes: 1200 # 扫描时的空会话上限
tinyMaxBytes: 20480 # 很小且很久没动
oldDays: 30
threshold: 20
includeSubagents: true
titleResolveLimit: 200 # 一次扫描最多折叠多少个标题
listLimit: 1000
maxBatch: 50 # 单次删除上限
trashDir: '' # 空 = $DSH_HOME/manage-deletion/trash
Agent 工具¶
智能体可通过宿主暴露的工具做只读扫描或经确认的清理:
| 工具 | 作用 |
|---|---|
manage_deletion_scan |
只读扫描:统计、候选(含判定依据)、回收站状态 |
manage_deletion_clean |
mode=archive / unarchive / trash;trash 可带 deleteFiles、deleteExtraFiles;必须 confirm=true |
manage_deletion_trash |
action=list / restore / purge |
示例意图:「扫一下空会话和子代理残留」→ manage_deletion_scan;「把前 10 个删掉」→ manage_deletion_clean(mode=trash, confirm=true)。
适用场景与注意¶
适合:需要定期清理空会话、旧会话或子代理残留;希望删除前有清单、删除后有回收站;要在界面与 Agent 工具两条路径上统一语义的团队或个人。
务必注意:
- 插件以当前 DSH 进程的权限读写会话目录与工作区文件;安装前请阅读源码与 MIT 许可证,确认是否符合你的安全策略(分类为 admin-security 即与此相关)。
- 「同时删除产生的文件」有 cwd 硬边界,不会删工作区根目录下与会话无关的文件;彻底删除不可恢复。
- DSH 生态遵循「一切皆插件」;社区目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系,本文安装与能力描述均以仓库 README 与
package.json为准。