dsh-feiyu-kb:把本地 Markdown 知識庫變成模型可調用的工具

前言

在 DSH 裏跑智能體,上下文窗口再長也裝不下「上週看過的視頻、昨天聊定的結論」。常見做法是另起向量庫或外部筆記服務,再寫一層對接;運維和權限邊界都會變複雜。dsh-feiyu-kb(維護者 koishi-fumo-code)走另一條路:用純 Markdown 文件當知識庫,通過 DSH 工具暴露給任意模型運行時;從 0.7.0 起還附帶記憶庫,把會話往來落成可檢索的檔案。分類上屬於社區目錄裏的「記憶」類插件。下面介紹它做什麼、怎麼裝、日常怎麼用,以及接入刷視頻歸檔時的注意點。

這是什麼

一句話:DSH 插件,把本地一個純 Markdown 知識庫變成運行時工具(搜索、讀取、寫入、相關推薦),並支持網頁、文件、目錄、RSS 進料;帶設置頁、健康檢查與會話壓縮調參;可與刷視頻類上游插件配合自動沉澱筆記。

  • 倉庫:koishi-fumo-code/dsh-feiyu-kb
  • 目錄頁:https://www.skillhub.cn/plugins/koishi-fumo-code/dsh-feiyu-kb
  • 當前包版本(package.json):0.7.5
  • 運行要求:Node.js >= 22,DSH >= 0.1.7-rc.1,許可證 MIT

設計取向在 README 裏寫得很直白:沒有數據庫、沒有向量庫;除你主動抓網頁外不髮網絡請求。知識是「檔案」(按主題、可公開),記憶是「往來」(偏私密、按時間),兩套工具刻意分開。

核心功能

知識庫工具(kb_*)

裝好後模型側會多一組 kb_* 工具(README 快速開始寫「8 只」,與記憶庫合計爲 12 只):

工具 作用
kb_search 搜標題 / UP / 標籤 / 正文,空格分隔多詞且需全部命中;留空則列最近
kb_read 讀一條全文,默認截 8000 字,full: true 可讀全文
kb_add 新增或更新;按 BV 號 → URL → 日期+標題判重,合併式更新
kb_related 同主題舊筆記,標籤加權 + 中文二字組 + 英文/型號詞,每條帶理由
kb_ingest 收外部內容:url / file / dir / feed(RSS·Atom)
kb_capture 隨手記一段話,自動起標題、抽要點
kb_status 庫概況
kb_index 手改 entries/ 後重建索引

單條筆記是一條帶 front-matter 的 .md,落在 entries/<年>/<月>/ 下;INDEX.md、index.jsonl 自動生成,不要手改。

記憶庫工具(mem_*)與自動記錄

工具 作用
mem_add 記誰、什麼事、什麼時候,一兩句話
mem_search 搜記憶,也可搜原始對話流水(默認最近 14 天)
mem_read 按 id 讀完整記憶
mem_status 條數、最近一條、流水天數

插件訂閱 DSH 的 session/event:滿足會話名等於 brain.session(默認 dsh-feiyu)或工作目錄等於 brain.cwd 時,會把問答成對寫入 chats/YYYY-MM-DD.md,並按來源打標(qq / bili / dsh)。寫入默認一直進行;是否把記憶注入提示由 memory.read、本會話開關、memory.alwaysReadSessions 三者任一決定,默認不注入,打開時最近 5 條一句話摘要進提示(memory.inject 可調)。

進料方式

通道 用法要點
刷視頻插件 見下文「接上刷視頻插件」
網頁 kb_ingest from=url,僅 http/https,拒絕內網,單頁上限 5MB
本地文件 / 目錄 from=file / from=dir
RSS / Atom from=feed url=… limit=10
隨手記 kb_capture text="…"
目錄同步(兜底) 設置頁每 10 分鐘掃指定目錄的 .md

要點抽取規則強調「從正文如實摘」,抽不出就只留一句話,不編造。

設置頁與其它能力

DSH 設置裏會多一頁「知識庫」:改庫路徑(保存即生效)、開關 kb_ingest / kb_capture、調上下文壓縮閾值、目錄同步、立即健康檢查。配置落在 $DSH_HOME/feiyu-kb.config.json,卸載不污染 profile。

可選把 DSH 壓縮插件 compaction-basic 的 thresholdRatio 從 0.8 調到 0.6(中文會話更省 token),寫 profile 前備份、校驗失敗自動還原。

安裝腳本還會順帶配置搭檔:dsh-bili-whale(B 站通道)、astrbot_plugin_feiyu_bridge(QQ 轉發);已有則跳過。只要本插件可加 --no-peers;只登記不下載加 --no-network。單獨補裝:npm run peers。

QQ 側插件 POST 同包提供的 /api/feiyu-chat,與知識庫、記憶庫在同一插件內。

安裝與啓用

資料中的快速開始是在插件包目錄下執行安裝腳本(README 亦提到「插件庫裏的安裝」)。下面步驟不寫 clone,假定你已通過目錄或插件庫拿到包路徑。

1、進入插件根目錄,指定知識庫根路徑並執行安裝:

node scripts/install.mjs --root "D:/你的/知識庫"

若只想裝本插件、不拉搭檔:

node scripts/install.mjs --root "D:/你的/知識庫" --no-peers

2、重啓一次 DSH。

3、自檢(第二條路徑按你的 profile 調整):

node scripts/preflight.mjs --profile ~/.dsh/profiles/desktop
node scripts/selftest.mjs

selftest.mjs 爲 41 條功能斷言,在隔離的 DSH_HOME 下運行,不碰真庫。

庫路徑優先級(從高到低):設置頁路徑 → bundle patch 裏 config.root → 環境變量 FEIYU_KB_ROOT → $DSH_HOME/feiyu-kb.root → 默認 ~/dsh-feiyu-kb。命令行可對齊:

node lib/kb-cli.mjs where

常用配置默認值(README):

配置項 默認 說明
kb.root ~/dsh-feiyu-kb 知識庫
memory.root $DSH_HOME/feiyu-memory 記憶庫
brain.session dsh-feiyu 大腦會話名
brain.cwd $DSH_HOME/feiyu-brain 大腦工作目錄

插件在 DSH 進程權限下運行;安裝前請自行查看源碼與 MIT 許可證,確認路徑與網絡行爲(如 kb_ingest 抓網頁)符合你的環境策略。

典型用法

模型側調工具

在會話裏讓模型調用工具即可,例如搜庫、讀條目、收網頁:

  • 搜索:kb_search(關鍵詞空格分隔)
  • 讀全文:kb_read(必要時 full: true)
  • 收網頁:kb_ingest from=url url=https://…

沒有 DSH 插件運行時,同一套邏輯可用 CLI:node lib/kb-cli.mjs;再不行就直接讀寫 .md。

接上刷視頻插件(建議 A + B)

A. 會話內歸檔(推薦)

把倉庫 examples/whale-work-AGENTS.md 複製到刷視頻插件會話工作目錄下的 AGENTS.md(例如 ~/.dsh/whale-work/)。注入的指令會:有價值視頻調 kb_add(要點讀字幕,讀不到只寫一句);歸檔後調 kb_related;每輪往 notes/YYYY-MM-DD.md 追加幾行作落盤錨點。

B. 目錄同步(兜底)

設置頁打開目錄同步,默認掃 ~/.dsh/whale-work。注意:若目錄裏只有 AGENTS.md 會被跳過,可能「掃 0、收 0」;需配合 A 寫 notes/,或把目錄指向上游真實落盤位置。設置頁會顯示上次同步時間與告警。

接 B 站插件時不必改會話名,把工作目錄指到 brain.cwd 即可收記憶。

QQ 通道

部署 bridge/ 內 AstrBot 插件:

npm run bridge:install

橋接 POST /api/feiyu-chat;sessionId 省略則用 brain.session。

卸載

node scripts/uninstall.mjs --yes
node scripts/uninstall.mjs --yes --purge-data

前者保留知識庫數據,後者連數據刪除。

適用場景與注意

適合誰:希望長期筆記留在本地 Markdown、任意 DSH 模型都能搜讀寫;需要 B 站/QQ/DSH 多通道對話進同一記憶賬;不想維護向量庫與額外數據庫的開發者。

邊界(README 已知):

  • 啓動期致命崩潰時插件可能來不及寫診斷,需下次成功啓動補報。
  • 網頁正文抽取是啓發式,結構怪異的站可能抽歪,可改用 kb_add 手寫。
  • 目錄同步默認關,單次最多 20 篇 .md,不會自動去別處找文件。
  • kb_related 是字面相似而非語義向量,標籤打準才準。

相關推薦低於默認 3 分不返回,寧可空也不硬湊。

穩定性腳本還有 scripts/doctor.mjs、scripts/compose-check.mjs;插件內置看門狗會掃崩潰日誌與 profile 回滾,報告在 $DSH_HOME/diagnostics/。

結尾

dsh-feiyu-kb 把「存、找、留得住」收進一套文件型知識庫與記憶庫,用工具暴露給 DSH 裏任意模型,並預留網頁/RSS/目錄進料與刷視頻歸檔銜接。細節與更新以倉庫 README 爲準。

  • 社區目錄:https://www.skillhub.cn/plugins/koishi-fumo-code/dsh-feiyu-kb
  • GitHub:https://github.com/koishi-fumo-code/dsh-feiyu-kb
羽毛球分组比赛记分
小程序二维码

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

小夜