前言¶
在 DeepSeek Harness(DSH)裏跑長會話時,上下文窗口遲早會頂滿。宿主自帶的 compaction 能刪掉或摺疊舊內容以騰出 token,但智能體往往還需要回到「當時原文說了什麼」——例如某次工具調用的完整輸出、某段決策依據。若壓縮後只剩一段無法對照源事件的摘要,後續檢索和審計都會變難。
Lossless Context(倉庫 Kerberos255/dsh-lossless-context)是面向 DSH 的分層上下文壓縮與檢索後端:走原生 compaction 事務,不替換或刪除源會話日誌;在成功提交前把有界事件組整理成可追溯的分層摘要 DAG,並暴露會話內工具供搜索、查看 DAG 與展開原文。維護者爲 Kerberos255,分類屬於模型推理相關能力;插件爲 MIT 許可,當前 package 版本爲 0.1.31(以倉庫 package.json 爲準)。
這是什麼¶
一句話:在保留 DSH 原生會話記錄的前提下,做分層摘要、本地可檢索索引,以及可選的已驗證 DM 會話輪換。
數據流(與 README 一致)如下:
Native session events
→ native compaction selection
→ bounded summary leaves → merged summary DAG
→ native commit (only on success)
→ searchable index with references to source event IDs
當前會話仍保留原生記錄;檢索與展開會解析回原始 source event ID。模型與 provider 的上限及既有策略控制閾值;若拿不到模型元數據,會安全報錯而不是臆造預算。
核心功能¶
原生 compaction,不丟源日誌¶
插件使用 DSH 原生 compaction 事務,不會替換或刪除源會話日誌。無效、已取消、過大或截斷的摘要不會被提交;多階段壓縮失敗時不會發布不完整 checkpoint;下次重試或重啓時,僅在源內容、模型與摘要設置一致時複用片段。
分層摘要與本地索引¶
對受界、工具調用安全的事件組做摘要,形成分層的 source DAG。衍生索引存放在 DSH 數據目錄下,不是第二份完整對話歷史。
默認葉子 source input 分塊爲 24,000 tokens(指輸入分塊,不是 completion 上限)。成功且完整的葉子與 condensed 摘要會在本地 SQLite 衍生索引中緩存最多 7 天;單會話最多 128 條、全局 512 條,每條上限 128 KiB。默認單次 summarizer 請求超時爲 240 秒,以便較慢但合法的合併摘要仍能完成。
會話工具 lcm_recall¶
暴露一個會話級模型工具 lcm_recall,支持:
action: 'search'(默認):檢索action: 'describe':查看摘要 DAGaction: 'expand':按 sequence、DAG 節點或 query 展開 raw source
智能體在壓縮後的上下文裏仍可按需拉回支撐原文。
壓力與 idle 維護¶
常壓閾值檢查會在回合結束後調度 idle compaction;活躍回合僅在迫近壓力或 provider 確認 context overflow 時壓縮。兩種模式共用相同的 retainRatio / retainTokens 預算(含模型相關策略);閾值(例如 0.5)控制的是何時壓縮,而非近期文本保留多少。
插件 bundled 的 MIT 許可原生 helper 爲 RC.2 的 compactNow 安全路徑補充了 retained-tail 參數,其餘 idle 維護、完整 tool-pair 邊界、持久事務、取消與 checkpoint 刷新仍對齊原生行爲;升級 DSH 時需再對照 native/SOURCE.md。
可在 idle 維護階段預生成可複用的摘要葉子,且不提交 compaction。傳輸錯誤與截斷摘要分別有界重試;超時與輸出預算可獨立配置。
可選:Dream & Memory 後的 DM 輪換¶
可選地在經覈驗的 Dream & Memory 交接完成後,輪換符合條件的、owner 已驗證的 Discord / 飛書私信會話;近期輪換失敗會退避,而不是每個 idle 回合都重試。普通 desktop / 羣聊 / 未驗證會話不會被靜默遷移。
可編輯壓縮指導語¶
葉子與合併摘要可附帶可定製的默認質量指導(強調項目決策、精確路徑與配置名、驗證證據、任務狀態變化等)。設置頁提供 Restore default。指導語補充原生 compaction 協議;工具配對、源保留、取消與完整事務檢查不變。修改摘要策略會使過期的可複用葉子失效。
可選診斷¶
可向 dsh-plugin-diagnostics 發送隱私受限的操作與失敗元數據(事件類型、狀態、固定錯誤碼、耗時);不包含對話內容與憑據。診斷插件爲可選,不改變宿主依賴。
安裝與啓用¶
宿主需具備兼容的 DSH、原生 session、token-meter 與 compaction 服務;peer 依賴見倉庫 package.json。
安裝命令(README 原文):
dsh plugin --profile desktop add github:Kerberos255/dsh-lossless-context
安裝後:
- 打開 Settings → Plugins → Lossless Context,啓用 backend。
- 在需要使用該後端的 agent preset 上,選擇 compaction backend
dsh-lossless-context/agent。 - 僅安裝 settings 插件不能保證每個 preset 都使用該 backend;修改插件代碼或 preset 組成後需重啓。
插件以當前 DSH 進程權限運行;安裝前請自行審閱源碼與 MIT 許可證。
典型用法¶
啓用 backend 後的會話內檢索¶
壓縮提交成功後,索引會引用 source event ID。智能體通過 lcm_recall 在會話內操作:
- 默認
search:在摘要與索引中查找相關內容。 describe:查看當前摘要 DAG 結構。expand:按 sequence、DAG 節點或 query 展開對應 raw source。
具體參數形狀以插件實現與 DSH 工具協議爲準;策略與迴歸測試可在倉庫根目錄執行 npm test(便攜策略測試);真實壓縮與摘要質量仍需活躍模型與 DSH 宿主。示例配置見倉庫 config.example.json。
與相關插件的關係¶
- Dream & Memory:可選 DM 輪換的前置 handoff。
- Channel Core:頻道相關生態。
適用場景與注意¶
適合誰: 長時間 DSH 智能體會話、需要在壓縮後仍能追溯原文與工具輸出、並希望壓縮策略隨當前所選模型調整 headroom、目標摘要長度與輸出預算的開發者。
安全與存儲: 只存衍生索引;私信自動輪換需要已驗證的 owner / workspace 綁定與完成的 Dream 證據。成功的單元測試不能替代線上模型 compaction 測試。
生態說明: DSH 社區插件目錄 hosted 於獨立站點(如 SkillHub 目錄頁),與 DeepSeek / 幻方無官方從屬關係;安裝與審閱請以 GitHub 倉庫爲準。
結尾¶
Lossless Context 把 DSH 原生 compaction 與分層、可檢索的摘要 DAG 接在一起:源會話仍在,智能體用 lcm_recall 搜索、描述或展開原文;idle 與壓力策略、失敗重試與可選 DM 輪換都在 README 中有明確邊界。
- 目錄頁:https://www.skillhub.cn/plugins/Kerberos255/dsh-lossless-context
- 源碼與文檔:https://github.com/Kerberos255/dsh-lossless-context