前言¶
在 DeepSeek Harness(DSH)里做智能体或长会话开发时,记忆往往落在不同工作区、不同记忆插件各自的库里。会话侧能注入的片段有限,跨项目的关联也缺少一张带证据的图。下面介绍维护者 hanhan9999999999999999999 发布的 记忆星图(npm 包名 dsh-memory-nebula):在不改写其它记忆库的前提下,把多来源记忆只读汇总,建成关联图,并提供可视化、扩散检索、证据链与离线快照。
这是什么¶
dsh-memory-nebula 是一句简介里的 local-first 记忆星云:graph、recall、paths、hygiene、snapshots。当前 npm 版本为 1.4.0,许可证 MIT,要求 Node >= 22.13.0。插件只在 $DSH_HOME/memory-nebula/ 写入自身数据;meow-memory、笔记目录、任意 SQLite、ingest 的 JSONL 等来源均以 readOnly 接入。
生态上,DSH 主张「一切皆插件」;SkillHub 目录页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
星云视图与交互¶
左侧栏打开「记忆星图」即为整片星云(Deep Space 风格,可缩放、筛选、搜索)。1 / 2 / 3 切换三档视图(星云 / 星系 / 时间螺旋)。点节点可看全文、出处、同会话邻居;两条节点之间用 Shift 点第二条可查看证据链。空库时提供三条接入路径,也可 ?demo=1 进入只读示例星系(64 条虚构记忆,不写真实库)。
图、检索与宿主工具¶
记忆经适配器扫描后,经分词/实体与 graph.js 建图(资料中表列为 6 类边 + 打分 + 剪枝),由 nebula.js 统一索引与缓存。宿主注册 9 个 nebula_* 工具,并有一段每轮注入的 systemPrompt,使会话内 AI 能沿连接做连带检索(含跨工作区)。
| 能力 | 入口(摘自 README) |
|---|---|
| 顺着连接检索 | nebula_recall、搜索框 / |
| 跨插件补充邻居 | nebula_bridge、每轮注入(可配预算) |
| 管理记忆来源 | nebula_sources、sources.json |
| 远端 JSONL 推进 | nebula_ingest、POST /ingest |
| 静音错误关联 | nebula_link(action="mute") |
| 记忆体检(六类失效模式) | 左侧「记忆体检」、nebula_hygiene |
内置来源类型包括:meow-memory(<ws>/.dsh-meow/memory.db + sessions/)、任意 frontmatter 笔记目录、只读 SQLite、以及 $DSH_HOME/memory-nebula/ingest/*.jsonl。
导出、快照与运维¶
- 导出 MD / JSON:
GET /export?format=md|json或顶栏「导出」。 - 单文件 HTML 快照:顶栏「导出 → 整张星图 · 单文件 HTML」或
GET /share;可按工作区 / 项目 / 选中节点范围分享,并支持导出前隐私过滤(如hide=ws:日记)。 - 无端口归档:
node lib/standalone.mjs --share <file> [--scope …] [--hide …]。 - 大图性能:README 给出 20,000 条记忆量级下的建图与快照首屏基准(见仓库
docs/benchmarks.md)。 - 诊断:不含正文与路径的版本/环境/图规模信息,可通过
?→「复制诊断」或GET /diagnostics获取。
页面约每 12 秒比对 sig,其它会话写入新记忆时会自动反映到图上。
安装与启用¶
推荐:从 DSH 插件市场索引安装。 在 DSH 的「插件 → 发现」里添加市场索引 URL,再搜索「记忆星图」安装:
https://unpkg.com/dsh-memory-nebula@1.4.0/market/index.json
装完后执行一次 doctor(只读检查 Node、依赖、bundles、文件;失败时退出码 1):
node "<profile>\node_modules\dsh-memory-nebula\scripts\doctor.mjs" --profile "<profile>"
也可按 README 将包装进 profile 的 node_modules,在 package.json 中声明依赖并在 dsh.profile.bundles 加入 dsh-memory-nebula,再重启 DSH,从侧栏打开「记忆星图」。
若暂不重启或宿主仍是旧模块,可启 sidecar:sidecar.ps1 start(Windows,默认端口 7890)或 node lib/standalone.mjs --port 7890(其它系统)。
典型用法¶
接入新的记忆库(三步)¶
- 在会话中让 AI 使用
nebula_sources查看当前来源,并说明你的记忆存放位置。 - 按 integration-guide 判断:落盘 SQLite / 笔记 → 编辑
sources.json后重启页面(热载);仅 API 的远端 →POST /api/memory-nebula/ingest或nebula_ingest;临时补上下文 →nebula_bridge(memory_ids=[…])。 - 用
GET /sources或nebula_sources(verbose=true)确认新来源读到了 N 条且无读取失败。
字段与安全边界见 docs/adapters.md。
命令行生成演示或工作区快照¶
不启动 HTTP 端口,直接写出离线 HTML:
node lib/standalone.mjs --demo --share .\snapshot.html
node lib/standalone.mjs --share .\work.html --scope ws:星港 --hide level:lesson
--scope 支持 all、ws:<工作区>、project:<项目>、focus:<节点 id>;--hops 控制 focus 跳数(1–5,默认 2)。
自检¶
npm test # 95 项单元测试
npm run verify # 单测 + 发布静态检查
node scripts/smoke.mjs # 63 项接口契约(需运行中的实例)
适用场景与注意¶
适合谁: 已在 DSH 使用多种记忆插件或分散笔记/SQLite,需要一张只读关联图做浏览、证据核对、跨工作区 recall,以及给 AI 注入邻域补充包的开发者。
权限与安全: 插件以当前 DSH 进程权限运行,HTTP 服务边界、只读保证与威胁模型见仓库 docs/security.md 与 SECURITY.md。安装前请自行审阅源码与 MIT 许可证;勿在未信任的环境暴露 /ingest 等写入口。
已知设计: 不修改其它插件记忆库;关联由自动建图产生,可用 mute 纠错;导出与快照支持隐私规则与中英界面(?lang=en)。
结尾¶
dsh-memory-nebula 把「记忆」从单点检索变成一张带证据的星云:只读聚合、图检索、九工具与每轮注入、体检与离线快照,适合作为 DSH「记忆」类插件里的可视化与关联层。
- 目录页:https://www.skillhub.cn/plugins/hanhan9999999999999999999/dsh-memory-nebula
- 仓库:https://github.com/hanhan9999999999999999999/dsh-memory-nebula