前言¶
DeepSeek Harness (DSH) 的官方 API 目前仅支持会话归档(隐藏),并不减少 session.list 的数据量。长期自主会话会持续产生子 agent 会话记录,当这些记录堆积到几十上百条时,会拖慢 Web GUI 的响应速度(实测 664 条 ≈ 1s/880KB)。针对这一痛点,momojie-s/dsh-subagent-cleanup 插件提供了清理方案。
插件简介¶
这是一个由 Momojie-S 维护的 DSH 插件,主要解决子 agent 会话堆积问题。它提供了两个核心能力:会话自清(清理本会话后代)和运维侧跨 workspace 大扫除(清理冷记录)。
核心功能¶
- 会话自清:清理“本会话自己的”子 agent 及更深层后代。通过子 agent 服务枚举确定归属与状态,只处置已停稳的记录,无闲置小时门槛。
- 运维侧跨 workspace 大扫除:跨 workspace 按目录形态扫描,只处置“当前 DSH 进程启动后从未写入且闲置超阈值(默认 24h)”的冷记录。
- 处置模式:支持默认归档(可逆)和彻底删除两种模式。
安装与启用¶
安装插件:
dsh plugin --profile web add github:Momojie-S/dsh-subagent-cleanup
安装后需重启 DSH 生效。
典型用法¶
安装完成后,在对话中直接使用自然语言指令即可:
* “把这次任务攒的子agent会话清掉” → 调用 subagent_cleanup 工具。
* “清理 StarRail 的旧子agent会话” 或 “全局大扫除一下子agent记录” → 调用 subagent_cleanup_global 工具。
配置¶
插件支持通过 config 字段进行可选配置。主要配置项包括:
| 字段 | 默认值 | 说明 |
|---|---|---|
toolSelf |
subagent_cleanup |
自清工具的模型可见名 |
toolGlobal |
subagent_cleanup_global |
大扫除工具的模型可见名 |
home |
DSH_HOME 环境变量,再退 ~/.dsh |
DSH home 覆盖 |
archiveRoot |
<home>/sessions-archive |
归档目标根 |
defaultIdleHours |
24 |
大扫除闲置门槛(小时) |
settleBufferMs |
30000 |
磁盘子级的写入缓冲(毫秒) |
liveBufferMs |
600000 |
内存子级需静默多久才可处置(毫秒) |
机制与限制¶
- 工具差异:
subagent_cleanup:仅枚举本会话后代,处理已停稳记录。subagent_cleanup_global:扫描裸 UUID(子 agent),跳过session-前缀主会话,支持按 workspace 子串过滤和parent点名。
- 安全边界:默认归档(可逆),彻底删除不可恢复。
- 运行环境:插件以当前 DSH 进程权限运行。
适用场景与注意¶
- 环境要求:DSH 版本 0.1.5-rc.1 及以上;支持 Windows / Linux / macOS。
- 注意事项:安装前请检查源码与许可证;插件加载成功后,DSH 日志会显示
subagent-cleanup: active (tools subagent_cleanup/subagent_cleanup_global...)。
结语¶
该插件通过补全 DSH 官方缺失的会话删除能力,帮助开发者有效管理子 agent 会话记录,提升 Web GUI 性能。