前言¶
DeepSeek Harness(DSH)擁有內置的聊天代理,但每個新會話都從零開始。dsh-memory-amem 插件向 DSH 注入 A-MEM 風格的長期代理記憶。每條用戶消息都被捕獲爲結構化筆記,自動通過 LLM 驅動的演化步驟鏈接到現有記憶,並在每一輪重新注入到系統提示中,使模型能夠回憶先前的對話。
核心功能與架構¶
該插件實現了 A-MEM 的核心流程,並將 DSH 的會話事件與系統提示注入機制結合,構建了一個完整的記憶閉環。
工作流程¶
記憶引擎的運行分爲六個步驟:
1. 准入門:首先通過規則過濾器(如敏感詞、過大文本塊)和語義去重、信任分數判斷來過濾噪音。不符合條件的消息會直接終止流程。
2. 分析內容:利用 LLM 提取消息的關鍵詞、一句話上下文和標籤。如果 LLM 輸出不可用,會回退到 TF 算法。
3. 檢索鄰居:基於存儲的筆記文檔集進行檢索,混合使用 BM25(k₁=1.5, b=0.75)和 TF-IDF 的餘弦相似度,返回 Top-K 相關筆記。
4. 決定演化:LLM 根據分析結果和檢索結果,選擇 NO_EVOLUTION、STRENGTHEN、UPDATE_NEIGHBOR 或 STRENGTHEN_AND_UPDATE 之一。
5. 應用演化:STRENGTHEN 增加鏈接和標籤,UPDATE_NEIGHBOR 重寫相關筆記的上下文和標籤。
6. 持久化筆記:將筆記寫入 ~/.dsh/memory-amem/notes/*.json,每 5 秒刷新一次,索引在下次初始化時重新加載。
混合檢索與防禦¶
- 混合檢索:結合 BM25 和 TF-IDF,在實體提升等策略下,顯著提升了多跳推理場景下的召回率。
- 提示注入防禦:插件內置了針對系統提示注入的防禦機制,確保記憶內容的安全注入。
面向模型的工具¶
插件向 DSH 的模型暴露了四個工具:
* memory_search:搜索記憶庫。
* memory_add:手動添加記憶。
* memory_recent:獲取最近的記憶。
* memory_stats:記憶庫統計信息。
安裝與啓用¶
該插件遵循 DSH 的社區插件標準模型。安裝時需要指定 --profile web 參數,以便通過 dsh plugin 命令讀取包配置並注入到 DSH 主進程和 Web GUI 中。
dsh plugin --profile web add
LoCoMo 基準評估¶
作者在 LoCoMo 數據集(1 對話 × 199 QA 對)上進行了評估,使用 deepseek-chat 和 deepseek-reasoner 作爲下游模型。
評估結果 (v0.2.0):
| 類別 | 描述 | deepseek-chat | deepseek-reasoner |
|---|---|---|---|
| 1 | 單跳事實 | 21.9% | 25.0% |
| 2 | 多跳推理 | 45.9% | 37.8% |
| 3 | 時間/反事實 | 0.0% | 7.7% |
| 4 | 是/否 | 44.3% | 47.1% |
| 5 | 開放式 | 4.3% | 4.3% |
| Overall | 總體 | 28.6% | 29.1% |
關鍵觀察:
* 使用較小的 DeepSeek 模型即可超越 GPT-4 的閉卷基準表現(約 37%)。
* 多跳推理類別受益於 BM25 召回率提升和實體加權,從 0% 提升至 46%。
* 類別 3(時間/反事實)和類別 5(開放式)仍表現較弱。類別 3 的失敗主要是因爲 LoCoMo 標註答案具有相對性(如 “9 June 2023 前一週”),而檢索器缺乏日期代數運算能力。
適用場景與注意¶
- 適用場景:需要長上下文保持、多輪對話記憶以及基於歷史信息進行推理的 DeepSeek Harness 場景。
- 注意事項:該插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證(MIT)。由於存在准入門,某些特定類型的對話(如僅包含問候語)可能不會被捕獲爲結構化記憶。