dsh-wiki-notes:一次调用返回 Markdown 知识库命中小节与出处

前言

在 DeepSeek Harness(DSH)里让模型用本地 Markdown 笔记库,常见流程是:读总览、翻 index、再 shell 跑检索脚本、打开页面、追来源——多步往返,上下文也容易被整页或长摘要撑满。维护者 xyzOvO 的 dsh-wiki-notes 把这一段收成 只读 工具 wiki_recall:一次调用返回命中小节的完整正文和页级引用,另带目录浏览、库健康检查与回写骨架(不写盘)。README 里对 73 页样例的对比是:旧流程单次约 18.7k 字符,新流程约 2.5k。

这是什么

Read-only Markdown knowledge-base retrieval for DeepSeek Harness——面向 DSH 的本地 Markdown 笔记库检索插件(当前 package 版本 1.1.3,MIT)。

设计思路来自 Karpathy 的 llm-wiki.md:持久 wiki 由 LLM 增量维护,本插件只加速其中的 Query 段。默认目录约定包括 原始资料-raw/、知识层-wiki/、根目录 AGENTS.md,以及 index.md、log.md;路径指到上一层(例如含 raw 与 wiki 的 LLM-Wiki/)时,插件会认 index.md 并自动下钻到知识层,返回里注明实际读取层级。

核心功能

wiki_recall 七种 mode

mode 作用 主要参数
search(默认) 关键词 AND 检索 query、limit(默认 5,≤12)、sectionChars(默认 900,≤3000)
page 按页名/别名取整页 name、pageChars(6000)
list 按类型/标签/状态列目录 type、tags、status、limit(40,≤200)
overview 总览、规模、最近日志、健康计数 pageChars(4000)、logLimit(5,≤20)
lint 孤儿页、断链、缺字段、别名冲突等;与上次体检对比 limit(8,≤40)、staleDays(120)
draft 生成新页落盘骨架(目录、frontmatter、index 行、log 条),不写文件 title、type、tags、summary、sources
help 各 mode 与 status 说明 无

search 每条命中含 kind、sources(证据强度代理)、section(小节全文而非短片段)、citation(← [[页名]] §小节 → 路径)、brokenLinks、updated 距今天数(超过 180 天标可能过时)等。插件还会从库内标签注入一行主题提示(约 50 token),可在设置页关闭或自定义。

设置页与实时同步

DSH 设置 →「知识库」:填路径、测试、保存。浏览器侧走同源 HTTP /api/wiki-notes/*(state / check / save / rescan)。对库根目录 fs.watch 监听 .md 变更,400ms 防抖后作废缓存;监听失败则退回 30 秒 TTL。Linux 上递归监听需 Node ≥ 20.13.0(与 engines 一致)。

命令行(不装插件也可)

仓库提供 bin/cli.mjs 与 wiki-notes bin,便于本地验证检索。

安装与启用

DSH 生态里插件常以 bundle 形式安装,不要凭仓库名自行拼接未在文档出现的 dsh plugin add 命令。README 给出的两种方式如下。

在 DSH 里说明要安装的插件目录绝对路径,例如:「帮我装一个 DSH 插件,目录是 <绝对路径>」。

或自行调用:

plugin_manager { action: "install_bundle", target: "<绝对路径>" }

返回 application: applied 即生效,无需重启。修改 lib/*.js 后关开插件可热重载;改 lib/client.js(设置页)需重启 DSH。

安装前请自行查看 GitHub 仓库 源码与 MIT 许可证;插件以当前 DSH 进程权限读取你配置的路径,只读不写库。

配置知识库路径

四层优先级(高到低):

优先级 来源
1 插件 config 的 root
2 环境变量 DSH_WIKI_ROOT
3 wiki-notes.config.json(设置页写入)
4 lib/config.js 的 DEFAULT_WIKI_ROOT(默认空)

未配置时工具会明确提示「还没配置知识库路径」,不会静默扫空目录。

典型用法

工具调用示例(JSON 参数):

{ "mode": "search", "query": "上下文 预算", "limit": 5 }

本地 CLI(README 样例库):

node bin/cli.mjs search 上下文 --root=examples/sample-wiki

更细的 frontmatter 七字段、index.md / log.md / 总览-overview.md 约定见仓库 docs/库结构.md;可跑样例在 examples/sample-wiki/。

适用场景与注意

适合:已按 wiki 结构维护本地 Markdown(含 Obsidian 双链习惯)、希望在 DSH 对话里少步数、小节级召回并带出处与健康信号的团队或个人。

局限(README 自述):中文不分词,靠空格与 别名;页名即查询词时选节可能偏;每次调用全量扫描,70–100 页量级尚可,再大需增量索引;只读,不修红链、不改页。

可选上下游:网页剪藏进 raw 层可用 Obsidian Web Clipper;维护 wiki 语法可参考 kepano/obsidian-skills。

社区目录页:skillhub.cn 上的 dsh-wiki-notes(独立站点,与 DeepSeek / 幻方无官方从属)。源码与 issue:https://github.com/xyzOvO/dsh-wiki-notes。

结尾

dsh-wiki-notes 把「查本地 wiki」从多步读文件收成 wiki_recall 一次返回小节正文与 citation,并附带 overview、lint、draft 等辅助 mode。配好路径并在设置页测试通过后,模型在主题词命中时会更容易主动查库;需要写回页面仍要由你或别的工具完成,本插件 deliberately 保持只读。

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

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

小夜