dsh-clear-conversation: Clear model context with natural language to save tokens

前言

在 DeepSeek Harness(dsh)里做长对话时,每次请求都会把整段历史再发给模型。话题一多,响应变慢、输入 token 也会叠上去;有时你还希望旧内容不要继续影响后面的回答,但又不想开新会话、丢掉界面里的记录。

dsh 自带 /compact,会把一段旧轮次收成 AI 写的摘要,本身也要走模型。社区插件 dsh-clear-conversation(维护者 William20100221,GitHub:William20100221/dsh-clear-conversation)走的是另一条路:你说一句「清空上面」或执行 /clear,旧轮次不再进入模型上下文,界面 transcript 和 session log 仍保留。分类为客户端插件;仓库当前在 GitHub 上为 1 star,许可证 MIT,package.json 版本 0.6.0,面向 dsh >=0.2.1-rc.5 <0.3.0(README 标注为 Preview)。

下面介绍它做什么、怎么装、怎么用,以及使用时要注意的点。

这是什么

dsh-clear-conversation 是 dsh 插件:在对话中途用自然语言或命令触发「清空上下文」,让模型从下一轮起不再收到被清掉的历史轮次,从而立刻减少输入 token。Cherry Studio 有独立仓库 cherry-studio-clear-conversation,本文只讲 dsh 版。

核心功能

以下均来自项目 README 与 package.json,未在资料中出现的细节不写。

  • 自然语言触发:支持如 “Clear everything above”、“forget the previous chat”、“start over”、「清空上下文」等多语言表述; casual 说法(例如 “forget it, let’s move on” 或询问如何清空)不会误触发。
  • 保留当前意图:例如 “Clear, then do X” 仍会执行 X,只丢弃该条消息之前的轮次。
  • 当轮即生效:从同一次交互的下一跳请求起,模型不再收到被清掉的旧轮次。
  • 不删 transcript:旧消息仍在界面与 session log 中,仅改变发给模型的 surface;系统 prompt 不会被改动;若清空会破坏未完成的 tool call,会拒绝执行。
  • /clear 命令:在 agent 空闲时手动清空(Web、Desktop、SDK;资料写明 ACP 或 headless 上不出现该命令)。
  • 可查看释放量:/clear 会展示可折叠的 “Context cleared” 卡片,用 dsh 自带 token 计量显示释放的 input tokens,并可展开查看被清掉的 prompt。
  • 更新提示:启动后约一次向 GitHub 查最新 release;若存在新版本,下次清空时会提示如何更新。设置环境变量 DSH_CLEAR_CONVERSATION_NO_UPDATE_CHECK=1 可关闭检查;资料说明不会上传会话内容。
  • 实现方式:与 /compact 类似,在 session surface 上用一条短 note 替换旧轮次,而不是写摘要,因此清空本身不额外跑模型(README 中的 mermaid 流程图说明了 System prompt → Old turns → 你的消息 → Reply,Old turns 被替换为 “earlier conversation cleared” 类 note)。

安装与启用

无需 build。Web profile 安装与启动:

dsh plugin --profile web add github:William20100221/dsh-clear-conversation
dsh web

使用 dsh 桌面应用时:打开 Plugins → Add plugin,填入 github:William20100221/dsh-clear-conversation。

首次试用或想隔离验证时,README 指向仓库内 TESTING.md。

卸载(资料原文):

dsh plugin --profile web remove dsh-clear-conversation

然后重启 dsh。

典型用法

README 中的示意对话(说明行为,非用户案例):

You:   My favourite colour is green. Now help me name a cat.
dsh:   How about "Basil"? It suits a green-loving owner.

You:   Clear everything above, then tell me a joke.
dsh:   [clear_conversation]  Context cleared.
       Why don't skeletons fight? They don't have the guts.

You:   What's my favourite colour?
dsh:   I don't know. You haven't told me in this conversation.

空闲时也可直接输入 /clear,在 Web / Desktop / SDK 中清空并查看 token 卡片。

适用场景与注意

适合谁:长会话里需要「逻辑上新开一段、但保留聊天记录」的 dsh 用户;希望立刻砍掉历史输入 token、又不愿为 /compact 再付一轮模型成本时。

限制(README FAQ):

  • 清空后无法把旧轮次重新塞回模型上下文(transcript 仍可读)。
  • 插件目前无法在 Web UI 里折叠已显示的消息;被 compact 的消息同样仍可见,清空位置以 “Context cleared” 卡片标示。
  • /clear 与 token 统计等新能力在 README 中说明已在桌面端验证清空与 /clear;卡片与 token 计数有测试覆盖。异常可在 Issues 反馈。

安全与信任:插件在当前 dsh 进程的权限下运行,会参与构造发给模型的消息 surface。安装前请自行查看 源码 与 MIT 许可证;除可选的 GitHub release 版本检查外,资料未描述其它联网上传会话的行为。

DSH 生态强调「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系,本文不以「官方应用商店」口吻描述安装渠道。

结尾

经过上面的步骤,你可以在长对话里用一句话或 /clear 让模型「忘记」上文,同时保留完整 transcript,并立刻减少后续请求的输入 token。更多说明见 GitHub README:https://github.com/William20100221/dsh-clear-conversation;目录页:https://www.skillhub.cn/plugins/William20100221/dsh-clear-conversation。

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

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

Xiaoye