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 / 幻方无官方从属关系。