自研 DSH 记忆插件:SQLite 持久存储 + 数据库层审核守卫(enforceAudit)+ 审计日志。对话结束自动沉淀知识卡,Agent 经 memory_recall 按需召回,支持 Claude Code/Codex/Cursor 多智能体共享,零外部依赖。
安装
# npm 包(预构建)
dsh plugin --profile web add memory-eternal
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:EternalNight996/memory-eternal
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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
English (default) · 简体中文(镜像)
你的 AI 每次会话都失忆。给它一个可信的记忆库。
本地优先、先审后入、可度量 —— 一个 SQLite 库,DSH / Claude Code / Codex / Cursor 与任意 MCP 客户端共享。
- 🔍 先审核,再入库 —— 新卡先进待审队列,Web 或终端里批准/驳回;每次状态变更写入不可篡改的审计日志。
- 🧾 记忆账本 —— 召回注入了多少、蒸馏调了几次、召回到底有没有用,全部可查。
- 🏠 本地优先,零云端 —— SQLite + Markdown 存在你自己的磁盘上。没有第三方记忆框架、不需要账号、不外发请求。
- ⭐ 核心记忆 —— 已批准的卡可提升为「每次会话强制注入」的核心记忆;自动沉淀可以建议,但最终仍由审核中心决定。
- 🧭 阅读与布局 —— 卡片目录可点击跳转;记忆界面支持紧凑 / 标准 / 大三种布局大小。
⚡ 快速开始
DeepSeek Harness(桌面版 / Web)
dsh plugin --profile desktop add memory-eternal
# 重开 DSH → 左栏「记忆」
Claude Code、Codex 或 Cursor —— 通过 MCP 共享同一个库
npm i -g memory-eternal
dsh-memory connect claude # 或:codex / cursor
任意 MCP 客户端
npx -y -p memory-eternal dsh-memory mcp
浏览器或终端
dsh-memory open # http://127.0.0.1:7999
npx -y -p memory-eternal dsh-memory tui # 终端里的实时待审队列
🧾 真的省 token 吗?
大多数记忆产品都说自己省 token。我们认为你应该自己验证。插件内置记忆账本(运行状态 → 记忆账本),记录:
| 记录项 | 含义 |
|---|---|
| 召回:命中数 + 注入字符 | 到底有多少记忆进入了上下文 |
| 沉淀:LLM 调用次数 + 输入/输出字符 | 蒸馏花了你多少成本 |
| 有用率:有用 / 没用 反馈 | 召回的记忆是否真的帮上了忙 |
诚实的算式:
净收益 ≈ 被避免的上下文开销 −(注入字符 + 蒸馏调用 × 单价)
| 场景 | 你要付 | 你能省 |
|---|---|---|
| 有决策与踩坑记录的多会话项目 | 每次召回约 0.6–0.9k token | 重新解释上下文(约 1.5–3k)或重读文件(3–6k) |
| 一次性问题、低命中率 | 召回注入 | 通常什么也省不到 |
以上是示意数字,不是 benchmark —— 用账本测你自己的。如果召回有用率长期低于约 60%,就调小(更少条数、更短摘要)或直接关掉记忆。
🛡️ 先审核,再入库
一个「什么都自动吞进去」的记忆系统,迟早会把错误事实当成真相召回。memory-eternal 默认先审后入:
- 新卡先进入待审队列,人工批准后才进主库;
- 在 Web、终端 TUI 或 CLI 里批准 / 驳回 / 批量处理;
- 每次状态变更追加到不可篡改的审计日志(谁 / 什么 / 何时 / 为什么)—— 由 SQLite 层强制,而不是靠约定;
- Agent 可以读取和提议,但不能批准自己写的卡;
- 删除的卡进回收站(默认保留 30 天)。
⭐ 核心记忆
不是所有内容都该每次注入上下文。核心记忆是一组必须每次遵守的偏好与硬约束:
- 任意已批准卡片都可以在阅读器或卡片列表里提升为核心记忆;
- 自动沉淀只会在用户明确要求长期偏好 / 硬约束时建议核心,且 core 候选一律待审;
- 已批准的核心卡每次会话直接注入 systemPrompt,不依赖
memory_recall调用; - 在「设置 → 记忆 → 核心记忆」里可配置条数上限和字符预算;
- 知识星图里核心节点显示为橙色菱形 + ★;
- 不要把密钥/Token 的值写进核心卡,只保存凭证目录的引用。
🎛 阅读与布局
- 卡片阅读器右侧目录可点击,平滑跳转到对应章节;
- 「设置 → 记忆 → 布局大小」支持 紧凑 / 标准 / 大,只影响界面显示。
🧩 一个库,所有 Agent
| 入口 | 你能得到什么 |
|---|---|
| DSH 桌面版 / Web | 内嵌记忆界面:审核、图谱、配置、账本 |
| Claude Code / Codex / Cursor | MCP server,同一个本地库,dsh-memory connect |
| 任意 MCP 客户端 | npx -y -p memory-eternal dsh-memory mcp |
| 终端 | dsh-memory tui —— 实时队列、全选、批量批/驳、长文读卡 |
| 浏览器 | dsh-memory open → http://127.0.0.1:7999 |
📸 截图
📚 文档与链接
- 英文完整手册 · 完整手册(中文)
- 私有化部署(Docker / systemd)
- 更新日志 · 架构
- 终端插件(dsh-tui) · Orca 启动器 · Cursor / VS Code 扩展
- 反馈问题
💬 交流群
遇到问题、想提需求、或者想聊聊 DSH 插件开发 —— 欢迎进群:
| QQ 交流群 | 微信交流群 |
|---|---|
如果这个插件帮你省了时间,可以请作者喝杯咖啡(两个码任选其一):
| 微信收款码 | 微信赞赏码 |
|---|---|
打赏完全自愿,不影响任何功能;插件本体始终开源免费(MIT)。详见 SPONSOR.md。
📄 License
MIT —— 随便用、随便自托管、随便二次开发。
链接
同类插件
vectorize-io/hindsight#coding-agents★ 54464
Hindsight:会学习的 Agent 长期记忆系统,自动召回/保存、知识页、深度反思与按仓库隔离的记忆银行。
volcengine/OpenViking#examples/dsh-memory-plugin★ 40976
面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`viking://` URI 防护,以及对接 OpenViking 服务端的 recall/write 记忆工具。
MemTensor/MemOS#memos-local-plugin★ 12136
DeepSeek Harness 本地记忆插件:分层 L1/L2/L3 记忆,自动沉淀与手动 memos_* 检索工具并存,内置记忆浏览器。
agentscope-ai/ReMe#dsh★ 3702
将 DeepSeek Harness 接入 ReMe 本地优先、自进化的个人知识库:自动把已完成的主 Agent 对话沉淀为用户掌控的 Markdown 记忆,通过 reme_search 结合 BM25、可选向量检索和 wikilink 展开搜索对话与资料,并按日整理长期记忆。
zilliztech/memsearch#MemSearch★ 2802
供 DSH 与其他编程 Agent 共享的 Markdown 记忆,支持自动捕获、步骤前上下文注入、搜索召回,以及通过审阅面板实现 memory-to-skill 自进化。
vshulcz/deja-vu#extensions/dsh★ 1321
读取本机上其他四十二个编程智能体已经写下的会话文件(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)。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。