跳到主内容

dsh-memory-system

8Star0Fork0Issue0Watching

为 DSH 提供本地优先的跨会话持久记忆,零外部依赖,Markdown 存数据,写入需确认。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
master
agent-memoryai-agentschinese-bm25coding-agentdeepseek-harnessdshdsh-pluginlocal-first

安装

命令web profile
$ dsh plugin --profile web add @zhujunpeng12/dsh-memory-system

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

对话式安装

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

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

一句话定位

为 DeepSeek Harness (DSH) 提供本地优先的跨会话持久记忆能力:每次新会话开始自动注入一个 ≤14KB 的"热记忆包"(门禁/规则/项目摘要/近期事件),需要时再按需召回历史细节,所有数据以纯 Markdown 形式留在用户自己的电脑里。

核心能力

  • 自动注入热记忆包:每个新会话的首轮自动读取门禁状态、用户画像、活跃规则、当前项目摘要与近期事件标题,组成一个 ≤14KB 的上下文一次注入(可设置 DSH_MEMORY_AUTO_INJECT=false 关闭)
  • 按需冷召回:当用户提到历史、纠正或具体主题时,触发中文 BM25 + 精确匹配 + 元数据重排的冷检索,返回带来源与 trace 的 ≤4.2KB 上下文
  • 机械门禁体检(memory_gate):自动检查"原始记录是否被提炼""体量是否超标""规则核心是否同步""是否有未释放的写锁"等健康项,收尾时配合 --closing/--expect-write 模式使用
  • 只读治理扫描(memory_govern):找出重复、冲突、过期、体量超标或生命周期异常的候选条目,只给证据和建议,绝不自动删改
  • 轨迹复盘(memory_trajectory_review):扫描会话轨迹,用"用户纠正"作为硬信号产出复盘候选(场景→错误→根因→先决动作),配合可选的 evidence-ledger 插件可读取工具调用账本
  • 安全的授权写入(memory_write):默认 dry-run 预览,必须用户确认后才进入租约锁事务写入,纠错通过 supersedes 链接到原条目而非覆盖

技术实现

  • 语言: JavaScript(ESM,type: module)作为宿主插件外壳,记忆引擎全部用 Python 标准库实现
  • 关键依赖: 零 npm 运行时依赖(仅使用 Node 内置的 node:child_process/node:crypto/node:fs/node:os/node:path/node:url);Python 侧仅依赖标准库(argparse/hashlib/json/pathlib/re 等)
  • 架构模式: Cordis 双注入插件(inject: ["tools", "agents"]),通过 apply(ctx) 钩入 DSH——ctx.agents.roots() 给每个 root agent 注册 6 个工具,ctx.on("agent/pre-step", ...) 在每个 session 首轮自动注入热包,ctx.on("tools/pre-execute", ...) 拦截写入类工具强制弹确认;Python 脚本通过子进程调用,结果以 JSON 回传
  • 入口文件: index.js(宿主侧)+ bridge.js(工具参数到 Python CLI argv 的纯函数映射,零依赖便于单测)+ vault-guard/*.py(记忆引擎脚本集)

适用场景

适合在 DSH 里持续做同一个项目、需要跨会话记住自己之前的决策和偏好的个人开发者与小团队——尤其是中文场景下希望保留可审计的"事实"流水、对隐私敏感、不愿意把对话内容上传到第三方向量服务的工作流。不适合需要多 Agent 高频并发写同一个记忆库、依赖语义向量召回、或希望 AI 自动无审批写记忆的场景。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness (DSH)0.1.0-rc.7通过 cordis.patch.yml 与 dsh.plugin.json 注册为 scoped bundle;早期 0.1.0 安装会因 loader 名未加 scope 包或 agents 注入缺失而报错,必须升级到 0.1.1+
Node.js22 或 24package.json#engines 未声明,但 TROUBLESHOOTING.md 与 README 一致标注 Node 22/24 可用
Python3.10+记忆引擎依赖 Python 标准库;命令名需可用为 python,否则通过 PYTHON 环境变量指向实际可执行文件(如 Windows 的 py)
默认存储无限制默认在 ~/.dsh-memory/ 自动初始化;可通过 MEMORY_VAULT 指向任意目录(常见用法:Obsidian Vault 根目录)

安装方式

dsh plugin --profile web add github:zhujunpeng12/dsh-memory-system

配置项

配置类型说明默认值
MEMORY_VAULT路径记忆库根目录(含 memory/ 与 projects/ 子目录),留空则用基础模式(普通 Markdown 文件夹)~/.dsh-memory
DSH_HOME路径DSH 运行时家目录(hooks 配置、storages 等),影响配套插件 evidence-ledger 写入的工具账本位置~/.dsh
PYTHON可执行文件名调用 Python 脚本所用的解释器命令python
DSH_MEMORY_AUTO_INJECT布尔设为 false 关闭每个新会话首轮自动注入热记忆包的能力true(默认开启)

常见问题

Q: 这个插件和 DSH 自带的会话记忆有什么区别?

A: DSH 默认会话之间是失忆的;本插件把每次会话产生的规则、项目笔记、纠正等"事实"沉淀到本机 Markdown(默认 ~/.dsh-memory),下次新会话开始时自动注入一个 ≤14KB 的"热记忆包",需要时再按需召回历史细节,整套数据存你自己电脑里,无需数据库或外部向量服务。

Q: 记忆数据存在哪里?会泄露到云端吗?

A: 默认存储在用户主目录的 ~/.dsh-memory/ 目录下,是普通 Markdown 文件夹,仓库本身不含任何个人数据。如需可视化可以设置 MEMORY_VAULT 环境变量指向你自己的 Obsidian Vault,所有读写都发生在你本机。

Q: 安装后还要手动配置什么吗?

A: 首次运行会自动创建 ~/.dsh-memory/ 骨架(包含 memory/events/index/projects 等子目录和空的 user_profile.md/rules.md),无需任何手动配置。如要切换到 Obsidian 模式或自定义路径,再设置 MEMORY_VAULT 和 DSH_HOME 环境变量。

Q: Agent 会偷偷修改我的记忆文件吗?

A: 不会。所有写入操作(memory_write)默认是 dry-run(预览),只在用户明确确认并设置 apply=true 时才真正落盘;写入还有 30 秒租约锁、SHA-256 前置条件、before-image 备份、提交回执四层保护,纠错必须 supersedes 原条目且不覆盖历史 raw 流水。

Q: 必须装 Python 才能用吗?

A: 是的。记忆引擎由 Python 标准库脚本实现(无需 pip 安装任何包),要求 Python 3.10+ 且命令名可用为 python;如果你的可执行文件名是 py 或 python3,启动 Harness 前设置 PYTHON 环境变量指向它。

Q: 怎么卸载?会留下残留文件吗?

A: 在 web profile 目录执行 npx @deepseek-ai/dsh plugin --profile web remove @zhujunpeng12/dsh-memory-system 即可卸载插件本身;插件不会删除 ~/.dsh-memory/ 下的记忆数据,卸载前如不再使用需自行备份或手动删除该目录。

Q: 需要 Obsidian 吗?

A: 不需要。默认就是普通本地 Markdown 文件夹,用任何编辑器都能查看;只有想用 Obsidian 双链、关系图谱等可视化功能时,把 MEMORY_VAULT 指向你的 Vault 即可切换到 Vault 模式,模板在 templates/vault/ 里。

Q: 冷包召回能不能理解同义改写?

A: 不能。冷召回基于 exact 匹配 + 中文 bigram BM25 + 元数据重排,适合精确/近精确匹配(专有名词、代码标识符、日期、明确主题);同义改写、长尾表达、跨语言召回能力有限,向量语义检索默认关闭以保持零依赖。

上手难度

入门 — 安装一行命令、首次运行自动建库、无需配置即可用;进阶能力(租约锁、SHA-256 事务、trajectory review)可按需了解,不影响日常使用。

已知问题与限制

  • 写入默认是 dry-run:不显式 apply=true 且经用户确认就不落盘,"Agent 说记下了"不等于真正写入了,需要时用 memory_gate 或直接查看 events 文件确认
  • 冷召回不是语义向量检索:基于 BM25 关键词匹配,对同义改写、长尾表达、跨语言召回能力有限;这是零依赖代价的取舍
  • 单写者租约锁:同一记忆库同一时刻只有一个写者,多 Agent 并发写会串行等待;高频多写者场景需拆分记忆库或错峰
  • 项目隔离仅按 cwd 祖先匹配:同一目录的不同 git 分支共享同一记忆库,分支级隔离在路线图中,尚未实现
  • 热包按会话注入一次:会话中途新增的记忆不会自动出现在当前会话的热包里,需显式调用 memory_recall 或 memory_bootstrap 刷新
  • 轨迹复盘的定量维度依赖配套插件:不装 plugins/evidence-ledger/ 时只扫描 session 日志中的用户纠正信号(定性),没有工具账本数据可分析
  • 首次安装失败常见原因:早期 0.1.0 版本会因 scoped 包名 loader 问题或 agents 注入缺失报错,必须装 0.1.1 或之后的版本
  • Node.js 进程超时保护:所有脚本调用默认 60 秒超时,memory_bootstrap/memory_recall/memory_govern/memory_trajectory_review/memory_write 单独放宽到 120 秒

查看使用指南 →

该插件的安装步骤、关键要点、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/zhujunpeng12/dsh-memory-system)

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

返回插件目录