前言¶
在 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。