前言¶
DeepSeek Harness (DSH) 的设计理念是「一切皆插件」。在开发或调试过程中,维护一份结构化的 Markdown 知识库是常见需求。直接依赖外部服务或 LLM 进行管理缺乏确定性,且可能涉及隐私问题。dsh-llmwiki 插件通过本地文件系统和确定性算法,提供了一套无需网络和模型调用的 wiki 存储与检索方案,确保了数据的可重现性和完整性。
插件简介¶
dsh-llmwiki 是一个本地优先、源链接 Markdown wiki 存储和检索插件。它由 EveGoodEvening 维护,遵循 MIT 许可证。该插件旨在为 DSH 提供确定性的存储、检索和结构完整性检查,所有数据均存储在本地文件系统下的单一 wiki 根目录中。
核心功能¶
该插件提供以下核心能力:
- 不可变源:使用 SHA-256 内容哈希存储源文件,确保源记录一旦写入即不可变,不会被修改或删除。
- 源链接页面:通过 Markdown frontmatter 验证页面引用的源 ID,确保页面与源记录的对应关系。
- 确定性搜索:基于 BM25 评分算法进行确定性搜索,索引重建是按需进行的。
- 结构检查:提供文件系统、完整性、链接诊断和索引状态检查,但不进行语义判断或自动修复。
- 安全文件系统:Wiki 根目录必须为真实目录,拒绝符号链接,所有路径均受根目录限制。
- 无外部依赖:搜索、工具、命令和 Lint 功能均不调用任何模型或网络接口。
安装与启用¶
安装前请确保环境满足依赖要求:Node.js ^22.19.0 || >=24 和 pnpm 11.7.0。
1. 安装插件¶
通过 DSH 配置文件管理器安装包:
dsh plugin --profile web add @evegoodevening/dsh-llmwiki
2. 创建配置补丁¶
安装包默认情况下不会激活 llmwiki Loader 行,必须显式补丁和选择加入。创建配置文件 /etc/dsh/llmwiki-web.patch.yml:
- insert:
- id: llmwiki
name: '@evegoodevening/dsh-llmwiki'
config:
root: /var/lib/dsh/llmwiki/web
maxSourceBytes: 2097152
maxPageBytes: 524288
maxResults: 20
maxSnippetBytes: 1200
commandDiagnosticLimit: 20
3. 应用配置并重启¶
使用补丁文件重新加载配置:
dsh --profile web --patch /etc/dsh/llmwiki-web.patch.yml --dump-config
重启配置文件后,使用 /wiki status 或 /wiki lint 验证插件状态。
4. 卸载(保留数据)¶
如需移除插件而不删除 Wiki 数据:
dsh plugin --profile web remove @evegoodevening/dsh-llmwiki
配置与使用¶
插件的所有配置键均为可选,可在补丁文件的 config 节点中设置。主要配置项包括:
* root:Wiki 根目录路径。
* maxSourceBytes:单个源文件的最大字节长度(默认 2MB)。
* maxPageBytes:页面渲染的最大字节长度(默认 512KB)。
* maxResults:搜索结果的最大数量(默认 20)。
通过上述步骤启用后,插件将作为 DSH 的一个服务、工具和命令存在,供 Agent 调用。
注意事项¶
- 作用域名称:始终使用作用域包名称
@evegoodevening/dsh-llmwiki,不要使用未作用域的dsh-llmwiki。 - 显式激活:安装包默认不激活 Loader 行,必须使用显式补丁。
- 数据兼容性:升级到安全默认 bundle 执行无数据迁移,保留现有根目录、ID 和索引。
- 文件系统限制:Wiki 根必须是真实目录,插件会拒绝符号链接。
- 来源管理:来源从未被插件修改或删除。
总结¶
dsh-llmwiki 为 DeepSeek Harness 提供了一个本地化、确定性的 Markdown Wiki 解决方案。通过不可变源记录和确定性搜索,它适合需要严格数据管理、隐私保护以及离线运行的开发场景。更多细节可参考其GitHub 仓库或社区目录。