前言¶
在 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 保持只讀。