🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

本地记忆插件 rebron1900/dsh-mnemosyne

DeepSeek Harnessv0.7.0
rebron190034 天前有提交已提供中文文档扫描:含敏感能力

Mnemosyne 记忆层在 DeepSeek Harness 中的插件 — 本地优先、SQLite 支持的跨会话记忆。

30.8/100
综合分
1
GitHub 星标
182
npm 周下载
—/5
用户评分

数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-mnemosyne
npm 源 · dsh-mnemosyne 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-mnemosyne @ 0.7.0
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/14 03:21:07

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 75 处,展示前 35 条)
  • 执行外部命令来自配置/变量
    src/index.js:294
    execFile(
  • 读取本地文件
    src/index.js:366
    const shebang = readFileSync(cli, "utf8").split("\n")[0] ?? "";
  • 读取本地文件
    src/index.js:511
    accessSync(requested, constants.X_OK);
  • 读取本地文件
    src/index.js:512
    return statSync(requested).isFile() ? requested : null;
  • 读取本地文件
    src/index.js:527
    accessSync(p, constants.X_OK);
  • 读取本地文件
    src/index.js:528
    if (statSync(p).isFile()) return p;
  • 执行外部命令来自配置/变量
    src/index.js:583
    execFile(file, args, { timeout: timeoutMs, windowsHide: true }, (error, stdout, stderr) => {
  • 执行外部命令来自配置/变量
    src/index.js:686
    execFile(cli, args, {
  • 写入本地文件
    src/index.js:735
    mkdirSync(dataDir, { recursive: true });
  • 读取本地文件
    src/index.js:881
    if (!existsSync(db) || !statSync(db).isFile()) throw new Error(`Mnemosyne database not found: ${db}`);
  • 写入本地文件
    src/index.js:885
    mkdirSync(backupDir, { recursive: true });
  • 写入本地文件
    src/index.js:887
    copyFileSync(db, backupPath);
  • 写入本地文件
    src/index.js:1748
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    src/index.js:1761
    writeFileSync(tmp, raw, { encoding: "utf8", mode: 0o600 });
  • 写入本地文件
    src/index.js:1762
    renameSync(tmp, p);
  • 删除本地文件
    src/index.js:1764
    try { if (existsSync(tmp)) unlinkSync(tmp); } catch {}
  • 执行外部命令来自配置/变量
    src/index.js:2299
    execFile(
  • 发起网络请求
    src/client.js:576
    fetch("/mnemosyne/diagnose", { headers: { accept: "application/json" } }).then(r => r.json()),
  • 发起网络请求
    src/client.js:577
    fetch("/mnemosyne/config").then(r => r.json()).catch(() => ({ ok: false })),
  • 发起网络请求
    src/client.js:590
    const r = await fetch("/mnemosyne/setup", { method: "POST" });
  • 发起网络请求
    src/client.js:601
    const r = await fetch("/mnemosyne/install-embedding", { method: "POST" });
  • 发起网络请求
    src/client.js:669
    const r = await fetch("/mnemosyne/config", {
  • 发起网络请求
    src/client.js:697
    const r = await fetch("/mnemosyne/reindex", {
  • 读取本地文件
    src/identity.js:75
    if (!existsSync(markerPath)) return null;
  • 读取本地文件
    src/identity.js:76
    const uuid = parseMarkerLine(readFileSync(markerPath, "utf8"));
  • 写入本地文件
    src/identity.js:142
    writeFileSync(tmpPath, content, "utf8");
  • 写入本地文件
    src/identity.js:144
    renameSync(tmpPath, target);
  • 写入本地文件
    src/identity.js:146
    writeFileSync(target, content, "utf8");
  • 删除本地文件
    src/identity.js:147
    try { unlinkSync(tmpPath); } catch { }
  • 读取本地文件
    src/identity.js:195
    const raw = readFileSync(identityPath(dataDir), "utf8");
  • 写入本地文件
    src/identity.js:212
    mkdirSync(dataDir, { recursive: true });
  • 写入本地文件
    src/identity.js:215
    writeFileSync(tmpPath, JSON.stringify(map, null, 2), "utf8");
  • 写入本地文件
    src/identity.js:217
    renameSync(tmpPath, target);
  • 读取本地文件
    src/identity.js:221
    writeFileSync(target, readFileSync(tmpPath, "utf8"), "utf8");
  • 删除本地文件
    src/identity.js:222
    try { unlinkSync(tmpPath); } catch { }
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-ptc-runtime@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-sandbox-policy@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 本地优先存储
  • SQLite支持
  • 跨会话记忆
v0.7.02026-09-13
· v0.7.0 发布日期:2026-09-13 · 亮点 · 把 DSH 集成批次从 0.1.0-rc.8 时代迁到 0.1.5-rc.2 宿主批次。所有 @deepseek-ai/dsh-* 的 peer 下限、devDependency 下限,以及重新生成的 lockfile 现在都落在同一批次上,不再留下 rc.6/rc.8 服务商。 · 在 0.1.2-alpha.1 移除 @deepseek-ai/dsh-client-runtime 之后,重新整理了客户端清单。dsh.client.inject 现在列出真正拥有客户端那一半所消费服务的包:dsh-client-ui-renderer(slots)、dsh-client-ui-settings(settingsScope)和 dsh-client-locale(locale)。 · 让每个面板和仪表盘的 HTTP 路由都走宿主的 Connection 鉴权关卡。直接调用 webServer.register 注册的路由不会继承鉴权,所以这 20 条路由现在都在读取内存数据或执行副作用之前调用 connection.requestRejection(req),并在挂载时把 connection 声明在 webServer 旁边。原有的同源检查保留,作为第二层防护。 · 把 Memory Dashboard 列表改成有界分页加无限滚动。列表每次请求 100 条记忆,在列表下方保留一行实时状态(Scroll to load more memories. / Loading more memories… / All matching memories loaded.),分页追加时保留当前筛选条件和批量选择,在 IntersectionObserver 不可用的环境下回退到滚动监听。 · 兼容性与迁移 · 支持的宿主批次现在是 0.1.5-rc.2。之前的 peer 下限 >=0.1.0-rc.6 在 npm 的预发布匹配规则下匹配不到更晚的预发布批次,所以装在新宿主上时插件虽然能加载,却会产生 peer 警告。 · 对插件路由的未鉴权请求现在返回 401,此前在回环地址上会直接返回数据。浏览器会话不受影响:面板和仪表盘使用宿主签发的 dsh-auth-* cookie 运行。 · dsh-better-sidebar 现在是 ^0.19.1 的可选 peer,与仪表盘标签页验证过的版本一致。没有它,核心插件和设置面板照常工作,只是仪表盘标签页不可用。 · 仪表盘记忆列表现在按每页 100 条加载,不再一次请求 150 行,所以批量操作只作用于已加载的行;想全选前先用筛选条件缩小范围。 · 记忆数据、配置键、工具名和路由路径都没有变化。mnemosyne 设置命名空间和 ~/.dsh/mnemosyne 存储保持原样。 · 验证 · pnpm install:整个依赖图在 0.1.5-rc.2 上解析完成,没有 peer 依赖警告。 · node scripts/inject-lint.mjs(dsh-plugin-upgrade-skill):结论 OK——没有已移除包的残留,声明的客户端 inject 没有缺失 peer,Cordis peer 为 ^4.0.1。 · pnpm test:157 个测试通过(140 个聚焦的单元/客户端/身份测试和 17 个集成测试),迁移前基线为 153 个通过、无既有失败。 · 在目标批次上做隔离预发布冷启动:插件行组装完成、无待处理项,__DSH_BOOT__.entries 公布 dsh-mnemosyne 及重新整理的 inject 列表,宿主公布的客户端 bundle 返回 200 并带 dsh-mnemosyne 注册 id,鉴权关卡对未鉴权请求返回 401、对跨源请求返回 403,鉴权且同源后正常返回路由内容。 · npm pack --dry-run:cordis.patch.yml 打进 tarball,且与 dsh.bundle.patch 一致。
v0.6.02026-09-01
· v0.6.0 发布日期:2026-09-01 · 亮点 · 新增工作区级记忆召回与自动写入。工作区身份通过 .mnemosyne-id 标记和 identity.json 明确且稳定;未绑定的工作区绝不会静默回退到其他命名空间。 · 新增 mnemosyne_bind 工具,以及工作区绑定、接管、重新绑定、命名空间发现和迁移路径。迁移支持试运行、SQLite 备份、日志和回滚,同时在用户主动选择前保持旧会话数据隔离。 · 仪表盘新增经过筛选和确认的批量记忆管理,覆盖真实性、过期、重要性、生命周期失效和范围移动,包括工作区目标和变更前备份保护。单条记忆控制使用同一套已注册的批量 API。 · 收紧记忆删除范围,仅限当前命名空间或全局可见记录,并保留现有的同源、仅本地仪表盘安全边界。 · 新增身份/命名空间覆盖,并扩展主机、客户端和集成测试,覆盖工作区行为、迁移防护、动态范围配置和仪表盘管理。 · 保持 DSH 集成元数据兼容受支持的 >=0.1.0-rc.6 主机范围,并恢复必需的客户端运行时注入。 · 兼容性与迁移 · 现有安装保留会话级行为,除非显式修改 recallMode 或 autoWriteScope。recallMode=workspace 要求工作区级自动写入。 · 工作区模式需要显式项目绑定。征得用户同意后使用 mnemosyne_bind,或从仪表盘绑定项目;插件拒绝将 $HOME 和 / 作为绑定目标。 · 旧默认行和 dsh_* 行不会自动重新分配。移动数据前请查看仪表盘迁移工具并创建备份。 · dsh-better-sidebar@^0.16.1 仍为可选;没有它,核心插件和设置面板继续工作,但仪表盘标签页不可用。 · 验证 · pnpm install --frozen-lockfile --ignore-scripts && pnpm test:153 项测试通过(136 项聚焦单元/客户端/身份测试和 17 项集成测试)。 · 版本迭代 · v0.5.0 引入内置本地记忆仪表盘,作为只读检查界面。 · v0.6.0 新增显式工作区记忆身份、迁移和备份工具,以及经过确认的仪表盘记忆管理,同时默认保持会话兼容性。 · 总结 本次发布将仪表盘从检查界面变为安全、显式授权的记忆管理界面,并新增项目级记忆共享,同时不静默改变现有会话级安装。 · 懒人替代方案 跳过独立的工作区服务和数据库迁移层;仅当基于命名空间的隔离不再满足跨库或多机需求时再添加。 · 许可证 MIT 完整变更日志:
v0.5.02026-08-26
· v0.5.0 发布日期:2026-08-26 · 亮点 · 新增只读的 Mnemosyne 记忆面板,装了 dsh-better-sidebar 后可从现有设置面板打开。 · 把面板的网页资源打包进插件包,视图由现有 DSH 监听器提供,不用另起进程、端口、登录流程,也不依赖远程资源。 · 新增活动记忆库的面板路由,覆盖概览计数、最近/可搜索记忆、今日活动、知识三元组、整合历史、记忆详情、图数据、生命周期摘要,以及兼容的上游面板视图。 · 新增对当前和旧版 Mnemosyne 表的容错 SQLite 读取,包括重复记忆抑制,以及有界分页、过滤、排序和响应字段。 · 面板保持只读:浏览器请求只允许 GET,强制本地/同源校验,数据库以 SQLite 只读模式访问,不接受浏览器传来的任意数据库路径或 SQL。 · 新增可选、懒加载的 Better Sidebar 注册,没装侧边栏插件或它加载较晚时,现有 Mnemosyne 设置面板照常可用。 · 新增英文和简体中文面板标签、专属大脑图标、活动语言切换,以及单实例面板标签页。 · 兼容性 · dsh-better-sidebar@^0.16.1 是可选的对等依赖。没装它时面板集成不可用,核心插件和设置面板仍可用。 · 面板读取插件解析出的活动 Mnemosyne 记忆库,不聚合其他记忆库,也不改变会话范围行为。 · 面板资源及其上游声明/许可证放在 assets/dashboard/ 下。 · 验证 · pnpm test · 124 项测试通过:103 项单元测试、17 项集成测试、4 项客户端测试。 · 面板路由测试覆盖参数边界、活动记忆库读取、容错响应、仅 GET 限制、同源拒绝、只读 API 行为、静态资源包含,以及可选的 Better Sidebar 注册。 · 版本迭代 · v0.4.4 聚焦自动休眠正确性、会话销毁时的整合、范围迁移锁、诊断容错、商店同步和文档。 · v0.5.0 加入首个面向用户的记忆查看界面:内置、本地、只读的面板,同时保留现有命令行优先的工具、自动记忆行为、配置流程和数据隔离。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-mnemosyne Mnemosyne 记忆层在 DeepSeek Harness 中的插件 — 本地优先、SQLite 支持的跨会话记忆。 dsh-mnemosyne 项目介绍 Banner 面向 DSH 的本地优先记忆:跨会话记住、召回并整理上下文。 关于 Mnemosyne Mnemosyne 是一个零云依赖、SQLite 支持的本地优先 AI 记忆系统。一个 pip install,一个 SQLite 文件,无需外部服务。它采用 BEAM(Bilevel Episodic-Associative Memory)架构: - 工作记忆(Working Memory)— 热上下文层,自动注入 LLM 调用前,基于 TTL 淘汰 - 情景记忆(Episodic Memory)— 长期存储,sqlite-vec + FTS5 混合检索(50% 向量相似度 + 30% FTS5 排序 + 20% 重要性) - 知识三元组(TripleStore)— 带版本链的时序知识图谱 Mnemosyne 支持 MCP、Python SDK 及多种 agent 框架(Claude Code、Cursor、Codex、OpenWebUI、Pi 等)。本插件是其在 DSH 中的集成。
展开完整文档(README 剩余 1 节)
dsh-mnemosyne

Mnemosyne 记忆层在 DeepSeek Harness 中的插件 — 本地优先、SQLite 支持的跨会话记忆。

dsh-mnemosyne 项目介绍 Banner

面向 DSH 的本地优先记忆:跨会话记住、召回并整理上下文。

关于 Mnemosyne

Mnemosyne 是一个零云依赖、SQLite 支持的本地优先 AI 记忆系统。一个 pip install,一个 SQLite 文件,无需外部服务。它采用 BEAM(Bilevel Episodic-Associative Memory)架构:

- 工作记忆(Working Memory)— 热上下文层,自动注入 LLM 调用前,基于 TTL 淘汰
- 情景记忆(Episodic Memory)— 长期存储,sqlite-vec + FTS5 混合检索(50% 向量相似度 + 30% FTS5 排序 + 20% 重要性)
- 知识三元组(TripleStore)— 带版本链的时序知识图谱

Mnemosyne 支持 MCP、Python SDK 及多种 agent 框架(Claude Code、Cursor、Codex、OpenWebUI、Pi 等)。本插件是其在 DSH 中的集成。

关于 Pi-mnemosyne

本插件移植自 @mnemosyne-oss/pi-mnemosyne — Mnemosyne 官方的 Pi coding agent 扩展。所有记忆逻辑都在 mnemosyne CLI(pip install mnemosyne-memory)里,插件保持 CLI 优先:常规共享记忆操作通过子进程调用 CLI。移植到 DSH 时增加了设置面板、CLI 自动安装、配置管理和会话收尾自动整合;并超出原版"无状态代理"的边界,增加了几个不重复实现记忆逻辑的薄桥:经 CLI venv 解释器运行的会话级 Python helper、直连 SQLite 的 scope 迁移,以及写过滤器(ignore_patterns / write_classifier)的 env 桥接。

功能

- 六个原生工具:mnemosyne_remember / mnemosyne_recall / mnemosyne_forget / mnemosyne_stats / mnemosyne_sleep / mnemosyne_bind
- 按筛选结果批量管理记忆:在记忆浏览器中先用筛选条件定位记录,再单独勾选或选择当前列表,最后通过筛选工具栏中的操作面板批量修改可信度、有效期、重要性、生命周期状态或 scope;工作区绑定仅作为批量移动的目标,不覆盖记忆内容。
- 内嵌技能:mnemosyne 技能随插件自动注册,指导 agent 何时存储/检索记忆
- 设置面板:DSH Settings 左侧独立 "Mnemosyne" 入口,含 CLI 状态、记忆统计、一键安装/测试、配置表单
- 记忆面板:通过可选的 Better Sidebar 集成从 Mnemosyne 设置面板打开,展示当前 Bank 的总览、记忆浏览、筛选批量管理、三元组、整合记录、搜索和详情视图;管理操作均需明确确认。
- 自动安装 CLI:面板 Setup 按钮用 uv tool install mnemosyne-memory 自动装好,并补齐 config.yaml 默认值
- 数据隔离:SQLite 库与 config.yaml 存于 ~/.dsh/mnemosyne,不碰 ~/.hermes
- 配置同步:面板从扁平的 config.yaml 读取 mnemosyne 实际配置,空值字段显示默认值 placeholder;保存后自动执行 mnemosyne config reload
- 默认值恢复:面板底部支持将面板管理的配置恢复为 mnemosyne 默认值
- 自动整理:后台按 session 串行处理同步;每 10 个 durable turn 检查工作记忆数量,达到阈值时自动执行当前会话的 mnemosyne sleep。清空的 sleep_threshold 回退到上游默认 50(绝不会被当成 0 而每轮必睡);session/disposed 只在该会话确实写入过自动记忆时才执行收尾整合——空闲会话不会触发可能调用 LLM 的 sleep
- 自动记忆(默认启用):对齐 Mnemosyne 当前 Hermes 集成;可在设置中分别关闭自动记忆能力,显式设置为 false 的旧配置保持不变:
- Prompt 声明段 — 在 system prompt 注入 # Mnemosyne Memory 头部,让模型知道记忆工具可用
- 自动存储对话 — 每轮对话后自动将真实 user 消息(不含 assistant 输出)存入 Mnemosyne,无需模型主动调用 mnemosyne_remember;注入型上下文消息永不入库——plugin(如本插件自己的 prefetch 注入)、agent-instructions(workspace 指令)、skill-catalog(可用技能目录提醒)。兼容 Hermes 的长度上限默认是 user 500 字、assistant 800 字;对应上限设为 0 时完整保存,不做截断
- 自动召回注入 — 每个模型步骤前自动 recall 相关记忆并注入对话流,模型无需调用 mnemosyne_recall 即可看到先验上下文
- 会话隔离 — 按 DSH 会话分区记忆(引擎 session_id 列):每个会话只召回自己的记录 + global 作用域的行。子代理与其根会话共享记忆。会话 id 由持久化的 session header(createdAt)派生,恢复的会话跨 DSH 重启记忆不丢。global 行对所有会话可读可写(任何会话也能删除)。记忆面板管理区提供历史 default 会话迁移到 global、session 合并回 default 以及工作区迁移入口;工作区迁移先预览并在执行前创建备份。上游 cross_session 召回开关不受支持

安装

将已发布的插件安装到 web profile
dsh plugin --profile web add dsh-mnemosyne
重启 profile 后,打开 Settings > Mnemosyne,点 Setup 自动安装 CLI 或手动:uv tool install mnemosyne-memory

从 GitHub 安装(不通过 npm)

git clone https://github.com/rebron1900/dsh-mnemosyne.git
dsh plugin --profile web add ./dsh-mnemosyne

Setup 按钮需要 PATH 上有 uv。如果尚未安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh

配置

配置有两个来源:插件自身的 DSH settings(~/.dsh/settings.yaml 的 mnemosyne: 命名空间)以及 mnemosyne 的扁平 ~/.dsh/mnemosyne/config.yaml。面板优先显示 config.yaml 中的实际值;缺少值时显示默认值 placeholder。

| 分组 | 字段 | 配置来源 |
| 插件 | cli / defaultTopK / timeoutMs / dataDir | DSH settings / cordis.patch.yml |
| Embedding | noEmbeddings / embeddingModel / embeddingDim / embeddingApiUrl / embeddingApiKey | config.yaml no_embeddings / embedding_ |
| LLM | llmEnabled / llmBaseUrl / llmApiKey / llmModel / llmTimeout | config.yaml llm_ |
| 召回 | polyphonicRecall | config.yaml polyphonic_recall |
| 工作记忆 | wmMaxItems / wmTtlHours | config.yaml wm_ |
| 工作记忆 | autoSleep / sleepThreshold / ignorePatterns / syncRoles | config.yaml auto_sleep_enabled / sleep_threshold / ignore_patterns / sync_roles |
| 自动记忆 | promptSection / autoSync / syncTurnUserLimit / syncTurnAssistantLimit / autoPrefetch / recallMode / autoWriteScope / prefetchTopK / prefetchMinQueryLen | DSH settings / cordis.patch.yml |

注意:自动记忆字段是 DSH 侧配置(通过设置面板保存,不写入 config.yaml)。它们通过设置监听器在运行时生效,无需重启 DSH。

作用域兼容说明:存量安装默认保留原有 sessionScope 行为;已有记忆位于历史 default 会话时,会话级召回暂时不可见。工作区共享需显式设置 recallMode=workspace 与 autoWriteScope=workspace;升级后请打开记忆面板管理区,先确认再迁移数据。反向操作会有意把 dsh_ 行合并进共享历史命名空间,并丢失原会话归属。global 行对所有会话可见且可删除;插件会强制关闭上游 cross_session 召回逃生开关。workspace 模式使用显式 .mnemosyne-id 标记,绝不会静默回落到其他命名空间。config 面板只返回它管理的字段(允许列表),密钥类值一律掩码(***),真实值不会回传给浏览器。

面板保存会写入对应配置文件,并执行 mnemosyne config reload。底部"恢复默认配置"会将面板管理的配置恢复为 mnemosyne 默认值;更多未展示的配置可以直接编辑 ~/.dsh/mnemosyne/config.yaml。除 vec_type 等启动时确定的配置外,大部分配置支持热加载。

面板的 ignorePatterns(工作记忆组)是写入过滤器:每行一个正则(Python re 语法),匹配的内容在 remember() 时被静默丢弃(如 ^git status、^pip install、^Traceback)。插件会把它桥接到 MNEMOSYNE_IGNORE_PATTERNS 环境变量(上游写入过滤器只读 env),每次 CLI 调用都生效。在 config.yaml 中加 write_classifier: strict 可额外启用内置的噪音/密钥/结构启发式过滤。

架构

┌──────────────────────────────────────┐
│ DSH Agent Session │
│ (tools + skill + session/event + │
│ agent/pre-step + systemPrompt) │
└──────────────┬───────────────────────┘
│ execFile (no shell)
┌──────────────▼───────────────────────┐
│ mnemosyne CLI │
│ store / recall / delete / │
│ stats / sleep / config │
└──────────────┬───────────────────────┘
│
┌──────────────▼───────────────────────┐
│ ~/.dsh/mnemosyne/ │
│ ├── mnemosyne.db (SQLite) │
│ │ ├── Working Memory (hot tier) │
│ │ ├── Episodic Memory (long-term) │
│ │ └── TripleStore (temporal KG) │
│ └── config.yaml (flat key: value) │
└──────────────────────────────────────┘

插件保持 CLI 优先:共享记忆操作调用 mnemosyne CLI,会话级操作则通过 CLI venv 解释器运行小型 Python helper。Node 侧不重复实现记忆逻辑。但它已不再是纯无状态代理,因为迁移路由会直连 SQLite 写入 scope 元数据,写过滤器 env 桥接每次调用都会读 config.yaml。

设计与实现方案

见 docs/design.md。

开发

pnpm install
pnpm test # node --test(124 例:103 单元 + 17 集成 + 4 client)

License

MIT
预览分享卡片长什么样 ↓rebron1900/dsh-mnemosyne
分享 · DeepSeek Harness Hub
rebron1900/dsh-mnemosyne

Mnemosyne 记忆层在 DeepSeek Harness 中的插件 — 本地优先、SQLite 支持的跨会话记忆。

这是你的仓库?认领条目

回到顶部