DSH(DeepSeek Harness)開發者在構建長對話或複雜工作流時,常面臨上下文窗口溢出的問題。dsh-plugin-om 插件通過 Observational Memory 方式管理上下文,解決這一問題。
該插件由 FanetheDivine 維護。
功能¶
插件提供以下能力:
* 自動壓縮主會話歷史,並在摘要過大時再次合併。
* 通過工具循環生成摘要,保留用戶消息、系統消息和未壓縮內容。
* 保留工具加載與手動加載的 skill 原文,並在壓縮前再次確認。
* 使用 recall 按消息序號回看原文,使用 recall-semantic 進行本地語義檢索。
* 記錄壓縮過程、耗時和 token 用量。
* 壓縮會話記錄顯示在子智能體列表,隨父會話 Session 日誌一起下載。
* 在瀏覽器中顯示壓縮結果、錯誤和降級警告。
安裝與前置條件¶
插件要求 DSH 0.2.0-rc.2 或更高版本。
執行以下命令安裝:
dsh plugin --profile <profile> add dsh-plugin-om
重啓 DSH 後,檢查配置是否加載。
如果使用 pnpm 11 安裝失敗,可在 profile 的 pnpm-workspace.yaml 中設置 allowBuilds: true,或允許 onnxruntime-node、protobufjs 和 sharp 構建。
配置¶
在 WebUI 插件側邊欄打開 dsh-plugin-om 行配置頁,或編輯 $DSH_HOME/profiles/<profile>/cordis.patch.yml。配置支持熱更新,$DSH_HOME 默認爲 ~/.dsh。
- id: dsh-plugin-om
config:
observeThresholdTokens: 35000
主要配置項如下:
| 配置項 | 默認值 | 說明 |
|---|---|---|
observeThresholdTokens |
35000 |
觀察壓縮閾值 |
reflectThresholdTokens |
40000 |
摘要合併閾值 |
tailMessageCount |
20 |
觸發後保留的完整消息數 |
compressMaxTokens |
模型默認值 | 單輪生成上限 |
compressProvider |
會話路由 | 壓縮 provider,需與 compressModel 同時配置 |
compressModel |
會話路由 | 壓縮模型,需與 compressProvider 同時配置 |
compressReasoningEffort |
模型默認值 | 思考等級 |
compressSkipReasoning |
true |
是否忽略 reasoning |
rateLimitWaitMs |
60000 |
429 後的等待毫秒數,0 表示不等待 |
modelDir |
DSH 共享目錄 | 嵌入模型目錄 |
omEnabled |
true |
是否啓用自動壓縮 |
recallEnabled |
true |
是否啓用原文召回 |
semanticRecallEnabled |
true |
是否啓用語義召回 |
debug |
開發環境啓用 | 是否輸出步驟日誌 |
較小的觀察閾值更早節省上下文,較大的閾值提供更多摘要信息。只有 reasoning 包含關鍵決策時才需將 compressSkipReasoning 設爲 false。
典型用法¶
- 在 WebUI 插件側邊欄打開
dsh-plugin-om行配置頁,或編輯配置文件。 - 設置
observeThresholdTokens以控制壓縮頻率。 - 在對話中調用
recall工具按消息序號回看原文,或使用recall-semantic進行本地語義檢索。 - 在瀏覽器中查看壓縮結果、錯誤和降級警告。
注意事項¶
- 較小的觀察閾值更早節省上下文,較大的閾值提供更多摘要信息。
- 只有 reasoning 包含關鍵決策時才需將
compressSkipReasoning設爲 false。 - pnpm 11 安裝失敗時,在 profile 的
pnpm-workspace.yaml中設置allowBuilds: true,或允許onnxruntime-node、protobufjs和sharp構建。 - 插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。
結語¶
該插件通過自動壓縮和原文召回機制,幫助 DSH 開發者管理長對話上下文。查看目錄頁和 GitHub 倉庫獲取更多信息。