dsh-delete-archived:在 DeepSeek Harness 中永久删除已归档对话

前言

在 DeepSeek Harness(DSH)里长期跑智能体时,侧边栏会积累大量已归档会话。归档能停住 agent、把会话从活跃列表挪走,但磁盘上的 JSONL 与工作区注册信息仍会保留。若需要彻底清掉某条归档记录(而不是只隐藏),要么依赖社区里专门做批量清理的插件,要么自己调接口。下面介绍维护者 Joey-K-tsubame 发布的 dsh-delete-archived:在「仅归档会话可删」的前提下,提供侧边栏二次确认删除,以及供助手调用的删除工具。

这是什么

dsh-delete-archived 是面向 DeepSeek Harness 的插件,用于永久删除已归档(archived)的对话。源码与说明见 GitHub 仓库,社区目录页为 skillhub.cn 上的条目。当前 package 版本为 0.1.4,许可证 MIT,运行时零额外 npm 依赖。

与目录里已有的 dsh-archived-chats 相比:后者侧重列出并批量移除归档会话;本插件不重复实现那一套 bulk 能力,增量主要是 (1) 侧边栏每条归档会话「…」菜单里的 Delete conversation;(2) 助手可调用的 delete_archived_conversation 工具。若你只需要批量清理、不想要菜单和模型工具,README 建议选用依赖更小的 dsh-archived-chats。

核心功能

宿主侧(lib/entry.js)

宿主注册两条 HTTP 路由与一个 agent 工具:

  1. POST /plugin/dsh-delete-archived/delete,请求体 { "sessionId": "..." }
  2. GET /plugin/dsh-delete-archived/list
  3. 工具 delete_archived_conversation(sessionId),可在对话中由助手调用

删除会移除该会话的 JSONL 存储目录(各代格式一并删除),并清理工作区注册:归档标记、置顶标记、各 workspace 的 session 计数。未归档的会话、或仍驻留在内存且会继续 flush 日志的活跃会话会被拒绝(活跃会话可能在下次写入时「复活」数据)。

客户端(lib/client.js)

在侧边栏每个会话的「…」菜单中增加 Delete conversation,仅对已归档会话显示。流程为两步确认;若服务端拒绝删除,会在界面内联展示错误。

行为说明(README 摘录)

  • 必须先归档,才能删除。
  • 按会话串行删除。会话仍被 host 持有本身不是拒绝理由:归档已停止 agent,ArchivedSessionGate 会拒绝后续 step,日志不再写入;响应里可能带 heldAtDelete 作为说明。
  • 内容寻址的图片附件可能跨会话共享,插件不做引用计数,删除会话时不保证清理这些附件。
  • 若部署启用了内容搜索,SQLite 索引行会在下次搜索时自动清理;README 对 :memory: / openAt: never 的索引部署说明无需额外索引清理。

安装与启用

引擎要求(package.json):Node ^22.19.0 || >=24.0.0,dsh >=0.2.0-rc.2-0 <0.3.0-0。安装前请退出 Desktop 应用;--profile 为必填。

本地目录安装:

dsh plugin --profile <profile> add <absolute/path/to/this/dir>

从 GitHub 安装:

dsh plugin --profile <profile> add github:Joey-K-tsubame/dsh-delete-archived

安装后重启 Harness,让新 bundle 参与 compose。该包为纯 JavaScript、无构建步骤,从 GitHub 安装时 README 写明不需要 allowBuilds 代码执行审批。

典型用法

人在侧边栏删除

  1. 将要清理的会话先归档。
  2. 在侧边栏找到该归档会话,打开「…」菜单。
  3. 选择 Delete conversation,按提示完成两步确认。

助手通过工具删除

在对话中,助手可调用 delete_archived_conversation(sessionId)。也可由外部脚本或集成调用 POST /plugin/dsh-delete-archived/delete;列举可删对象可用 GET /plugin/dsh-delete-archived/list。

列举与删除的 HTTP 路径前缀均为 /plugin/dsh-delete-archived/。

适用场景与注意

适合谁:需要在 DSH 里对单条归档会话做不可恢复的清理,并希望有 UI 入口或让助手在自动化流程里删归档记录的开发者和日常用户。

与 dsh-archived-chats 的选型:只要批量清理 → 优先考虑 dsh-archived-chats;要归档会话菜单 + 模型可调用工具 → 用本插件。

破坏性工具:delete_archived_conversation 为 model-invocable,助手调用时没有第二次确认,删除无法撤销。侧边栏路径才是人工确认路径;不要把该工具放进你不希望自动删归档会话的工作流。

安全与信任:插件在当前 dsh 进程权限下运行,安装前请阅读源码与 MIT 许可证,确认删除范围符合预期。社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-delete-archived 把「永久删除已归档对话」收敛成侧边栏可点的菜单和宿主上的 HTTP / 工具接口,并明确与 dsh-archived-chats 的分工。需要进一步了解参数与边界时,以仓库 README(含 README.zh.md)为准。

  • 目录页:https://www.skillhub.cn/plugins/Joey-K-tsubame/dsh-delete-archived
  • GitHub:https://github.com/Joey-K-tsubame/dsh-delete-archived
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye