前言¶
在 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。