前言¶
在 DeepSeek Harness(DSH)里长时间跑同一会话时,模型每次请求都会带上越来越长的上下文。常见做法是开新会话或手动删消息,但前者会丢掉当前会话的连续状态,后者又容易动到你不该删的内容。DSH 的会话日志是 append-only 的,聊天记录界面也会完整保留历史;真正需要控制的,往往是「后续请求里模型还能看到哪些轮次」。
下面介绍社区插件 dsh-context-date-pruner:在不删日志、不改聊天记录的前提下,按时间段挑选已经结束的对话轮次,把它们从模型可见上下文中移走。
这是什么¶
dsh-context-date-pruner 是维护者 yue7ye 发布的 DSH Host + 浏览器 UI 插件(MIT,当前 package 版本 1.2.0)。它解决的是:逐轮浏览当前 live 会话里已结束的 turn,按日期或时间范围筛选,再选择性从 deriveMessages() 推导结果里去掉这些轮次,从而压缩后续请求的 token,同时保留完整 session log 与界面 transcript。
核心功能¶
插件在输入框下方增加「上下文编辑」入口,能力均来自官方 README,要点如下。
轮次列表与展开明细¶
- 按本地时区(默认
Asia/Shanghai)列出当前打开会话中已结束的轮次;每条显示开始时间、预览、节点数、粗略 token 估算。 - 每轮右侧「展开聊天记录」:按发生顺序展示该轮完整内容——用户消息、助手回复、思考过程、工具调用与结果、系统注入;已被移出上下文的内容会标记「已移出上下文」,可再「收起聊天记录」。
时间与批量选择¶
- 「从 / 到」时间输入,或快捷 chip:今天、近 3 天、近 7 天、全部时间。
- 可逐条勾选要删除的轮次,也可按天全选或「全选当前列表」(仅作用于当前筛选结果里可删项)。
预演与确认删除¶
- 先点「预演」,确认将影响的轮次数、节点数、大约 token。
- 再点「删除」,并二次确认。
语义边界(必读)¶
- 只改模型后续请求看到的上下文:向日志追加带
surfaceOp: replace的占位事件(空 developer 消息),使选中 surface 节点从推导消息中消失;不删除、不改写已有事件,事后仍可从日志恢复推导逻辑上的信息。 - 系统提示(surface 第 0 节点)永远保留;进行中的 turn 不会出现在列表中,也不能删。
- 不可撤销:插件不提供 undo,被移出的内容不会再进入后续模型请求。
- 仅对正在运行的 live 会话生效;会话关闭后无法编辑。
安装与启用¶
DSH 要求 >= 0.2.0-rc.2(README 注明已在桌面版 0.2.1-rc.2 上验证)。纯 Host + Web UI 插件,无额外运行时依赖。
从社区目录安装:在 DSH 中打开 插件 → 发现,搜索 dsh-context-date-pruner 并安装。目录页:https://www.skillhub.cn/plugins/yue7ye/dsh-context-date-pruner(SkillHub 为独立社区站点,与 DeepSeek / 幻方无官方从属关系)。
或在指定 profile 下直接添加:
dsh plugin --profile <your-profile> add dsh-context-date-pruner
安装前建议自行查看 GitHub 源码与 MIT 许可证;插件以当前 DSH 进程权限运行,与所有 DSH 插件一样,应确认来源可信。
典型用法¶
- 打开一个正在运行的会话(插件不对已关闭会话生效)。
- 点击输入框下方的「上下文编辑」。
- 需要核对某轮内容时,点该轮「展开聊天记录」查看明细及「已移出上下文」标记。
- 设定时间范围,勾选要移出的轮次 →「预演」→「删除」→ 再次确认。
- 若筛选结果较多,可用「全选当前列表」一次处理列表内全部可删轮次。
适用场景与注意¶
适合:长会话里早期探索、试错或已过时的多轮工具调用仍占大量 context,但你希望保留完整日志与聊天界面以便审计或回溯。
注意:
- 移出上下文不等于删消息;界面上原文仍在,只是模型不再看到。
- 无撤销;重要轮次移出前务必用预演和展开明细核对。
- 只能编辑当前打开的 live 会话。
开发者本地跑逻辑测试(无需检出 DSH):
npm test
logic.js 不 import Harness 包,仅依赖传入的 session 对象,便于离线测试。
结尾¶
dsh-context-date-pruner 把「按日期管理 context」做成可预览、可逐轮核对的操作:日志与 transcript 不动,只收窄模型视野。需要安装或源码时,见社区目录页与 GitHub 仓库: