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
羽毛球分组比赛记分
小程序二维码

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

小夜