dsh-clear-command:清空模型上下文,保留會話

前言

在長對話裏做智能體開發時,歷史消息會不斷進入模型的可見上下文,佔 token、干擾後續推理。新建會話能「斷上下文」,但會丟掉同一個 session 裏的工作區歸屬、側邊欄位置和完整持久化日誌。DeepSeek Harness(DSH)以插件方式擴展能力;dsh-clear-command 在單個會話內提供 /clear,只清空模型可見歷史,不刪除會話本身。

這是什麼

dsh-clear-command 是本地 DSH bundle:註冊全局命令 clear,在 Web 編輯器斜槓菜單與各 session 的 CLI 合成命令界面中均可使用 /clear。維護者爲 liufeicc,在 SkillHub 分類爲「記憶」;當前包版本爲 1.0.0(以倉庫 package.json 與目錄頁爲準),MIT License。

核心功能

下面介紹插件登記的能力與行爲邊界,均來自項目 README。

命令註冊

  • 通過 cordis.patch.yml 插入一條 Host 行,向 DSH 註冊全局 clear 命令。
  • 實現集中在 index.js:命令註冊與 surface 替換邏輯。

/clear 做了什麼

  1. 清空模型可見歷史:智能體不再看到此前任何用戶與助手消息;下一次請求從 system prompt 加一行標記開始。
  2. 會話不變:同一 session id、標題、工作區成員關係、側邊欄位置;持久化日誌完整保留。這是 clear,不是 delete,也不是新建 session。
  3. 與 /compact 同類機制:一次按位置的 surface 替換寫入 session log,重載與回放行爲確定。
  4. 界面與模型所見分離:Web transcript 由 append-origin 日誌事件推導,屏幕上仍可閱讀更早消息;僅模型側上下文被清空。
  5. 空閒階段執行:在 agent 的 runMaintenance 階段運行(與手動 compact 同類預留)。若當前有 turn、排隊喚醒或其他維護任務佔用 agent,命令會報告狀態且不修改內容。
  6. 可審計:調用以普通 command/run 與 command/done 記入 session log,transcript 中顯示爲命令行。

保留與限制

  • 首部 system/message surface 節點保留(智能體指令);其後的內容被 shadow。
  • 進入模型上下文的標記行爲英文([Earlier conversation cleared by the user; …]);命令面向用戶的文案爲簡體中文,與 bundle 自帶 UI 語言一致。
  • 不操作已歸檔會話、其他會話或其文件。

安裝與啓用

已抓取資料中未給出形如 dsh plugin add … 的固定 Shell 安裝命令;SkillHub 目錄頁表述爲通過 DSH 安裝插件 liufeicc/dsh-clear-command。安裝前應在 GitHub 閱讀源碼與 LICENSE,並牢記插件以當前 dsh 進程權限運行。

本地開發時,README 說明在 profile 的 package.json 中用 link: 指向本插件目錄;Host 代碼由 Loader 加載,修改後需重載對應 Host 行(profile 重啓),不像部分 client 側插件那樣依賴 dsh-client-hmr 熱更新。

倉庫主要文件:

index.js              # 插件主體
cordis.patch.yml      # Host 行補丁
locale/{en,zh}.json   # 插件管理器展示元數據
icon.svg
test/clear-contract.mjs

典型用法

在已啓用該 bundle 的 DSH 環境中,於任意 session 的命令界面輸入:

/clear

當 agent 處於空閒維護階段時,上述命令會執行 surface 替換;若 agent 正忙,則按 README 描述不會改動上下文。

離線契約測試(開發/驗證用):

node test/clear-contract.mjs <log.jsonl.zstd>

測試會解壓真實 session 日誌(例如 ~/.dsh/sessions/**/session.v*.jsonl.zstd),在 detached Session 上重放並打印替換後的 surface 與推導出的模型消息。

適用場景與注意

適合:需要在同一 session 內「給模型換一個乾淨上下文」、但又要保留會話標識、工作區與工作記錄的場景;與記憶類工作流搭配時,可區分「人可讀完整日誌」與「模型當前所見」。

注意:

  • 僅影響當前會話的模型上下文,不替代會話管理或歸檔策略。
  • 執行時機依賴 idle 維護階段,忙碌時調用無效且無靜默副作用以外的結構變更。
  • 社區目錄 SkillHub 爲獨立站點,與 DeepSeek、幻方無官方從屬關係;插件來源爲 GitHub liufeicc/dsh-clear-command。

結尾

dsh-clear-command 用一條 /clear 在會話內做確定性的模型上下文重置,會話與日誌仍在。目錄頁:https://www.skillhub.cn/plugins/liufeicc/dsh-clear-command;源碼與詳細行爲說明:https://github.com/liufeicc/dsh-clear-command。

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

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

小夜