dsh-density-panel:面向 DSH 的質量優先工具輸出壓縮

前言

在 DSH 裏跑長會話時,工具返回的 JSON、diff、日誌往往佔去大量上下文。簡單截斷或抽樣容易丟掉答題所需的事實;一味追求更小 token 賬單也可能讓模型無法再回答細節問題。下面介紹社區插件 dsh-density-panel(包名 @local/density-panel,當前資料中的版本爲 0.31.0):它在能證明「不損答案」的輸入類型上做結構化壓縮,原文歸檔到磁盤,並維護按上下文窗口的賬本;需要時用 density_recall 按需取回。維護者爲 SpiritronPersonality,倉庫 dsh-density-panel,在社區目錄中歸類爲「記憶」相關能力;許可證爲 MIT。插件在 你當前 DSH 進程的權限 下運行,安裝與啓用前建議自行審閱源碼與許可證。

這是什麼

Density 是 DSH 客戶端插件:只壓縮它認爲可以壓縮且不會丟失答案的工具輸出,保留可恢復的原文檔案,併爲每個 context window 記一筆「省了什​​麼」。設計偏保守——目標是信息密度(去噪),而不是專門壓賬單;token 節省是副產物。

側邊欄提供中文界面「密度」面板(示意見倉庫 docs/panel.png),可觀察容量壓力、節省量、錨點、原生壓縮觸發線以及 per-window ledger。

壓縮策略:做與不做

倉庫 README 用表格明確了入口行爲(默認 policy: quality 即下表;strict 僅 diff;aggressive 爲舊版抽樣策略,含表格與代碼大綱等,默認不啓用)。

輸入類型 行爲 說明
JSON / JSONL 數組 轉爲 CSV(值全保留) 實踐中可視爲無損
Unified diff 去掉未改動的上下文行 改動行與 hunk 頭保留
日誌 保留頭、尾、每條 error 行,並加 [統計] 彙總行 抽樣後仍可回答計數類問題
表格 不壓縮 測試中行抽樣嚴重損答案
散文 / 長文本 不壓縮 敘事抽樣即數據丟失
源代碼(v30+) 不壓縮 召回成本常高於收益
cairn_*、density_recall 輸出 不碰 上下文中僅保留這份記憶

壓縮後的佔位會帶標記,例如:[density #density-1a2b3c4d · 原文 4210B · 用 density_recall(marker) 取回]。完整原文寫入 ~/.density/archive/<session>/。首次發生壓縮後纔會懶註冊 density_recall 工具,空閒會話不增加 schema 負擔。

安裝與啓用

官方 README 給出兩種方式,均需把 bundle 鏈入 DSH profile 並 重啓 DSH(宿主在啓動時快照插件 bundle)。

方式一:本地 link(README 示例)

git clone https://github.com/SpiritronPersonality/dsh-density-panel.git

隨後在 <profile>/package.json 中增加本地 link,例如 "@local/density-panel": "link:<path>/dsh-density-panel",並在 dsh.profile.bundles 中加入 @local/density-panel。

方式二:cordis patch 寫入 bundle

# profile cordis patch(或插件自帶的 cordis.patch.yml)
- insert:
    - id: density-panel
      name: '@local/density-panel'   # 或你發佈的包名
      config:
        mode: balanced
        write: true
        policy: quality
        surface: false

修改配置或代碼後需重啓 DSH。

配置項

鍵 默認 含義
mode shadow shadow 僅度量;safe / balanced 開啓入口路徑
write false 是否改寫工具結果(實際壓縮開關)
policy quality quality 爲上表策略;strict 僅 diff;aggressive 爲舊版抽樣
surface false 是否抽取每輪卡片並替換已結束輪次(默認關,會改變前綴)
protectedTools ['cairn_'] 永不壓縮的工具名前綴
archiveDir ~/.density/archive 原文歸檔目錄
ledgerDir ~/.density/windows per-window 賬本目錄

初次試用可保留 mode: shadow 觀察度量;確認行爲後再設 write: true 與合適的 mode。

可觀測與典型用法

  1. 側邊欄面板:條目「密度」,展示容量、壓力、節省、錨點、鏡像、原生 compaction 與窗口賬本(UI 目前僅中文)。
  2. HTTP:GET /density/snapshot 返回當前窗口及最近 8 個窗口的 JSON。
  3. 賬本:~/.density/windows/<sessionId>.jsonl,每個 context window(同一 provider、model、context 大小與 trigger line 的 epoch)一行 JSON;重啓後仍保留。
  4. 度量日誌:~/.density/shadow/<sessionId>.jsonl 記錄每次壓縮、召回與 turn card。
  5. 召回:模型在上下文中看到 density 標記後,調用 density_recall(marker) 取回歸檔原文(召回體積約等於原文,宜少次使用)。

倉庫 tools/ 下提供 corpus-acceptance.mjs、replay.mjs 等,用於語料驗收與會話日誌重放;開發測試可按 README 對每個測試文件單獨執行 node。

適用場景與注意

適合:長會話中大量 JSON/diff/日誌類工具輸出、希望減噪又不願犧牲可答題事實的 DSH 用戶;需要對照 ledger 與面板觀察壓縮與原生 compaction 關係時。

務必注意:

  • 壓縮是抽取式,不能概括語義,故散文與代碼默認跳過。
  • 日誌抽樣會丟掉非 error 行;[統計] 僅恢復聚合計數。
  • Recall 成本接近原文大小,頻繁取回會抵消節省。
  • 插件非 DeepSeek / 幻方官方分發;社區目錄 SkillHub 插件頁 與 GitHub 爲公開來源,星標等元數據以站點爲準。

結尾

dsh-density-panel 把「能壓且不傷答案」的工具輸出做成結構化摘要,原文歸檔 + density_recall + per-window ledger,並在中文「密度」面板與 GET /density/snapshot 上可見。進一步瞭解見 GitHub 倉庫 與 社區目錄。

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

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

小夜