DeepSeek Harness 插件:持久五層記憶系統 (nattocb/dsh-plugin-memory)

在 DeepSeek Harness (DSH) 的開發與使用中,代理往往僅能在單次會話內保留上下文,會話結束後即丟失重要信息。nattocb/dsh-plugin-memory 插件旨在解決這一問題,它爲 DSH 提供了一套持久化的五層記憶模型,使代理能夠跨會話“記住”用戶信息和項目細節。

核心功能

該插件通過兩層 Cordis 接口實現功能:在 agent/pre-step 階段注入相關記憶,並通過 ctx.tools.register 註冊 6 個專用工具。

五層記憶模型

記憶被結構化地分爲五個層級(L0-L4),每一層都有獨立的寫入路徑、截斷預算和注入規則:
- L0 用戶身份:位於 ~/.dsh/AGENTS.md,由用戶自行管理,插件不干預。
- L1 個人資料:存儲於 profile.md,包含工作背景、個人背景、當前關注和近期動態,支持版本輪換。
- L2 項目上下文:包含全局索引 MEMORY.md 和具體的 <topic>.md 主題文件。
- L3 每日日誌:以追加模式記錄每日內容,文件名爲 YYYY-MM-DD.md。
- L4 技能:繼承自現有 DSH 技能體系。

索引與主題拆分 (L2)

爲了保持文件輕量且易於管理,MEMORY.md 僅包含一行指針(不超過 150 字符),實際內容存儲在對應的 <topic>.md 文件中。索引文件有硬性限制(200 行或 40,000 字符),確保冷啓動時的上下文成本可控。

6 個代理工具

插件通過 ctx.tools.register 註冊以下工具,供代理在運行時調用:
- memory_write:寫入或覆蓋主題文件,可選添加索引行。
- memory_read:讀取主題文件或全局索引。
- memory_search:在全局/項目/雙向範圍內進行關鍵詞搜索。
- memory_daily:向當前工作目錄的每日日誌文件追加一行。
- memory_forget:刪除主題文件及其索引指針。
- memory_profile:讀取或合併更新個人資料。

相關性注入與自動提取

  • 相關性注入:每次步驟執行時,插件會根據最新查詢選擇相關主題文件,並以 <system-reminder data-role="memory"> 塊的形式插入上下文。若無 LLM 路由,則使用關鍵詞評分。
  • LLM 自動提取:當會話進入空閒狀態(60 秒防抖)時,插件會掃描最近的事件,利用 LLM 嘗試提取新的主題文件和索引行。

安裝與啓用

安裝過程需指定已啓用的插件配置文件(如 web)。安裝後需重啓服務。

dsh plugin --profile web add github:NattoCB/dsh-plugin-memory

重啓 dsh web 後,插件會在啓動時初始化內存存儲根目錄:
- 全局存儲:~/.dsh/memory/
- 項目存儲:<cwd>/.dsh/memory/

配置項

插件支持通過 DSH Bundle 配置,主要控制注入、提取和相關性篩選的行爲:

配置項 默認值 說明
enableEntryInjection true 每次會話開始時是否插入記憶引導說明。
enableRelevance true 每個步驟是否追加相關主題文件。
enableExtraction true 是否在空閒時觸發 LLM 自動提取。
maxRelevant 5 每次步驟最多展示的相關文件數。
relevanceTopK 8 LLM 排序時的候選文件數量。
llm.provider "" 用於提取/排序的 LLM 提供商,留空則僅使用關鍵詞。
llm.model "" 對應的模型名稱。

使用示例

安裝並重啓 dsh web 後,你可以通過以下方式使用記憶功能:

  1. 告知記憶:直接告訴代理一些值得記住的信息,或讓代理在處理完任務後自動提取。
  2. 檢查記憶根目錄:稍後打開會話時,檢查 ~/.dsh/memory/ 或項目目錄下的 .dsh/memory/,查看 MEMORY.md 和生成的主題文件。
  3. 使用工具:代理可以利用註冊的工具(如 memory_search)主動檢索歷史記憶。

注意事項

  • 無 LLM 依賴:即使未配置 llm 路由,插件依然可用。此時僅保留條目注入、關鍵詞相關性和個人資料輪換功能,自動提取和 LLM 排序將被禁用。
  • 數據即上下文:記憶文件通過 fs/promises 直接寫入,是代理讀取的上下文,而非權限授予機制。
  • 純插件架構:該插件不提供 HTTP API 或 GUI 面板,完全依賴 DSH 的內部接口運行。
  • 路徑限制:所有寫入操作被限制在存儲根目錄內,不涉及用戶 UID 層級。

生態背景

DeepSeek Harness 採用“一切皆插件”的架構。此插件由社區開發者 NattoCB 維護,旨在豐富 DSH 生態。關於該插件的完整目錄與源碼,可參考其 GitHub 倉庫。

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

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

小夜