DeepSeek Harness 插件

memory-standard

Memory Standard Protocol (mm) for the DeepSeek Harness: layered MEMORY.md + deterministic budgets + frozen snapshots + cross-agent markdown/URI interop + session-log digestion. Ships as a dsh bundle(英文原文)

跳到安装方式

来源信息

GitHub 仓库
JohnXu22786/memory-standard
最近更新
2026年8月20日
分类
自动化与任务
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/JohnXu22786/memory-standard
插件名:memory-standard
作者:JohnXu22786

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-memory-standard(记忆标准协议插件)

English | 简体中文

![CI](https://github.com/JohnXu22786/memory-standard/actions/workflows/ci.yml)

面向 DeepSeek Harness(dsh)的记忆标准协议(mm) 插件:一种确定性、分层、 跨 agent 互认的记忆系统,基于普通 Markdown 文件——而非专有协议。

dsh 生态已有数十个记忆类插件却缺乏统一标准,官方核心也只带一个默认关闭的 MCP 记忆示例。本插件抢占缺失的「标准位」:确定性预算 + 分层 MEMORY.md + 跨 agent 互认 + 与官方 compaction/会话日志的摄取协同

  • 分层记忆 —— MEMORY.md 为优先加载的索引(硬顶:默认 200 行 / 25 KB);

详细记忆存放于 memories/<topic>.md,按需加载。

  • 确定性预算 —— 超过任何预算都是带用量指标的确定性错误,并要求重写索引,

绝不静默截断。写入带字符预算并返回用量,便于 agent 当场压缩。

  • 跨 agent 互认 —— 有规范的纯 Markdown 格式、可移植的

mm://<memoryId>/<topic> URI、JSON Schema(schema/memory.schema.json)与 开放读写接口,而非闭锁协议。

  • 写入时机 —— mem_write API + 会话结束/周期提示(nudging);写入立即

落盘、下一会话生效(会话内读取保持冻结,保护提示词缓存)。

  • 摄取协同 —— mem_digest 识别官方 dsh 会话日志 / compaction 产物作为

记忆来源并蒸馏候选记忆(可选、自包含、无需 LLM)。

  • 工具链 —— dsh 工具 mem_readmem_writemem_searchmem_budget

mem_digest,外加 dsh-memory CLI。

核心库零运行时依赖(仅 Node 内置模块),既能嵌入 dsh 使用,也可独立运行。

状态

dsh 生态为开发者预览期;格式版本 mm v1(见 [SPEC.md](SPEC.md))。 与已安装的 @deepseek-ai/dsh CLI 及 bundle 规范(dsh.bundle.patch + cordis.patch.yml + apply(ctx))兼容。

---

快速开始

1. 接入 dsh(本地目录 bundle)

在包含本包的目录(dsh-memory-standard/)内执行:

dsh plugin --profile demo add ./

# 或直接从本 GitHub 仓库安装
dsh plugin --profile demo add github:JohnXu22786/memory-standard
# 或发布后从 npm 安装
dsh plugin --profile demo add dsh-memory-standard
# 独立的 CLI 也会以全局 npm bin 形式发布
npm install -g dsh-memory-standard

# 启动 profile,五个 mem_* 工具与 'memory-standard' 系统段随之加载
dsh --profile demo

dsh plugin 会在 profile 目录内转调 pnpm;peer 依赖(@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/schemastery)从 dsh 安装解析。 已在 dsh@0.1.0-rc.6 上验证。

> 其他安装路径: > - 作为开发 overlay:将 cordis.patch.yml 复制或引用到 --patch 覆盖层, > 行内 name 指向本包入口。 > - 插件首次加载会自动初始化记忆根($DSH_HOME/memory$DSH_MEMORY_ROOT), > 无需手动 init

2. 配置

bundle 自带默认值;可在更上层(profile 的 cordis.patch.yml$DSH_HOME 覆盖层或 --patch)通过行 id 覆盖 memory-standard

- id: memory-standard
  config:
    root: ''                 # '' => $DSH_MEMORY_ROOT,否则 $DSH_HOME/memory
    memoryId: local
    indexLines: 200          # MEMORY.md 行数硬顶
    indexBytes: 25600        # MEMORY.md 字节硬顶(25 KB)
    detailMaxBytes: 65536    # 单个详细记忆文件字节硬顶
    defaultWriteBudget: 4000 # 每次写入的字符预算
    search:
      mode: auto             # auto | scan | fts5
      limit: 10
      maxSnippetChars: 160
    nudge:
      enabled: true          # 会话结束/周期提示(memory/nudge 事件)
      intervalMs: 1800000
    lang: auto               # auto | en | zh(系统提示段语言)

3. 使用

dsh 会话中,agent 会获得五个工具(外加解释该协议的系统提示段):

工具用途
mem_read读取索引、全部摘要或单个 note 全文(冻结快照)
mem_write带字符预算写入/更新 note;返回用量;绝不截断
mem_search记忆搜索(可用时用 FTS5,否则用 scan;scan 支持中文)
mem_budget确定性预算报告(索引上限、各 note 用量、pending 写入)
mem_digest从会话日志 / 文本蒸馏候选记忆(绝不写入)

其他插件可通过提供的服务直接访问记忆:

const memory = ctx.get('memory')
memory.write({ topic: 'deploy-region', content: 'us-east-1', summary: '部署区域' })
memory.search('deploy')

4. 独立 CLI

npm run build                # 首次使用需先编译 lib/
node lib/cli.js init --root <dir>
node lib/cli.js write deploy --content "we deploy to us-east-1" --root <dir>
node lib/cli.js read deploy --root <dir>
node lib/cli.js budget --root <dir>
node lib/cli.js search deploy --root <dir>
node lib/cli.js digest --file <session.log.jsonl> --root <dir>

所有命令均支持 --json 机器可读输出;--root 指定记忆根。全局安装 npm i -g . 后可直接使用 dsh-memory

---

工作原理

分层记忆

<root>/MEMORY.md         优先加载的索引(小、有硬顶)
<root>/memories/t1.md    按需加载的详细记忆(自由 Markdown)

不传 topic 的 mem_read 返回索引(即优先加载面);传 topic 则返回该 note 全文。预算可帮助 agent 判断哪些内容进索引摘要、哪些进详细 note。

确定性预算

三条「绝不截断」保证(详见 [SPEC.md](SPEC.md) §6):

1. 写入超过字符预算即失败并返回 usage.overflow,不写任何内容; 压缩后重试, 2. note 超过字节上限即失败,保留原有内容, 3. 索引超过行/字节硬顶即失败并明确要求重写——错误文案会明说。 删除/合并使索引重新达标是恢复路径。

规范的写入方绝不能用「静默丢内容」来“修复”超预算写入——标准将其视为数据丢失。

冻结快照

Memory 每会话只加载一次快照。读取与搜索都服务于该快照;写入落盘、下一会话 生效。pendingWrites 暴露本会话已暂存的写入;reload() 重新快照(CLI 与集成 场景使用)。这保证了会话内视图自洽,并保护提示词缓存。

跨 agent 互认

  • 磁盘格式为规范的纯 Markdown(SPEC.md),URI 为

mm://<memoryId>/<topic>

  • schema/memory.schema.json 描述任何合规写入/读取方都应遵循的 note 形状。
  • 公开 API(Memory,以及 dsh 中的 ctx.get('memory'))是开放接口——

不是封闭工具协议。任何 agent 或工具都能读写同一批文件。

摄取协同

dsh 将会话存放在 $DSH_HOME/sessions 并做 compaction;这些日志即被识别为 记忆来源。mem_digest 会读取最近的 *.jsonl/*.md(或显式文件/文本), 识别 mm: 标记、MEMO:/记忆:/记住: 行、总结行与 Markdown 标题,并返回 带预算的候选供审查。它绝不自动写入——由 agent 决定提交哪些。

---

项目结构

src/
  types.ts            共享/互认类型 + 默认值(mm v1)
  core/               零依赖库(仅 Node 内置模块)
    memory.ts         Memory 门面:快照、写入、预算、搜索、蒸馏
    format.ts         索引/note 的 Markdown 文法 + URI(SPEC 的实现)
    budget.ts         确定性预算计算
    search.ts         scan 搜索 + 可选 SQLite FTS5(node:sqlite)
    digest.ts         会话日志蒸馏
    paths.ts          目录布局与根解析
  dsh/
    tools.ts          五个 mem_* 工具的 defineTool 注册
    guide.ts          系统提示「标准段」
  cli.ts              dsh-memory CLI
  index.ts            dsh bundle 入口(name/inject/Config/apply)
cordis.patch.yml      bundle 补丁层
schema/memory.schema.json
SPEC.md / README.md / README.zh.md
examples/root/        可运行的示例记忆
test/                 node:test 测试套件(预算/分层/快照/搜索/蒸馏/互认/CLI)

开发

npm install
npm run build      # tsc -> lib/
npm test           # 构建 + node --test
npm run typecheck

仅使用开发依赖(typescript@types/node,以及用于类型检查的 dsh peer 包)。运行时除了 Node 内置模块外零依赖(node:sqlite 可选用于 FTS5;不可用时 自动降级为 scan)。

许可证

MIT —— 见 [LICENSE](LICENSE)。