前言¶
在 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 - 包管理:
pnpm11+(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 處理。
典型用法¶
- 安裝並重啓 DSH web profile 後,在對話中讓模型使用
memory_search檢索既有記憶,或用memory在允許軌道上追加/更新條目。 - 涉及
key或需人工把關的變更時,走memory_suggest,在 UI Queue 中批准後再落盤。 - 用
maestro_todo維護跨會話待辦,與單次會話的todo_write分開管理。 - 在 Memory 標籤手動選軌道添加條目,適合不經模型直接記賬。
- 若同時在 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。