dsh-context-maid:DeepSeek Harness 自動上下文策展插件

前言

DeepSeek Harness(DSH)的對話越久,上下文裏堆疊的內容越容易失控。工具輸出(尤其是錯誤日誌)和重複的中間結果往往會佔據絕大部分 token,而真正關鍵的決策和正在進行的任務則被淹沒其中。一旦觸發壓縮,這些關鍵信息可能連同垃圾一起被概括成模糊的摘要。

dsh-context-maid 旨在解決這一問題。它接管 DSH 的上下文壓縮與瘦身流程,將“垃圾清理”與“重要內容保護”分離。它會在壓縮前先將值得保留的內容歸檔,再對工具輸出進行感知式瘦身,並確保高權威的“釘扎”事實不會被誤刪。

插件概況

  • 名稱:dsh-context-maid
  • 定位:DeepSeek Harness 自動上下文策展插件
  • 核心價值:Tool 輸出內容感知瘦身 + 無效日誌清理 + 工作流/記憶釘扎保護 + 先歸檔後壓縮 + 摘要模型可配
  • 維護者:Icstick
  • 分類:記憶
  • 開源協議:MIT License

核心功能

dsh-context-maid 通過繼承並註冊 DSH 的官方服務來實現功能覆蓋:

  • 接管官方壓縮:繼承 BasicCompactionEngine 並註冊爲 ctx.compaction。官方的 pressure、overflow、manual 三路觸發邏輯完全保留,但閾值通過映射機制由用戶控制。
  • 壓縮摘要增強:在摺疊摘要前,會將高權威的 PIN(釘扎)事實注入摘要指令中。摘要模型可配置(支持便宜模型、本地模型或智能路由),若未配置則跟隨對話模型。
  • Tool 輸出瘦身:繼承 ToolResultPruner 註冊爲 ctx.toolResultPruner。開啓 eventSlim(默認開啓)後,每次 step 前會對新增的超預算 tool 結果進行增量瘦身(保留頭尾、錯誤留尾、JSON 留骨架)。
  • 垃圾清掃:基於確定性模型識別重複讀取、失敗後重試等無效事件,生成無 LLM 的 stub 節點進行清理。默認關閉,需在配置中開啓。
  • 先歸檔後壓縮:摺疊摘要會先經過 ACP(Agent Composition Protocol)ledger 歸檔,標記爲普通 observation,確保重要內容不隨壓縮消失。
  • 可觀測性:插件提供審計日誌,記錄每一次壓縮(fold)、瘦身(slim)和清掃(sweep)的操作。通過 /context-maid status 命令可查看引擎狀態、閾值配置、PIN 校驗分佈及摺疊深度。

安裝與啓用

通過 CLI 直接添加插件:

dsh plugin --profile <name> add github:Icstick/dsh-context-maid

安裝完成後,必須在 cordis.patch.yml 中禁用官方的默認引擎,否則 maid 無法正常接管服務。

在 profile 的 cordis.patch.yml 中添加以下配置:

- id: compaction-basic
  disabled: true
- id: tool-result-pruner
  disabled: true
- id: context-maid
  name: dsh-context-maid
  config:
    auditDir: C:\path\to\context-maid
    trigger.userRatio: 0.4

注意:
* 在 Windows 環境下,pnpm install 前必須先停止 DSH 進程,否則會遇到 native DLL 鎖的問題。
* 如果 status 顯示 BasicCompactionEngine,說明官方引擎未被禁用,需檢查第 3 步的配置。

配置項

配置鍵 默認值 說明
trigger.userRatio 0.4 上下文閾值(佔模型窗口比例),映射官方 thresholdRatio。
trigger.eventSlim true 開啓後,step 邊界對新增超預算 tool 結果進行增量瘦身。
slim.thresholdChars 4000 觸發內容感知瘦身的字符數閾值。
slim.headChars / slim.tailChars 800 / 800 瘦身時保留的頭尾字符數。
sweep.enabled / sweep.aggressive false / false 是否開啓垃圾清掃(默認關閉)。
fold.retainRatio 0.16 壓縮後保留的尾段比例。
fold.verify.enabled true 是否開啓摺疊後約束校驗(默認只告警,不阻塞)。
pin.enabled true 是否開啓 PIN 事實的軟保護。
archive.enabled true 是否開啓先歸檔後壓縮。
summarization.provider / summarization.model ’’ / ‘’ 自定義摘要模型(留空則使用對話模型)。
auditDir $DSH_HOME/context-maid 審計日誌目錄。

使用示例

在對話中輸入 /context-maid status,應能看到以下輸出內容:

engine: ctx.compaction = MaidCompactionEngine(maid 提供,閾值映射生效)

注意事項

  1. 依賴衝突:必須禁用官方的 compaction-basic 和 tool-result-pruner。DSH 的 cordis 服務同一 key 只能有一個提供者,禁用官方服務是 maid 接管的前提。
  2. 校驗邏輯:摺疊後的約束校驗目前只比對摘要正文中的字面錨點,不讀取摺疊後的 session surface。這意味着它無法檢測“約束雖然還在上下文中但不在摘要裏”的情況。
  3. 默認行爲:校驗結論默認只告警,不阻塞摺疊。將 fold.verify.enabled 設爲 false 會關閉校驗與留痕,但不改變摺疊行爲。
  4. 版本兼容:請確保使用兼容的 DSH 版本(peerDependencies 中要求的範圍)。
羽毛球分组比赛记分
小程序二维码

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

小夜