maestro-memory:DSH 跨會話持久記憶與待辦

前言

在 DSH 裏做多輪對話,上下文關掉就沒了;想讓人記住偏好、項目約束或未完成事項,要麼每輪塞長 prompt,要麼自己維護外部筆記。maestro-memory 把記憶和待辦落成本地 Markdown,掛在 DSH 工具與快照裏,並可選用確認門控寫入;同一套存儲也能通過 MCP 給其它客戶端用。

這是什麼

maestro-memory(npm 包 @ddtcorex/maestro-memory,Cordis 插件 id 爲 maestro-memory)由維護者 ddtcorex 發佈,分類屬於「記憶」類 DSH 插件。當前 package 版本爲 5.0.0,許可證 MIT。

插件提供跨會話的持久記憶與待辦:數據默認存放在 ~/.dsh/maestro-memory(可通過配置或環境變量改路徑);存儲格式與 harness 解耦,DSH 綁定是其中一種適配方式。社區目錄頁:https://www.skillhub.cn/plugins/ddtcorex/maestro-memory;源碼與文檔:https://github.com/ddtcorex/maestro-memory。

核心功能

記憶軌道與工具

memory 工具覆蓋五條軌道:memory(全局)、user、project、key、daily,並支持歸檔與展開。key 軌道需通過 memory_suggest 門控,不能直接隨意寫入。

工具 作用
memory 五軌道讀寫與 archive/expand
maestro_todo 跨會話待辦(life / work / project / daily,帶 id;智能視圖最多 8 條)。與 harness 會話內任務列表工具 todo_write 區分命名
memory_search 全庫 BM25 詞檢索(忽略變音符號);默認緊湊命中,傳 id 可展開單條
memory_suggest 向 SUGGESTIONS.jsonl 提交待批准建議,需人工確認

寫入時會對敏感片段做脫敏(如 API key、密碼、token 等標記爲 [Filtered:…],純憑證內容會過濾爲 content filtered)。

系統提示快照

memory:snapshot(默認順序 500)向提示詞注入有上限的確定性上下文,大致包括:USER、MEMORY、KEY(按分支過濾)、項目上下文(自動召回 top-4)、近兩日 daily、頁眉與紀律說明。各段有字節上限與條目數上限;超限時會壓縮或截斷,避免單條巨大條目擠佔整段配額。

可選配置:

  • autoMemory:默認關閉,可按需開啓自動記憶等行爲。
  • writeGuard:默認關閉;開啓後統計連續「有實質工作但未寫 daily/project」的人類輪次,達到 threshold 時在快照中插入 # ⚠️ Memory Write Backlog 提醒。該配置在 apply() 時讀取一次,修改後需改 profile 並重啓 host。

Web 界面與 RPC

插件註冊一個 conversation.view 插槽(maestro-memory,order 40),含 Memory / Queue / Todo / Skills / Health 等標籤。Memory 只讀列表各軌道,並支持手工添加條目(走 memory.mutate,無需模型回合)。Health 展示覆蓋率、近 7 日 daily、最長項及多維評分等;快照渲染成本可通過 /maestro-memory-health 查看統計(僅字節與條目計數,不保留正文)。

其它客戶端(MCP)

同一套文件可被 MCP 客戶端讀寫,工具包括 memory_search、memory_context、memory_list、memory_add、memory_suggest;key 仍走門控。會話開始宜先調用 memory_context。MCP 側默認解析目錄順序爲:配置 memoryDir → MAESTRO_MEMORY_DIR → 隔離的 DSH_HOME → 中性根目錄 ~/.maestro-memory。升級後若存儲遷移,需重啓所有曾打開該存儲的客戶端,避免舊進程在遺留路徑上寫入。

環境與依賴

  • Node.js:^22.19.0 || >=24.0.0
  • 包管理:pnpm 11+(packageManager 爲 pnpm@11.7.0)
  • DSH:需處於 package.json 聲明的 @deepseek-ai/dsh-client-* peer 範圍內

從源碼構建(維護者倉庫內):

pnpm install
pnpm run build   # -> lib/
pnpm test        # vitest run

安裝與啓用

在 DSH profile 中安裝(運營側示例,路徑按你本機 checkout 替換):

dsh plugin --profile web add link:<path-to>/maestro-memory

生產環境可固定到 GitHub 某 tag 或 commit:

dsh plugin --profile web add github:ddtcorex/maestro-memory#<tag-or-sha>

包內已附帶 cordis.patch.yml(含 webServer 等 connection 聲明,DSH 0.2.x 需在 rpc.handle 註冊通道前具備)。不要在 profile 裏重複粘貼該 patch。 若從 npm 安裝,可 pin @ddtcorex/maestro-memory@<version>;對 link: 本地目錄每次 git pull 後需再執行 pnpm install && pnpm build。

profile 片段示例(插入項):

- insert:
    - id: maestro-memory
      name: '@ddtcorex/maestro-memory'
      config:
        memoryDir: null      # -> ~/.dsh/maestro-memory
        snapshotOrder: 500
        autoMemory: { enabled: false, userMessage: true, desensitize: true } # opt-in
        writeGuard: { enabled: false, threshold: 2 }  # per-turn write watchdog, opt-in

writeGuard.threshold 統計連續多少輪「工作但未寫 daily/project」;小於 1 的值按 1 處理。

典型用法

  1. 安裝並重啓 DSH web profile 後,在對話中讓模型使用 memory_search 檢索既有記憶,或用 memory 在允許軌道上追加/更新條目。
  2. 涉及 key 或需人工把關的變更時,走 memory_suggest,在 UI Queue 中批准後再落盤。
  3. 用 maestro_todo 維護跨會話待辦,與單次會話的 todo_write 分開管理。
  4. 在 Memory 標籤手動選軌道添加條目,適合不經模型直接記賬。
  5. 若同時在 Cursor / Claude Code / Codex 使用,可按 README 在對應 MCP 配置裏指向 node <checkout>/lib/mcp/main.js(或安裝後的 maestro-memory-mcp),會話首呼 memory_context。

MCP 配置形態(路徑替換爲實際 checkout):

{
  "mcpServers": {
    "maestro-memory": {
      "command": "node",
      "args": ["<checkout>/lib/mcp/main.js"]
    }
  }
}

適用場景與注意

適合需要在 DSH 中長期積累用戶偏好、項目上下文、日程類 daily 記錄,並希望待辦與記憶同一存儲、可檢索可門控的團隊或個人。

使用前請注意:

  • 插件以當前 dsh 進程的權限 讀寫本地目錄;安裝前請閱讀源碼與 MIT 許可證,確認 memoryDir 與 Git 同步(若啓用)符合你的安全策略。
  • 敏感信息雖有過濾規則,仍不應把明文密鑰當作「可隨意寫入記憶」的默認做法。
  • SkillHub 目錄是社區站點,與 DeepSeek / 幻方無官方從屬關係;星標與熱度以各平臺實時數據爲準(GitHub 倉庫當前公開 star 數爲 1)。

結尾

maestro-memory 把跨會話記憶、待辦、快照注入和可選寫入監護收進一個 DSH 插件,並保留 MCP Neutral 存儲。要進一步瞭解參數與變更記錄,見倉庫 README.md 與 CHANGELOG.md。

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

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

小夜