基于 DSH 原生接缝的按工作区记忆:事实与有界常驻档案落在 storage-domain 的 JSON 单元上,写入经人工审批并带 `(sessionId, seq)` 引证,确定性召回 + session-query 全文检索历史会话——无外部服务器、无自建 SQLite。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-native-memory
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:highland0971/dsh-native-memory
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
为 DeepSeek Harness(dsh)打造的原生、按工作区隔离的长期记忆:事实与档案存放在 harness 自带的 storage-domain 上,跨会话回忆走 session-query 全文检索,写入必须经人工审批,且每条记忆都带来源引用——不需要外部服务器,不引入额外运行时依赖。
与其他方案的对比
| dsh-hermes-memory | dsh-native-memory | |
|---|---|---|
| 存储 | ~/.dsh/settings.yaml 命名空间 |
独立 storage-domain 单元(~/.dsh/storages/dsh_memory.json) |
| 作用域 | 用户全局、跨项目混用 | 按工作区隔离(精确 cwd 授权) |
| 写入安全 | 模型静默写入 | 人工审批门 + 会话日志审计 |
| 回忆方式 | 全部常驻注入(硬上限) | 有界常驻档案 加 按需召回 + 历史会话全文检索 |
| 依赖 | 需把文件塞进 harness checkout 用相对导入 | 仅 zod + harness 本身 |
完整架构与竞品分析见 docs/design.md。
安装
dsh plugin --profile web add dsh-native-memory # 发布后从 npm 安装
dsh plugin --profile web add /path/to/this/repo # 从本地检出安装
重启 dsh web。插件会开启 session-query 全文检索,并为所有会话注册记忆工具。配置方法见 docs/install.md。
工具
| 工具 | 类型 | 审批 |
|---|---|---|
memory_remember |
在本工作区新增/更新一条事实(默认拒存密钥形态文本) | 需要 |
memory_edit |
替换一条事实 | 需要 |
memory_forget |
归档一条事实(软删除) | 需要 |
memory_recall |
确定性三档关键词扫描(标签 > 文本 > 模糊;档内按新鲜度/访问频次决胜) | 不需要 |
memory_search |
全文检索本工作区的历史会话(排除当前会话) | 不需要 |
memory_expand |
把事实引用展开回原始日志摘录 | 不需要 |
memory_consolidate |
近重复合并建议 + 容量预算 | 不需要 |
memory_import |
从历史会话日志导入候选事实 | 需要(逐条) |
memory_profile |
读取常驻注入的工作区档案 | 不需要 |
memory_export |
写出 git 友好的 Markdown 镜像(.dsh-memory/memory.md,已打码、幂等) |
不需要 |
每条事实都记录来源 (sessionId, seq)——记忆始终可从无损会话日志还原。
写入默认拒绝密钥形态文本(token / 密钥 / 密码);bundle patch 里 secretPolicy: "mask" | "off"
可放宽。凭据赋值检测可能误伤 ≥16 字符的良性 token: … 值。注入与工具输出恒打码。
浏览器只读页面(设置 → 记忆)列出所有工作区的事实(密钥已打码);删除会复制为一条
memory_forget 指令,在对话中经审批门执行。
可选会话末提议(proposeOnSessionEnd: true):一次廉价 LLM 调用把结束的会话蒸馏为候选事实,
在后续会话中展示;只有经审批门 memory_remember 才会成为事实。
压缩漂移护栏(compactionGuard: true,默认开启):压缩摘要丢掉的字面锚点会在后续会话中
作为待核实数据浮现——确定性、零 LLM。
开发
pnpm install
pnpm build && pnpm typecheck && pnpm test
新贡献者从 docs/handoff.md 与 docs/contributing.md 开始。
许可证
链接
同类插件
vectorize-io/hindsight#coding-agents★ 41184
Hindsight:会学习的 Agent 长期记忆系统,自动召回/保存、知识页、深度反思与按仓库隔离的记忆银行。
volcengine/OpenViking#examples/dsh-memory-plugin★ 38914
面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`viking://` URI 防护,以及对接 OpenViking 服务端的 recall/write 记忆工具。
agentscope-ai/ReMe#dsh★ 3530
将 DeepSeek Harness 接入 ReMe 本地优先、自进化的个人知识库:自动把已完成的主 Agent 对话沉淀为用户掌控的 Markdown 记忆,通过 reme_search 结合 BM25、可选向量检索和 wikilink 展开搜索对话与资料,并按日整理长期记忆。
zilliztech/memsearch#MemSearch★ 2679
供 DSH 与其他编程 Agent 共享的 Markdown 记忆,支持自动捕获、步骤前上下文注入、搜索召回,以及通过审阅面板实现 memory-to-skill 自进化。
vshulcz/deja-vu#extensions/dsh★ 1081
读取本机上其他三十三个编程智能体已经写下的会话文件——Claude Code、Codex、Cursor、VS Code Copilot Chat、opencode、OpenClaw、Hermes、Kimi、Cline、Zed 等,包括安装之前的历史:提供 deja_recall、deja_session、deja_blame、deja_fix、deja_how、deja_remember 六个工具与 /deja 命令,并可选地把召回结果加入运行时上下文。本地 BM25 索引,不用大模型,不用向量嵌入,不联网(dsh plugin --profile web add dsh-deja)。
adoresever/graph-memory★ 631
DeepSeek Harness 的可追溯、可检索跨会话记忆:把对话知识沉淀为带类型的图节点(任务/技能/事件)与关系边。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。