前言¶
DeepSeek Harness (DSH) 生态中已有数十个记忆插件,但缺乏统一的共享标准。官方核心仅附带默认关闭的 MCP 记忆示例。此插件旨在填补这一空白:通过纯 Markdown 文件构建确定性、分层且跨智能体可识别的记忆系统。
它提供 Memory Standard Protocol (mm),支持分层记忆结构、确定性预算管理、跨智能体互操作性以及会话日志吞噬。该插件提供 dsh 工具链和独立的 CLI,核心库依赖 Node.js 内置模块,无额外依赖。
核心功能¶
分层记忆结构¶
采用分层设计:
* MEMORY.md:手加载的索引文件,作为快速浏览的入口。默认硬性上限为 200 行或 25 KiB。
* memories/
确定性预算管理¶
采用严格的预算限制,杜绝静默截断数据:
* 写入预算:每次写入限制字符数,超限则返回使用量信息,要求智能体自行压缩重试。
* 文件上限:单个详情文件有硬性字节上限。
* 索引上限:当 MEMORY.md 超过行数或字节限制时,系统会明确报错并要求重写索引,而非自动截断。
跨智能体互操作性¶
- 开放格式:基于纯 Markdown,不依赖封闭协议。
- URI 识别:支持
mm://<memoryId>/<topic>格式的可移植 URI。 - Schema 定义:提供
schema/memory.schema.json用于描述笔记结构。 - API 开放:提供公开的读写接口,任何 agent 或工具均可读取或写入同一文件。
写入时机与快照¶
- 冻结快照:
mem_read在会话开始时加载一次快照。会话内的读取和搜索均基于该快照,写入操作先暂存(pendingWrites),仅在会话结束后持久化到磁盘。这保证了会话视图的一致性,并保护了提示缓存。 - 吞噬协作:
mem_digest工具可识别官方 dsh 的会话日志和压缩输出,从中提炼候选记忆,但不会自动写入,需由智能体决定提交。
工具链¶
插件提供以下命令行工具:
* mem_read:读取索引或指定详情。
* mem_write:写入或更新笔记。
* mem_search:搜索记忆(支持 FTS5 或扫描模式)。
* mem_budget:输出预算报告(包含索引上限、单笔记使用量、待写入项)。
* mem_digest:从日志文件中提取记忆候选。
安装与启用¶
插件作为 dsh bundle 安装。在包含包的目录下运行:
dsh plugin --profile demo add github:JohnXu22786/memory-standard
安装后,启动配置文件:
dsh --profile demo
此时,mem_* 工具链以及 memory-standard 系统部分将加载。
配置¶
插件自带默认配置,所有值均可通过覆盖 memory-standard 行来修改。配置项包括:
root:记忆根目录,默认为$DSH_MEMORY_ROOT。memoryId:记忆 ID。indexLines/indexBytes:MEMORY.md 的行数和字节硬性上限。detailMaxBytes:单个详情文件的最大字节。defaultWriteBudget:每次写入的默认字符预算。nudge:会话结束或周期性提醒的开关与间隔。
典型用法¶
命令行工具¶
# 读取记忆
mem_read
# 搜索记忆
mem_search deploy
# 查看预算
mem_budget
# 从日志中提取记忆(不写入)
mem_digest --file session.log.jsonl
编程接口¶
在 dsh 插件代码中,可通过服务获取内存实例进行操作:
const memory = ctx.get('memory');
// 写入笔记
memory.write({
topic: 'deploy-region',
content: 'us-east-1',
summary: 'Deployment region'
});
// 搜索记忆
const results = memory.search('deploy');
适用场景与注意¶
- 适用对象:需要长期记忆、多会话状态保持以及跨智能体协作的开发者。
- 环境要求:需要 Node.js >= 20.0.0。
- 版本兼容:已针对
dsh@0.1.0-rc.6验证。 - 权限注意:该插件以当前 dsh 进程权限运行。安装前建议检查源码与许可证(MIT)。
总结¶
该插件通过引入 mm 协议,为 DSH 生态提供了一个标准化的记忆层。它利用纯 Markdown 文件和确定性预算,解决了数据丢失和互操作性的痛点,适合作为构建长期记忆系统的基石。
- 插件目录:https://www.skillhub.cn/plugins/JohnXu22786/memory-standard
- 项目地址:https://github.com/JohnXu22786/memory-standard