dsh-memory-hub:DSH 的文件原生長期記憶中樞

前言

在 DeepSeek Harness(DSH)裏做項目,會話會結束,但結論往往還散落在聊天記錄裏:接口約定、踩坑記錄、團隊約定,下次開新任務又要從頭對齊。把筆記丟進外部文檔可以,但和 Harness 的檢索、工具調用、審批流程通常是兩套系統。

下面介紹社區插件 dsh-memory-hub(維護者 zhiwuli0228,分類:記憶)。它把長期記憶做成用戶目錄下的 Markdown 文件:本地優先、可 git、寫入必須經 DSH 原生審批,模型不能自批。README 將其定位爲「文件原生、用戶掌控、人類批准寫入」的長期記憶中樞;npm 包名 dsh-memory-hub。

這是什麼

一條知識是一個帶 YAML frontmatter 的 Markdown 文件,存放在 Hub 目錄(默認 $DSH_HOME/memory-hub,可在插件配置 config.root 覆蓋)。每個用戶回合開始時插件做確定性檢索,向上下文注入緊湊索引;模型按需讀取全文並記錄引用;任務結束時有回寫評估;候選知識進入 pending/,經審批後才成爲 accepted 權威知識。

檢索側不依賴向量庫:關鍵詞 + 類型 + 作用域 + 狀態,並對 CJK 做二元組分詞。V0.1.5 起增加預檢相關性門控(min_score / local_boost)、指令式回寫包尾、Web 面板命中/引用計數、系統級 memory-hub skill,以及夜間確定性維護(只報告 + 生成 pending 提案,不自動提交)。README 記錄已在 DSH Desktop Runtime 0.2.1-rc.5 完成宿主冒煙;package.json 中 engines 要求 dsh >= 0.2.1-rc.5、node >= 20,許可證 MIT。

核心能力

回合內的記憶閉環

環節 說明
自動預檢 每個用戶回合第一步檢索 accepted 知識,冪等鍵 (sessionId, turn)
緊湊注入 只注入 ID、標題、一句話摘要、作用域;細節通過工具按需讀取
檢索與讀取 memory_search / memory_get;區分「檢索命中」與「實際使用」(memory_cite)
候選與提交 memory_propose 寫 pending/;memory_commit 走 DSH 審批,headless 或審批關閉時提交會被拒絕
門禁 變更類工具需要本回合有效預檢;預檢故障默認放行,可在 policy.gate.on_preflight_error 設爲 deny
收尾 memory_close_task;未評估的回合自動記 deferred
彙總 管理員用 memory_consolidate 將項目知識晉升爲 global 候選,按 promoted_from 冪等

Web 面板

安裝含面板的版本並重啓 DSH 後,左側邊欄會出現「記憶中樞」圖標。主區域提供總覽、配置(核心/子工作區,實時寫入 config.yaml)、知識瀏覽、待審批列表(只讀,不代替 DSH 審批)、活動與策略、以及 10 個 memory_* 工具說明。數據經 Host 路由 /dsh-memory-hub/api/overview、/knowledge、/config 讀寫,僅允許迴環請求。

系統級 Skill

插件在 Host 全局 skills 層註冊 memory-hub,按需加載,不佔每輪上下文正文;覆蓋預檢 → 讀取 → 引用 → 必要時再檢索 → 關任務的固定流程,以及作用域、寫入審批與夜間維護等規範。用戶也可通過 skill 工具顯式加載。

夜間維護

policy.maintenance.enabled: true 時,Host 內插件定時器在本地時間每天 03:00 巡檢(錯過則在下次啓動補跑)。維護只寫 <hub>/reports/ 報告並按策略生成 pending 提案,永不調用 memory_commit、不刪不改正文。也可手動 memory_maintenance,apply: "report" 僅看報告。

安裝與啓用

插件以 profile bundle 形式發佈,應通過 DSH 插件管理器安裝 npm spec,而不是隻做全局 npm install。

DSH 插件管理器(推薦):

dsh plugin --profile <name> add dsh-memory-hub@0.1.5

查看包內容:

npm pack dsh-memory-hub@0.1.5

DSH Desktop 用戶應在設置裏的插件管理器安裝 dsh-memory-hub@0.1.5;Desktop 的 desktop profile 由 Electron 管理,不要用 CLI 改該 profile。

本地目錄或 GitHub(倉庫已含 dist/index.js 與 client.js,無需再構建):

dsh plugin --profile <name> add <本地目錄或 github:用戶/倉庫>

自託管插件市場索引(在 DSH 插件頁開啓實驗性「自定義插件市場」後添加):

https://cdn.jsdelivr.net/gh/zhiwuli0228/dsh-memory-hub@main/site/index.json

安裝後重啓 DSH,或等待插件管理器熱加載。插件僅在 ~/.dsh/memory-hub(或 $DSH_HOME/memory-hub)下創建配置與目錄,不會拖慢宿主啓動。

配置要點

策略與工作區寫在 <root>/config.yaml,修改後 watcher 熱加載,無需重啓。示例結構(字段含義見 README):

version: 1
core_workspaces:
  - id: product
    name: '產品主倉庫'
workspaces:
  - id: backend
    core_id: product
    root: 'D:/projects/backend'
    domains: [backend]
    admin: true
    enabled: true

policy:
  preflight:
    mode: per-turn
    pack_tokens: 600
    max_hits: 6
    min_score: 1.0
    local_boost: 1.2
    inject: compact
  gate:
    mode: enforce
    on_preflight_error: allow
    unknown_tools: allow
    mutating_tools: [bash, pwsh, write, edit, str_replace_editor]
  maintenance:
    enabled: true
    time: '03:00'
    apply: propose
    all_cores: true
    max_proposals: 10
    stale_pending_days: 30
    stale_citation_days: 90

只有當前會話工作目錄落在某個 workspace.root 內時,纔會獲得 project:<id> 作用域;否則僅見 global/domain 知識。項目知識不會自動晉升到 global。

典型用法

  1. 安裝插件並配置 workspaces,把常用倉庫 root 指到本機路徑。
  2. 正常對話:回合開始自動預檢注入摘要;涉及歷史決策時模型可 memory_get 讀全文並 memory_cite 記用途。
  3. 任務結束前調用 memory_close_task 做回寫評估;值得保留的內容用 memory_propose 進 pending/,在 DSH 審批通過後 memory_commit 落盤。
  4. 在側邊欄「記憶中樞」檢索、過濾知識;待審批頁只讀瀏覽候選,批准仍在會話審批流中完成。
  5. 項目管理員需要跨倉沉澱時,用 memory_consolidate 手動晉升;夜間維護或 memory_maintenance 生成報告與維護類 pending,由人決定是否提交。

工具一覽:memory_search、memory_get、memory_status、memory_preflight、memory_cite、memory_propose、memory_commit、memory_close_task、memory_consolidate、memory_maintenance。

適用場景與注意

適合誰:希望在 DSH 內建立可檢索、可追溯、可人工干預的項目記憶庫;接受「文件即數據源」、無默認聯網同步;願意在寫入路徑上走 DSH 審批的開發者與團隊。

安全與邊界(README 摘要):默認本地優先、無網絡請求;路徑經真實化與作用域校驗;卸載插件保留全部記憶文件;V0.1 每個 Hub 根目錄僅一個寫者,第二個寫者會使該根只讀。插件以當前 DSH 進程權限運行,安裝前請閱讀源碼與 MIT 許可證,確認 Hub 目錄與 workspaces[].root 不會指向不應被 Agent 訪問的路徑。

已知限制(節選):審批通過路徑依賴交互式審批;未驗證 PTC run_code 嵌套、外部 CLI、多進程共享 Hub;夜間維護依賴 Host 運行;多 core 維護串行,單 core 失敗當天不重試;維護不出現在官方「自動化任務」欄。

結尾

dsh-memory-hub 把 DSH 的長期記憶落在用戶可控的文件與審批流上,而不是黑盒上下文或不可審計的自動寫入。目錄與發現入口見 SkillHub 插件頁;源碼、文檔與兼容說明見 GitHub 倉庫。

  • 目錄頁:https://www.skillhub.cn/plugins/zhiwuli0228/dsh-memory-hub
  • GitHub:https://github.com/zhiwuli0228/dsh-memory-hub
  • npm:https://www.npmjs.com/package/dsh-memory-hub
羽毛球分组比赛记分
小程序二维码

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

小夜