跳到主内容

dsh-layered-memory/dsh-plugins/dsh-layered-memory

7Star1Fork0Issue0Watching

DSH 跨会话长期记忆插件:分层存储(L0 规则/L1 索引/L2 事实/L3 SOP)+ 行动验证写入 + 自动蒸馏候选 + 溯源/归档/回滚,按命名空间隔离。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

ⓘ 此插件是大仓库 DDDFXYqiming/Agent_Extensions 的子包,星数与活跃度统计的是整个仓库。

语言
JavaScript
License
MIT
分支
main
agent-skillsai-agentdeepseek-harnessdsh-pluginprompt-engineeringpythonskillstranslation

安装

命令web profile
$ dsh plugin --profile web add dsh-layered-memory

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 DDDFXYqiming/Agent_Extensions/dsh-plugins/dsh-layered-memory:先查看仓库 https://github.com/DDDFXYqiming/Agent_Extensions 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DeepSeek Harness(DSH)提供跨会话的长期记忆能力,按 L0 元规则 / L1 索引 / L2 环境事实 / L3 任务经验四层存储,按命名空间隔离,强制要求"行动验证"才允许写入。

核心能力

  • 每轮把 L1 存在性索引注入模型上下文,让模型随时看到自己有哪些可复用经验
  • 提供 12 个记忆工具,覆盖读、列、写、改、归档、回滚、统计、维护、候选确认、溯源展开
  • 写入时强制带"行动验证证据",过滤模型的猜测与常识污染
  • 自动把每回合成功的工具调用蒸馏为 pending 候选,由人或模型确认后再入正式记忆
  • 每次更新记忆时保留历史快照(supersede),归档不物理删除,可一键回滚
  • 按 workspace 目录名 + git 分支自动隔离命名空间,避免多项目记忆串味
  • 每 20 轮自动跑一次维护(去重、压缩 L1、统计、合并候选)

技术实现

  • 语言: JavaScript(ESM 单文件)
  • 关键依赖: @deepseek-ai/cordis(宿主框架)、@deepseek-ai/dsh-tools(defineTool)、@deepseek-ai/dsh-system-prompt(L1 注入)、@deepseek-ai/schemastery(配置校验)
  • 架构模式: 通过 cordis.patch.yml 注入 bundle;apply 钩入 ctx.systemPrompt.context(L1 每轮可见)、ctx.skills.register(memory 运行时 skill)、ctx.tools.register(工具)、ctx.on('session/event')(turn/end 蒸馏与维护)、ctx.on('tools/result')(成功工具缓冲)、ctx.on('agent/disposed')(清理)
  • 入口文件: lib/index.js(1637 行,单文件实现)

适用场景

当你希望 DSH Agent 在多个会话间保留本机环境、工具配置、踩过的坑等可复用经验,避免每次重头摸环境时使用。安装后 Agent 能在新任务开始时主动查阅历史经验,并在任务完成后把"已验证成功"的知识沉淀下来供下次复用,适合长期维护同一台机器或同一组项目的开发者。

前置依赖与兼容性

依赖最低版本说明
Node.js>=22.19package.json#engines.node 声明
DSH 宿主(cordis)>=4.0.0-rc <5peerDependencies;插件通过 cordis.patch.yml 注入
@deepseek-ai/dsh-tools*提供 defineTool,由宿主提供
@deepseek-ai/dsh-system-prompt*提供 systemPrompt.context 注入能力
@deepseek-ai/schemastery*提供配置 Schema 校验
原生模块无仅使用 node:fs / node:os / node:path / node:crypto / node:child_process
平台跨平台未声明 OS 限制;autoNamespace 会调用 git 命令,非 git 目录会自动降级只用 cwd 名

安装方式

dsh plugin --profile web add dsh-layered-memory

配置项

配置类型说明默认值
memoryDir字符串记忆根目录绝对路径,留空则用 <home>/.dsh/memory""
maxIndexLines数字L1 索引自动段行数上限;超出后维护阶段按访问热度压缩30
progressive布尔工具采用渐进式暴露(默认仅注册 memory_activate,skill 加载后再挂 12 个工具);关闭则一次性注册全部工具true
defaultNamespace字符串固定使用的命名空间,留空则由 autoNamespace 决定""
autoNamespace布尔是否按 workspace 目录名 + git 分支自动生成命名空间(git 命令不可用时只用目录名)true
autoPending布尔是否在每回合结束时自动把成功工具调用写入 pending/ 候选区true
maintainEveryTurns数字每多少轮自动跑一次去重/压缩/统计/合并候选;设为 0 关闭自动维护20

常见问题

Q: 安装后记忆存放在哪里?

A: 默认存放在用户主目录下的 ~/.dsh/memory/(macOS/Linux 为 ~/.dsh/memory,Windows 为 %USERPROFILE%\.dsh\memory)。开启 autoNamespace 时会自动按 workspace 目录名 + git 分支创建子目录隔离;如需自定义可在 profile 配置中设置 memoryDir。

Q: 写入记忆必须提供 evidence 吗?

A: 是。memory_write 与 memory_accept 都强制要求 evidence,未提供会被工具直接拒绝。evidence 描述本次成功验证该信息的工具调用或实测结果,未验证的信息不允许写入正式记忆。

Q: 安装后工具列表里没有 memory_read 等工具怎么办?

A: 默认采用渐进式暴露机制(progressive=true),所有 12 个工具仅在调用 memory_activate 或 memory skill 加载成功后挂到当前 Agent。skill 加载通常会自动激活;若工具仍未出现,调一次 memory_activate 即可。

Q: 如何回滚误改或归档过的记忆?

A: 用 memory_rollback 工具,传入 topic 与 entry_type(fact/sop),会自动从 .history/ 取最近一次快照恢复;memory_archive 仅在 L1 索引和 memory_read 中隐藏条目,文件仍保留在 archive/,同样可通过 memory_rollback 还原。

Q: 卸载后会删除已写入的记忆吗?

A: 不会。记忆文件全部以普通 Markdown/JSON 形式存储在 ~/.dsh/memory/(或其子命名空间目录),卸载插件仅移除插件自身,记忆文件可继续浏览或在其他 DSH 实例中复用;如需彻底清除可手动删除该目录。

Q: L1 索引超过 30 行会怎样?

A: 写入后会提示 over_limit=true。运行 memory_index 仅重建索引;运行 memory_maintain 会按访问热度压缩 L1 自动段,只保留活跃条目,被压掉的 fact/sop 仍存在文件中,但不再出现在 L1 索引里。

Q: 自动蒸馏候选(pending)是什么?

A: 当 autoPending=true(默认)时,每轮 turn/end 会把本回合成功的工具调用写入 pending/ 候选区,不会自动入正式记忆。需要用 memory_pending 查看候选,memory_accept 并提供 topic/entry_type/evidence 后才会被写入 L2/L3。

上手难度

入门 — 默认配置即可工作,安装即用;如需自定义命名空间、维护频率或存放位置再按需调整配置。

已知问题与限制

  • autoNamespace 依赖 git 命令读取当前分支(git branch --show-current),非 git 目录会自动降级仅用 cwd 目录名,无法按分支区分命名空间
  • memory_expand 需要宿主提供 sessionQuery 服务;未注入时返回 "sessionQuery 服务不可用",溯源信息无法展开
  • progressive: true(默认)下若 memory skill 加载未自动激活当前 Agent 的工具,需手动调一次 memory_activate;将 progressive 设为 false 可一次性注册全部工具,但失去了按 Agent 隔离的优势
  • L1 索引超过 maxIndexLines 后仅提示 over_limit=true,不会自动压缩,需要手动运行 memory_index 或 memory_maintain
  • 写入/接受候选时的 evidence 是字符串,由调用方自证;插件本身不会校验 evidence 是否真的对应一次成功的工具调用
  • pending 候选在 memory_accept 成功后会归档副本到 archive/ 并删除原文件,但 accept 失败时不会回滚 buffer

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/DDDFXYqiming/Agent_Extensions/dsh-plugins/dsh-layered-memory)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录