dsh-clear-conversation:用自然語言清空模型上下文,省 token

前言

在 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。

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

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

小夜