前言¶
DeepSeek Harness (DSH) 的会话日志是 append-only 的。一旦说错提示词或模型答偏,这些内容会一直留在模型上下文里,污染后续每一轮。官方目前只提供了「压缩」(/compact)这种整段摘要机制,没有单条消息级别的删除。
下面介绍 dsh-delete-turn。这个插件把删除能力放回消息本身,通过官方的 surface-replace 契约,从模型上下文中移除内容,并在可视化的转录中隐藏它,而不修改原始的追加式日志。
插件简介¶
- 名称:
dsh-delete-turn - 维护者: DDDMUC
- 类别: 工作流
- 许可证: MIT
- 核心机制: 使用官方
surfaceOp: { op: 'replace', startSeq, endSeq }契约进行上下文遮蔽,日志不重写。
安装与启用¶
通过 npm(web profile)安装:
dsh plugin --profile web add dsh-delete-turn
安装或更新后,宿主侧插件树仅在 DSH 启动时加载。必须完全重启 DSH 进程,硬刷新页面后插件才会生效。
核心功能¶
- 模型上下文级删除: 追加官方替换事件,被遮蔽的内容不再进入
deriveMessages()。 - 整轮删除: 删除一轮(含提问、注入上下文与全部回复步骤),后面的轮次原地保留、直接接上,不重放、不重编号。
- 转录级隐藏: 利用官方
useChat快照与锚点定位行,删除后折叠退场,刷新或重启后依然隐藏。 - 日志即台账: 隐藏依据直接从日志里的替换事件重建,不依赖本地存储。
- 安全边界: 只接受回环地址且 Host 为本机的请求;系统提示词头(surface 节点 0)不可删除。
使用方法¶
- 删除单条消息:
- 悬停任意消息行,点击行尾的垃圾桶按钮。
- 助手回复的删除按钮位于官方操作条(复制 / 分叉按钮旁边)。
- 确认弹窗会说明影响范围,点击「删除」。
- 删除整轮:
- 在用户消息行上,还有一个「删除这一轮」入口。
- 点击后,会删除整轮(含你的提问、注入上下文与全部回复),后面的轮次原地保留、直接接上。
注意事项¶
- 不可撤销: append-only 语义下没有「反删除」。被遮蔽的内容无法真正恢复,删除不可撤销(原始日志仍在,可用官方工具自行重建会话)。
- 回合进行中删除: 删除会先停止当前生成(走官方
sessionController.cancel,等价于按停止键),等这一轮真正收尾(turn/end落地)后再执行。停止超时(默认 15 秒)、停止被拒或正在压缩时仍会拒绝并给出原因。 - 系统提示词保护: 系统提示词头(surface 节点 0)不可删除。
- 已压缩内容: 已经被官方压缩(
/compact)移出模型上下文的内容不再显示删除入口。 - 整轮删除范围: 整轮删除会删除你的提问,只删回复请用助手操作条,只删提示词请用用户行上的垃圾桶。
生态背景¶
DeepSeek Harness 的理念是「一切皆插件」。社区目录 SkillHub 提供了插件的检索与发布服务,与 DeepSeek 或幻方无官方从属关系。