dsh-memory-ga:DeepSeek Harness 的有門控層疊記憶插件

前言

Coding agents often forget what they just did, or vector-based “auto-memory” products remember too much—drafts, wrong turns, and guesses. dsh-memory-ga takes a different path. It follows the discipline “No Execution, No Memory”: it only stores long-term facts after tools (or the user) have confirmed reality. It provides a small, trustworthy index of facts and rules, a session notepad, and a “settlement ritual” to turn lessons into Skills without silently poisoning memory.

核心功能

根據已覈實的事實,該插件具備以下能力:

  • Verified only:只有在工具(或用戶)確認現實後,纔會進行長期寫入。
  • Hard-injected L1:每輪對話都會硬注入一個 ≤~30 行的索引 + RULES,而非一個可能永遠不會被打開的指針。
  • Working notepad:當會話記事本 key_info 非空時,會重新注入到上下文中。
  • Gated settlement:start_long_term_update 會開啓一個協議,但不會自動編輯你的文件。
  • Skills stay Skills:可複用的流程 → DSH Skills。記憶不是第二個 SOP 倉庫。
  • Local & auditable:所有數據均爲 $DSH_HOME/memory 下的純 UTF-8 文本,可 diff、備份、手動編輯。

目錄結構

插件在 $DSH_HOME/memory 下維護以下結構:

$DSH_HOME/memory/
  L0_memory_management.md   # 憲章(如何記憶)
  global_mem_insight.txt    # L1:導航 + RULES → 硬注入
  global_mem.txt            # L2:已驗證的事實 → 按需讀取(≤9 行的章節 + 指針)
  l3/<topic>.md             # L3:長篇事實檔案(L2 章節指向此處)
  .working/<session>.txt    # 可選的會話記事本轉儲

插件不包含筆記式的雜物抽屜,也沒有記憶樹 L4。l3/ 僅存放事實檔案,流程屬於 Skills(Skill = 怎麼做,L3 = 是什麼)。

提供的工具

工具名 功能
update_working_checkpoint 替換會話記事本 (key_info)
start_long_term_update 返回 L0 + 結算協議(不自動寫入)
memory_status 顯示路徑、L1/L2 大小、L3 檔案數、記事本是否爲空、nudge 計數器

插件提供可選的軟提醒(默認開啓):在經過足夠步驟後,溫和地提醒進行 checkpoint 或 settlement。絕不強制工具調用,絕不自動寫入 L1/L2。

安裝與啓用

在 DSH 的 profile 目錄下(例如 $DSH_HOME/profiles/web),使用 pnpm 安裝:

pnpm add dsh-memory-ga@github:DiligenceLai/dsh-memory-ga

確保 profile 加載了該包(通常在 dsh.profile.bundles 中列出,或依賴包內的 cordis.patch.yml 自動插入)。

配置

在 Cordis 配置中添加 memory-ga 插件 ID:

- id: memory-ga
  config:
    # root: null            # 默認:$DSH_HOME/memory
    bootstrap: true
    injectL1: true
    injectWorking: true
    l1MaxChars: 1200
    workingMaxChars: 1200
    persistWorkingFile: true
    nudge:
      enabled: true
      workingEvery: 12
      settleAfterSteps: 15
      maxWorkingNudges: 3
      maxSettleNudges: 2

硬依賴:插件聲明瞭 inject: ["tools", "systemPrompt", "llm"]。運行內存記事本和 nudge 注入需要 @deepseek-ai/dsh-llm(需具備 createUserMessage 能力)存在於宿主組合中。如果缺失,插件仍會加載,但 memory_status 會警告記事本/nudge 未注入。

注意:workingMaxChars 是存儲和注入會話記事本的單一上限,因此 memory_status.workingChars 始終反映模型實際看到的內容。

典型用法

  1. 檢查狀態:重啓 DSH 或重新加載 profile 後,在會話中運行 memory_status,應能看到 $DSH_HOME/memory 路徑及相關計數。
  2. 更新記事本:運行 update_working_checkpoint 並附帶簡短備註,下一輪模型步驟應包含 ### [WORKING MEMORY]。
  3. 長期更新:運行 start_long_term_update 查看協議及完整的 L0 內容。此時磁盤文件不會改變,直到你手動編輯。
    • 首次啓動會根據模板創建缺失的 L0/L1/L2,且不會覆蓋現有文件。

適用場景與注意

  • 適用場景:你需要可控的結晶化過程和 Git 友好的真相存儲,而不是自動的向量檢索或自動保留。
  • 注意 1:這不是一個向量數據庫、TEMPR 或自動 git 保留產品。
  • 注意 2:這不是 DSH Skills 的替代品。
  • 注意 3:這不是自動生成 Skills 的工具。
  • 隱私:倉庫僅包含通用模板。你真實的 L1/L2 文件位於你機器上的 $DSH_HOME/memory 中,永遠不會包含在此包中。不要將個人記憶文件或絕對路徑提交到 fork 中。

總結

dsh-memory-ga 爲 DeepSeek Harness 提供了一種基於文件系統的、有門控的層疊記憶方案。它通過硬注入索引、會話記事板和有門控的結算協議,幫助 Agent 在保留必要事實的同時,避免記憶污染。

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

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

小夜