前言¶
在 DeepSeek Harness(DSH)的長會話場景中,上下文窗口限制是繞不開的問題。壓縮摘要雖然能減少 token 佔用,但經過多輪壓縮後,設計決策的理由、被否決過的方案、關鍵約束等細節往往會丟失。本插件將記憶工作前置到會話進行過程中,通過後臺持續沉澱觀察與反思,讓長會話在經過多輪壓縮後依然保持連貫。
核心功能¶
該插件在後臺維護一套記憶流水線,並在 DSH 的壓縮機制上做了特殊處理:
- 後臺記憶流水線:包含觀察器、反思器和清理器。觀察器將會話事件蒸餾爲帶時間戳和相關度的記錄;反思器提煉長期事實;清理器修剪已被反思覆蓋的觀察。整個過程由
turn/end等事件按 token 閾值驅動。 - 壓縮即渲染:當 DSH 發起壓縮摘要調用時,插件在
llm/stream瀑布中攔截。如果記憶非空,直接返回渲染好的記憶文本,實現零模型調用;記憶爲空時回退 DSH 原生摘要。 - 主動壓縮:支持
calibrated(固定閾值)和ratio(上下文窗口比例)兩種模式。會話空閒且上下文達到閾值時自動觸發。 - recall 工具:模型可調用
recall(id)恢復任意觀察或反思背後的原始會話證據。 - 記憶選項卡:對話視圖環新增「記憶」頁,實時展示記憶清單、worker 進度、內容與調試日誌。
- 回退按鈕:每條用戶消息下方新增按鈕,支持一鍵分叉會話並將原文放回輸入框。
安裝與啓用¶
安裝前請確保 DSH 版本符合要求。該插件僅支持 DeepSeek Harness 預發佈線(0.1.5-rc.2, 0.1.7-rc.1, 0.2.0-rc.1)。
通過 DSH CLI 安裝:
dsh plugin --profile web add dsh-observational-memory
安裝完成後,重啓 DSH Web 服務。在 Web 界面中,進入 設置 → 插件 → 插件配置,找到 Observational Memory 卡片即可進行配置。
配置¶
配置項位於 observational-memory 命名空間下。核心參數如下:
- 閾值控制:
observeAfterTokens: 觸發觀察器的增量 token 數(默認 10000)。reflectAfterTokens: 觸發反思器的增量 token 數(默認 20000)。compactAfterTokensMode: 閾值模式選擇(calibrated或ratio)。compactAfterTokensRatio: 比例模式下的閾值(默認 0.68)。
- 模型覆蓋:
model: 可選覆蓋記憶 worker 使用的模型。設置卡片中支持按提供商、模型 ID、推理強度三級選擇。全部留空則跟隨會話當前模型。
- 其他設置:
passive: 被動模式開關。設爲true時關閉主動後臺觸發(僅保留手動觸發和 recall 功能)。debugLog: 是否記錄調試日誌。
使用¶
- 查看記憶:在對話視圖環中點擊「記憶」選項卡,可以查看當前可見記憶、完整記錄以及 worker 的運行進度。
- recall 工具:模型在壓縮後的記憶中看到記憶 id 後,可調用
recall(id)獲取帶時間戳的原始會話證據。 - 回退操作:點擊用戶消息下方的「回退」按鈕,會在該消息之前的最近輪次邊界處分叉出一個新會話,並將該消息的原文放回輸入框,方便修改後重新發送。
適用場景與注意¶
- 版本限制:僅支持 DSH 預發佈線(0.1.5-rc.2, 0.1.7-rc.1, 0.2.0-rc.1),正式版暫不支持。
- 子代理:子代理會話不參與記憶與主動壓縮。
- Headless 模式:記憶選項卡依賴 Typert Remote 端點,在無 API Gateway 的 Headless 運行中不可用,但其餘功能正常。
- 回退按鈕限制:在首輪消息、純附件消息或無文本消息時,回退按鈕保持禁用。
- Token 估算:所有 token 計數爲估算值(約 4 字符/token)。
結語¶
該插件通過後臺流水線和零模型調用的壓縮渲染,解決了長會話上下文丟失的問題。你可以通過 GitHub 倉庫 epcn-fla/dsh-observational-memory 獲取源碼與更多細節。