dsh-obsidian-agent-wiki:DeepSeek Harness 的可搜索 SQLite Obsidian 记忆

DeepSeek Harness 插件生态中,为智能体提供本地知识库是常见需求。传统的文件系统扫描插件只能线性读取,无法按目录或属性过滤,且全文搜索在处理中文短词时往往存在局限。dsh-obsidian-agent-wiki 插件通过在启动时构建内存中的 SQLite 索引,解决了这些问题,为智能体提供了一个具备全文搜索和结构化过滤能力的 Obsidian 访问层。

核心功能

  • SQLite 索引:插件基于 Node 22 的内置 node:sqlite 构建,无运行时依赖。在启动时扫描 vault 并构建内存表,在 wiki_write 和 wiki_append 操作时自动更新索引。
  • 全文搜索:支持 2 字符中文查询。
  • 结构化过滤:支持按路径、类别、项目、标签过滤。
  • 结果排序:支持按匹配次数排序。
  • 工具支持:提供 wiki_read、wiki_list、wiki_write、wiki_append、wiki_search 工具。

安装与启用

安装插件需要 DeepSeek Harness(dsh)版本 ≥ 0.1.1-rc.2,以及 Node 版本 ≥ 22.5。

在终端中执行以下命令:

dsh plugin add dsh-obsidian-agent-wiki

配置

配置插件指向本地 Obsidian 仓库。

方法一:在 cordis.patch.yml 中配置

在 dsh 的配置文件中添加以下内容:

- id: dsh-obsidian-agent-wiki
  name: dsh-obsidian-agent-wiki
  config:
    vaultPath: B:/path/to/your/vault

方法二:设置环境变量

设置 OBSIDIAN_VAULT_PATH 环境变量,然后重启 dsh。

工具与用法

插件提供以下工具供智能体调用:

  • wiki_read(file_path)
    读取指定路径的笔记内容。

  • wiki_list(path?)
    列出指定路径下的目录或文件。路径为可选参数。

  • wiki_write(file_path, content)
    写入或覆盖笔记内容,操作完成后立即重新索引。

  • wiki_append(file_path, content)
    向笔记追加内容,操作完成后立即重新索引。

  • wiki_search(query, path?, category?, project?, tag?, limit?)
    进行全文搜索和结构化过滤。返回结果包含路径、标题、类别、项目、匹配次数和摘要,按匹配次数排序。

索引机制与搜索细节

  • 索引构建:插件在启动时扫描 vault(跳过 .obsidian、.git、node_modules、.trash 目录)并构建索引。
  • 索引更新:通过 wiki_write 和 wiki_append 工具对笔记进行操作时,会立即触发对应笔记的重新索引。
  • 手动编辑:如果在 Obsidian 中手动编辑了笔记,索引不会自动更新,需要重启 dsh 进程才能生效。
  • 全文匹配:插件使用 LIKE '%query%' 而非 FTS5 trigram 进行全文匹配。这是为了确保支持 2 字符的中文短词查询(FTS5 trigram 在查询短于 3 个字符时会返回零结果)。

注意事项

  • 版本依赖:确保满足 Node ≥ 22.5 和 dsh ≥ 0.1.1-rc.2 的版本要求。
  • 权限与安全:插件以 dsh 进程权限运行,安装前建议检查源码与许可证(MIT)。
  • 搜索实现:由于使用 LIKE 进行扫描,在笔记数量达到数十至数百篇时性能依然保持亚毫秒级,但在极大量笔记下性能可能下降。

生态背景

DeepSeek Harness 理念是「一切皆插件」。此插件由社区开发者 CagierAsh123 维护,安装目录与 GitHub 仓库为独立站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜