dsh-mnemon-sync-monitor:讓本地 Markdown 知識庫與 dsh-mnemon 文檔層保持同步

前言

在 DSH 裏接 dsh-mnemon 做項目文檔檢索時,Documents Source 的行爲更像一次性快照:導入後不會感知知識庫裏的新增、修改或刪除。你在 Obsidian、Logseq 裏改過的筆記,不會自動反映到 mnemon 的文檔索引裏;刪掉的源文件,存儲裏的副本也會一直留着。社區維護者 Idhanker 的 dsh-mnemon-sync-monitor(分類:記憶)用文件監視與防抖合併,把本地 Markdown 目錄與 mnemon 的 Project Documents 對齊,並可選地把變更蒸餾進 Memory Spaces。下面介紹它的定位、能力與配置方式。

這是什麼

dsh-mnemon-sync-monitor 是 DeepSeek Harness 插件,倉庫 Idlehanker/dsh-mnemon-sync-monitor,當前 package 版本 0.2.0,MIT 許可證,要求 Node >= 22。

一句話定位:Real-time file watcher that keeps dsh-mnemon Project Documents in sync with local Markdown knowledge bases。

README 對 dsh-mnemon 0.5.39 的實測說明:Documents Source 沒有 fs.watch / chokidar 一類監視;index.json 是唯一真相源,也不會重掃目錄。本插件補的是「源目錄變了,存儲跟着變」這一環。

核心功能

文檔層同步

監視配置裏的 roots(絕對路徑目錄),在防抖窗口內合併變更後,在 Documents 索引鎖下原子應用:

源側變化 插件動作
新文件 創建 document
內容 hash 變化 原地更新,revision + 1
文件刪除 僅在 prune: true 時歸檔 document
未變化 跳過

啓動時會對每個 root 做一次全量 reconcile,之後跟隨文件系統變化。可選 dryRun: true 只檢測並打日誌,不寫存儲。

變更檢測策略

有 git 的 root 優先用相對上次記錄 commit 的 diff;非 git 目錄用 mtime 高水位掃描。Git 是優化路徑,不是硬性前提。

可選:蒸餾到 Memory Spaces

Documents 層是詞面匹配(含中文二元組),換說法提問可能搜不到剛寫的筆記。Memory Spaces 走向量召回,但 dsh-mnemon 自帶的 idleReview 工具表裏沒有 mnemon_remember 等寫入路徑。插件可在筆記變更後,通過配置的模型命令把結論寫入 Memory Spaces。

蒸餾有獨立主開關 distill.enabled、防抖 distill.debounceMs、每輪文件數與每文件 insight 上限等字段;distill.command 從 stdin 讀 {"messages":[...]},stdout 輸出 completion 文本,以短生命週期子進程調用,憑證與重試留在 Host 外。

設置頁與 Host API

插件 bundle 帶 Client:Settings → 知識庫同步,列出每個監視 root 的路徑、是否存在、Markdown 數量;可增刪 root、立即 Rescan、開關蒸餾、選蒸餾模型。增刪 root 與蒸餾開關無需重啓 DSH;改 root 會寫回 profile 的 cordis.patch.yml,且 README 說明只替換 roots: 序列,其餘行(含註釋)按字節保留。

Host 路由前綴 /mnemon-sync-monitor,例如 GET /mnemon-sync-monitor/state、POST /mnemon-sync-monitor/roots、POST /mnemon-sync-monitor/rescan 等;模型列表與主 Composer 輸入框下方共用 ctx.llm 註冊表,身份編碼爲 JSON.stringify([provider, model])。

安裝與啓用

安裝命令來自 README,需本地已有插件目錄路徑(不要用未在資料中出現的 github:owner/repo 形式):

dsh plugin --profile <name> add /path/to/dsh-mnemon-sync-monitor

在對應 profile 的 cordis.patch.yml 中配置監視目錄,例如:

- id: mnemon-sync-monitor
  name: dsh-mnemon-sync-monitor
  config:
    enabled: true
    roots:
      - C:\Users\me\Obsidian\vault
      - C:\Users\me\Logseq\pages
    debounceMs: 800
    minBytes: 200

保存後重啓 DSH。插件會在啓動時對每個 root reconcile 一次,再持續監視變更。

典型配置

常用字段

字段 默認 含義
enabled true 總開關
roots [] 監視的絕對目錄;空則等效禁用
storeDirectory ~/.mnemon/documents 寫入的 Documents 存儲路徑
debounceMs 800 靜默窗口後再 reconcile
minBytes 200 小於此大小的文件忽略(Logseq 空頁常小於 200 B)
prune false 源文件消失時是否歸檔存儲記錄
dryRun false 只檢測日誌,不寫
limitBytes 33554432 活躍容量上限(32 MiB)

開啓蒸餾示例

- id: mnemon-sync-monitor
  name: dsh-mnemon-sync-monitor
  config:
    enabled: true
    roots:
      - C:\Users\me\vault
    distill:
      enabled: true
      automatic: true
      debounceMs: 30000
      maxFilesPerRun: 10
      maxInsightsPerFile: 4
      command: 'node C:\path\to\distill-gateway.mjs'
    distillModel: '["workbuddy","hy4free"]'

未設置 distillModel 時表示跟隨設置頁默認;設爲 null 可清除固定模型。

適用場景與注意

適合已經在 DSH 裏使用 dsh-mnemon、且項目文檔來自 Obsidian / Logseq 等本地 Markdown 目錄的開發者:希望改筆記後檢索層能跟上,而不是重新手動導入快照。

幾點事實性限制來自 README:prune: false 時刪除源文件不會自動清存儲;蒸餾依賴你配置的 command 與模型,不是開箱即用的雲端調用;插件 deliberately 不 inject: ['llm'],無 LLM 服務時監視與 root 管理仍可用,模型列表爲空。

DSH 生態是「一切皆插件」;SkillHub 目錄頁 是社區站點,與 DeepSeek / 幻方無官方從屬關係。

安全與權限:插件以當前 DSH 進程權限讀寫你配置的 roots 與 storeDirectory,並可能執行 distill.command。安裝前請閱讀倉庫源碼與 MIT 許可證,確認路徑與 shell 命令符合你的環境策略。

結尾

dsh-mnemon-sync-monitor 解決的是 mnemon Documents 快照與本地知識庫脫節的問題:監視、防抖、按 hash 更新,並可選擇把變更蒸餾進 Memory Spaces。進一步瞭解與 issue 見 GitHub 倉庫,目錄介紹見 SkillHub 插件頁。

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

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

小夜