前言¶
在 DeepSeek Harness(DSH)里做智能体开发时,常见问题不是「模型不够强」,而是上下文里缺少你可核查的个人知识:笔记在 Obsidian 里已经积累很多,对话里却要一次次口头重复背景;检索不到就要靠模型猜,引用也对不上真实文件。社区目录将 nineberg/dsh-plugin-obsidian-memory 归为「记忆」类插件,定位是让 Agent 能检索本地 Obsidian 库、按路径引用笔记,并把会话产出写回库中。仓库由 nineberg 维护,是 zhaoxuejie/dsh-plugin-vault-memory(v0.4.0,MIT)的改良分支,并针对 DeepSeek Harness 0.2.2-rc.1 做了兼容与 GUI 调整;npm 包名仍为 dsh-plugin-vault-memory,当前版本 0.4.0,许可证 MIT。
这是什么¶
一句话:把本地 Obsidian vault 变成 DSH web 侧 Agent 的长期记忆与工作台——索引与检索、新会话记忆注入、捕获存笔记、可拖拽悬浮球/中央面板,以及库健康巡检。索引、检索与巡检默认在本机完成;语义检索可选用本地 Ollama(bge-m3)或兼容的云端端点。
相对上游,nineberg 分支在资料中列出的主要修复包括:进程级单次 HTTP 路由注册(避免重挂载后旧路由导致 GUI 报 “index missing”)、路由注册重试(避免挂载早于 webServer 就绪的 404)、配置保存在无旧版 settings API 时回退到 ~/.dsh/vault-memory.settings.json,以及悬浮卡片与 plugin-island 生态的交互与错误角标调整。
核心功能¶
Agent 工具集¶
在对话里用自然语言即可触发能力;规则是引用必须带笔记路径,找不到则明确说明,不编造。README 中的对照示例如下(背后实现以插件为准):
| 你想做什么 | 直接说 | 背后 |
|---|---|---|
| 翻旧笔记 | “库里有没有 Docker 相关笔记?” | 全文检索(中文分词) |
| 按条件找 | “查 tools/ 下近 30 天改过的笔记” | 结构化查询(目录/标签/时间) |
| 读某篇全文 | “把《Git 合并》笔记读给我” | 带行号读取 |
| 意思相近的 | “搜跟 Windows 命令行相关的” | 语义检索(本地模型,可选) |
| 关联推荐 | “这篇笔记跟哪些有关联?” | 入链/出链/同标签/共引,带理由 |
| 保存成果 | “把这段整理成笔记存进库” | 自动 frontmatter + 关联建议 |
| 体检 | “库里有孤儿/断链吗?” | 只读巡检报告 |
新会话开头可自动注入「记忆快照」(库状态、活跃项目、近期笔记),减少每次从零介绍背景。
知识库 GUI(web)¶
面向 web profile:悬浮球、侧栏「知识库」图标、以及与 Plugin Island 的灵动岛收纳/拖出,三种形态数据同源、位置可记忆。悬浮球在库有异常时可显示红色计数徽标;卡片与中央面板共用四个 Tab:
- 概览:各库健康(笔记数、断链、待审、趋势、语义状态等)
- 捕获:预览 → 保存 → 在 Obsidian 打开
- 审查:巡检建议逐条批准/忽略;批准前自动备份
- 配置:在线增删库与开关,保存即生效
巡检管家¶
默认每日 03:00 可配置的定时巡检,生成带理由的建议清单(孤儿笔记、断链、缺总览等)。只建议、批准后才写盘,写前自动备份;忽略后同类建议可在配置的天数内(资料示例为 30 天)不再提醒。可选高级规则(需语义嵌入)包括语义相近未互链、疑似重复、过期复审等。
安装与启用¶
插件以当前 DSH 进程权限访问你配置的 vault 路径,安装前建议查看 GitHub 仓库 源码与 MIT 许可声明。
npm 安装(README 推荐)¶
# 安装到 web profile(装完需完全重启 dsh,不是仅刷新页面)
dsh plugin --profile web add dsh-plugin-vault-memory
配置 Obsidian 库路径¶
在插件设置页添加,或编辑 ~/.dsh/settings.yaml:
dsh-plugin-vault-memory:
vaults:
- path: D:\path\to\your-vault # Obsidian 库绝对路径
label: main # 可选:显示名称
完全重启 dsh 后,浏览器右下角应出现书本图标悬浮球,左侧栏出现「知识库」图标,即表示 web 客户端侧已加载。
可选:语义检索¶
ollama pull bge-m3
在浮卡「配置」中开启语义检索并保存;新笔记会自动嵌入。不可用时插件会回退到关键词检索。
典型用法¶
- 问库内事实:例如「库里有没有 Docker 相关笔记?」——应返回命中列表并带文件路径,而非无出处概括。
- 结构化筛选:例如限定目录与时间窗口的查询,适合按项目文件夹维护笔记的习惯。
- 收尾存库:对话里要求「把这段整理成笔记存进库」,会走 frontmatter 与关联建议;若提示「同名已存在」,README 说明为不覆盖设计,需换标题或目录。
- 定期体检:在「审查」Tab 处理孤儿/断链等建议,仅在你批准后改盘。
上游文档链接(功能演进以 nineberg 分支 README 为准):使用教程、设计与开发文档。
适用场景与注意¶
适合谁:已在 Obsidian 中维护个人/项目知识库、希望在 DSH web 环境里让 Agent 可查、可引、可回写 同一套 Markdown 的开发者或重度笔记用户。
环境要求:面向 web profile 客户端(package.json 中 dsh.client.platform 为 web)。未看到悬浮球/侧栏时,资料建议完全重启 dsh,或清除浏览器 localStorage 后刷新;检索提示「未配置 vault」时需在浮卡「配置」中添加库路径。
权限与隐私:笔记默认不出本机;云端语义端点为可选项。插件能读写的范围等于你配置的 vault 路径及 DSH 进程权限,请勿指向无意共享的目录。
生态说明:DSH 采用「一切皆插件」的扩展方式;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
nineberg/dsh-plugin-obsidian-memory(npm:dsh-plugin-vault-memory)把 Obsidian vault 接到 Harness Agent 的工具链与 web GUI 上:检索与引用有路径约束,产出可捕获回库,巡检在批准与备份前提下整理库结构。进一步了解请查看目录页 nineberg/dsh-plugin-obsidian-memory 与源码仓库 https://github.com/nineberg/dsh-plugin-obsidian-memory。