前言¶
DeepSeek Harness(DSH)的会话记录是只追加的事件日志,默认没有「删掉某一轮」的入口。长对话里一旦某几轮把上下文带偏、发错内容贴错文件,或试错过程只想保留结论,这些内容会继续进入模型可见的 surface,占 token、也影响后续回复。社区里已有借鉴「整轮删除」思路的插件;dsh-turn-eraser 由 Nagiko0739 维护,在 npm 上包名同为 dsh-turn-eraser,归类为与上下文/记忆相关的工具。下面介绍它做什么、怎么装、怎么用,以及删除在机制上的边界。
这是什么¶
dsh-turn-eraser 是给 DSH 用的会话工具:在每一轮尾部提供删除入口,并常驻显示「第 N 轮」编号。删除的含义是:把指定轮次从模型可见的上下文里遮蔽掉,磁盘上的原始会话日志不改动,因此可以按需读回被删原文。当前版本在 package 中为 0.2.1,许可证 MIT。
核心功能¶
README 中已列出的能力如下。
| 能力 | 状态 |
|---|---|
| 删除某一轮(用户提问 + AI 整轮输出) | 已实现 |
| 删除此处及以后 | 已实现 |
| 每轮都有删除入口(含没有正式回答的「空回」轮次) | 已实现 |
| 删除后该轮在界面上隐藏 | 已实现 |
| 轮尾显示「第 N 轮」 | 已实现 |
| 可追溯:读回被删除的原文 | 已实现 |
| 删除整个会话 | 未实现 |
| 彻底擦除(物理抹掉日志) | 未实现,且作者不建议 |
设计要点:占位符写的是轮次号(例如 [已删除第 20~22 轮]),不是内容摘要,模型只知道「洞在哪」,不被告知洞里原文。
安装与启用¶
插件以当前 DSH 进程权限运行;安装前建议在 GitHub 仓库核对源码与 LICENSE。
推荐从 npm 安装。 在 DSH 设置 → 插件 → 添加插件 中填入包名:
dsh-turn-eraser
或使用命令行(将 <你的配置档名> 换成实际 profile 名):
dsh plugin --profile <你的配置档名> add dsh-turn-eraser
同一添加界面也支持 GitHub 仓库地址或本地目录路径;仓库为 Nagiko0739/dsh-turn-eraser。安装说明写明:零运行时依赖,不会随插件带入额外第三方 npm 包。
典型用法¶
界面删除¶
每一轮尾部有小垃圾桶图标。操作步骤:
- 点击图标,浮出 删除本轮 / 删除此处及以后。
- 选中其一后,该按钮变为「再点一次确认」。
- 再次点击才执行删除;约 4 秒无操作会自动收起,降低误触。
删除之后:
- 模型:从下一轮起看不到被删内容,仅见占位符(如
[已删除第 20~22 轮])。 - 界面:该轮整体隐藏(含思考过程、工具调用折叠块)。
- 日志:原文完整保留。
轮次编号显示在垃圾桶右侧,取值来自界面上的 data-turn-tail,人与 AI 可共用同一轮次号指代同一轮。
墓碑机制(简要)¶
DSH 日志只追加、不能就地改写。插件在日志尾部追加墓碑事件,用 surfaceOp: replace 把指定事件区间从可见 surface 替换掉;原始事件仍在文件中。墓碑须为 user/message 且内容非空,否则可能触达 DSH 写入校验或第三方约束。README 给出了 JSON 形状示例,含 source.producer、removed 事件序号、turn 等字段。
读回被删内容¶
删除不等于销毁。仓库提供 tools/trace_deletions.py,依赖系统 zstd(macOS 可 brew install zstd;缺失时脚本会明确提示)。
# 列出所有会话的删除记录
python3 tools/trace_deletions.py
# 按关键词筛选并展开被删原文
python3 tools/trace_deletions.py <关键词> --full
能查清删了什么、何时删、属于哪一轮,并读回含思考与工具结果的原文;不能从日志推断「谁」删的,也没有一键撤销删除。要恢复可见上下文,需自行根据读回内容处理,或让 agent 按轮次从日志找回。
适用场景与注意¶
适合:上下文被几轮带偏后想局部「擦掉」、发错轮次、整理试错过程、在暂不想手动压缩时减轻模型可见上下文长度,且需要保留磁盘日志以便审计或读回。
务必留意(来自 README「已知限制」):
- 无一键撤销;surface 的
replace执行后,被替换节点无法通过后续事件自动还原。 - 可追溯不等于防篡改;日志为明文 JSON。
- 删除入口挂在官方插槽
conversation.chat.turnTail;DSH 大改 UI 时插件可能需要跟进(代码含读 DOM 兜底)。 - 引用了
@deepseek-ai/dsh-client-ui-primitives,官方文档并不推荐插件依赖;拿不到库时有自绘兜底,功能仍可用、外观可能退化。 - 删除只作用于当前会话;已在跑的子 Agent 持有自己的上下文快照,可能仍记得主会话里已删内容。
- 不做物理擦除,不会重写会话日志文件。
DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。本文事实来自项目 README 与 package 元数据。
链接¶
- 社区目录页:https://www.skillhub.cn/plugins/Nagiko0739/dsh-turn-eraser
- GitHub:https://github.com/Nagiko0739/dsh-turn-eraser