dsh-turn-delete:在 DeepSeek Harness 中删除单个 Turn,保留 Session

前言

在 DeepSeek Harness(DSH)里跑智能体对话时,Session 会按 Turn 累积用户提示、助手回复和工具调用记录。这些记录会进入后续请求的模型上下文。若某一轮对话写错方向、包含无效工具链,或只是想在同一条 Session 里「撤回」中间一轮,常见做法是新建 Session 或手动清理历史——前者会丢失 workspace 关联与后续 Turn,后者在 Harness 原生界面里并不直观。

下面介绍社区插件 dsh-turn-delete:它允许你在不删除、不替换整条 Session 的前提下,删除一个已完成的顶层 Turn,同时保留 Session id、标题、workspace 关联以及之后的 Turn。插件由维护者 hanshenmesen 发布,在 SkillHub 社区目录中归类为客户端插件;截至撰写时,GitHub 仓库约 59 stars。

这是什么

dsh-turn-delete 是一个 DeepSeek Harness 客户端插件(npm 包名 dsh-turn-delete,当前版本 0.1.0,MIT 许可证)。它在每个已完成顶层 Turn 的最后一条助手回复旁增加删除操作,经确认后从 Session 当前模型可见面移除该 Turn 的 prompt、助手消息与工具记录,并通过持久化的零内容替换事件记录删除行为。原始 append-only 事件日志仍保留,便于审计与回放。

DeepSeek Harness 采用「一切皆插件」的扩展方式;SkillHub(https://www.skillhub.cn)是面向中国用户的 Skills 社区目录,与 DeepSeek / 幻方无官方从属关系,本文安装与行为说明以插件 GitHub README 为准。

核心功能

经 README 核实,插件具备以下能力:

  1. 按 Turn 删除,不删 Session
    选中一个已关闭的普通 Session Turn 后,其 prompt、assistant 消息及 tool 记录从当前模型面移除;Session id、标题、workspace 关联、后续 Turn 以及原始事件日志保持不变。

  2. UI 入口与操作约束
    删除按钮仅出现在已完成的普通 Session Turn 上;Subagent 转录不暴露该操作。删除需二次确认,Session 运行中禁用删除。

  3. 持久化与幂等
    删除通过 durable zero-content replacement event 记录;刷新页面或重启 profile 后仍有效。对同一目标重复请求为幂等操作。

  4. 安全拒绝边界
    若目标 Turn 仍 open,或已与其他历史合并进 compaction replacement,插件拒绝删除,避免只删掉模型可见上下文的一部分。

  5. 双半部设计
    Host 半部注册 POST /dsh-turn-delete,获取目标 Agent 维护租约,校验完整 closed-turn 表面跨度,追加零内容替换并等待 sessions.flush()。浏览器半部向 conversation.chat.assistant-actionsconversation.chat.turnTail 插槽贡献 UI;Conversation 定义将 tombstone 投影到目标 Turn。

安装与启用

推荐使用 npm 安装到 web profile:

dsh plugin --profile web add dsh-turn-delete

也可从 GitHub 源安装:

dsh plugin --profile web add github:hanshenmesen/dsh-turn-delete

或安装预构建 Release 包:

dsh plugin --profile web add https://github.com/hanshenmesen/dsh-turn-delete/releases/latest/download/dsh-turn-delete.tgz

安装后需重启 dsh web 生效。卸载命令:

dsh plugin --profile web remove dsh-turn-delete

环境要求(README 兼容性说明):

  • DeepSeek Harness 0.1.0-rc.60.1.0-rc.7
  • Node.js 22.19 或更新版本
  • Web profile 及基于 Web 的 desktop shell

DeepSeek Harness 仍处于开发者预览阶段;升级 Harness 后,建议用一条包含三个短 Turn 的可丢弃 Session 删除中间一轮,验证插件是否仍正常工作。

典型用法

  1. 在 web profile 中安装并重启 dsh web
  2. 打开一条已有多个已完成 Turn 的 Session(README Demo 场景:删除中间一轮,保留同一 Session 及后续 Turn)。
  3. 定位目标 Turn 最后一条助手回复旁的删除(垃圾桶)操作,点击并在确认对话框中确认。
  4. 确认 Session 仍在列表中,后续 Turn 可读;被删 Turn 不再进入后续模型上下文。README 提供的 Demo GIF 录制于 DeepSeek Harness 0.1.0-rc.7 的真实模型流程。

若 Session 正在运行、目标 Turn 未关闭,或该 Turn 已参与 compaction,删除按钮不可用或请求会被拒绝——这与插件防止部分删除模型上下文的设计一致。

适用场景与注意

适合谁

  • 需要在同一条 Session 内修正中间某轮对话、又不想重建 Session 的 DSH 用户。
  • 希望保留 workspace 关联与后续 Turn,仅清理单轮模型可见历史的智能体开发者。

使用前须知

  • 与所有 DSH 插件一样,该包以 Harness 进程权限运行;安装第三方插件前应审阅源码并确认 MIT 许可证条款。删除会改变未来模型上下文,但刻意保留原始 append-only 事件供审计。
  • 插件不删除 Session 本身,也不保证从 UI 上完全抹除所有历史痕迹;Host 侧重模型面与持久 tombstone,浏览器半部对相邻 Turn tail 之间 Chat 行有窄化展示兼容层,模型上下文删除不依赖该层。
  • Subagent 转录 Turn 不支持此操作;仅顶层普通 Session Turn 可用。

链接

  • SkillHub 目录页:https://www.skillhub.cn/plugins/hanshenmesen/dsh-turn-delete
  • GitHub 仓库:https://github.com/hanshenmesen/dsh-turn-delete

经过上面的步骤,你可以在保留 Session 与后续对话的前提下,精确删除单个已完成 Turn,而不必整条 Session 重来。

羽毛球分组比赛记分
小程序二维码

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

小夜