DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

koishi-fumo-code /

koishi-fumo-code/dsh-feiyu-kb

Verified

DSH 插件:把本地 Markdown 知识库变成所有模型运行时都能调用的工具(搜索 / 读取 / 写入 / 相关推荐)

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@8749e9f8

dsh-feiyu-kb

把本地一个 纯 Markdown 的知识库,变成 DSH 里所有模型运行时都能调用的工具:搜索、读全文、写入、找相关旧条目、重建索引。

没有数据库、没有向量库、没有网络请求 —— 一条视频 / 一份资料一个 .md 文件。删了索引能重建,拷走目录就搬家,grep 也能搜。

kb_search   搜(标题 / UP / 标签 / 正文,多词 AND;不给词 = 列最近)
kb_read     读一篇全文(id / BV号 / 相对路径)
kb_add      新增或更新(判重键 BV 号;合并式更新:给了才覆盖、没给保留、标签并集)
kb_related  找同主题的旧条目(标签加权 + 中文二字组 + 英文/型号词),每条给理由
kb_index    重建 INDEX.md / index.jsonl / .kb/meta.json
kb_status   多少条、按类型/档位分布、最近几条、标签排行

为什么是文件

  • 任何运行时都能用:有插件时调工具;只有 bash 时用 lib/kb-cli.mjs;什么都没有就直接读写 .md。
  • 零依赖:不 require 任何 @deepseek-ai/* —— 桌面 profile 是 autoInstallPeers: false,裸 import peer 会让整条插件不激活。
  • 可读可改可 git:知识不是黑盒向量,出问题能一眼看见。

目录结构

<root>/
├── entries/<年>/<月>/<日期>-<BV号>.md   一篇一个文件(YAML front-matter + Markdown)
├── INDEX.md                            人看的索引(自动生成,别手改)
├── index.jsonl                         机器看的索引(自动生成)
└── .kb/meta.json                       统计 + plugin.log(自动生成)

一条的样子:

---
id: "2026-10-27-BV1Mxn26eEh5"
bvid: "BV1Mxn26eEh5"
title: "…"
up: "eogee"
url: "https://www.bilibili.com/video/BV1Mxn26eEh5"
date: "2026-10-27"
added: "2026-10-28T13:34:45+08:00"
source: "bili-scroll"
kind: "知识"        # 知识 | 有意思
tier: "值得看"       # 值得看 | 可以看 | 不值当
status: "待看"       # 待看 | 已看 | 略过
tags: ["推理", "KVCache"]
---

# 标题

## 一句话
…
## 要点
- …

安装

方式 A:克隆仓库

git clone https://github.com/koishi-fumo-code/dsh-feiyu-kb.git
node dsh-feiyu-kb/scripts/install.mjs --root "/你的/知识库目录"

方式 B:用 Release 里的 tgz(离线 / 内网 / 不想 git)

curl -L -o dsh-feiyu-kb.tgz \
  https://github.com/koishi-fumo-code/dsh-feiyu-kb/releases/download/v0.1.0/dsh-feiyu-kb-0.1.0.tgz
tar -xzf dsh-feiyu-kb.tgz && mv package dsh-feiyu-kb
node dsh-feiyu-kb/scripts/install.mjs --root "/你的/知识库目录"

install.mjs 做三件事(幂等,可重复跑):

  1. 建知识库目录骨架;
  2. 把本包链接进 <DSH_HOME>/profiles/<profile>/node_modules/dsh-feiyu-kb;
  3. 往 profile 的 package.json 写 dependencies["dsh-feiyu-kb"] = "link:<本目录>",并加进 dsh.profile.bundles。

然后重启一次 DSH(bundles 是启动时组合的)。默认 --profiles desktop,headless,只装一个就写 --profiles desktop。

为什么入口写在插件包内

本包自带的 cordis.patch.yml 里既有 insert(挂载)也有 config.root(库位置)。不要把这段抄进 profile 自己的 cordis.patch.yml:

  • 插件管理器的卸载只清理「它自己写的行」和「包自带 patch 里的行」;
  • 只要用户 patch 里还有一条 insert 引用本包,卸载会被直接拒绝(「市场不会自动改写用户补丁」)。

入口留在包内,卸载才是零残留。

卸载

插件库里点「卸载」即可(依赖、bundle 名、包内入口一起消失)。没有界面或界面不认时:

node scripts/uninstall.mjs --yes                # 保留知识库数据
node scripts/uninstall.mjs --yes --purge-data   # 连数据一起删

命令行

没有工具的运行时可走 CLI,也可以在终端自己用:

node lib/kb-cli.mjs status
node lib/kb-cli.mjs search "KVCache 推理" --limit 5
node lib/kb-cli.mjs related --text "KV Cache 量化" --tags 推理,KVCache
node lib/kb-cli.mjs read --bvid BV1Mxn26eEh5
node lib/kb-cli.mjs add --json '{"title":"…","bvid":"BV…","tier":"可以看","tags":"a,b","summary":"…","points":"要点1\n要点2"}'
node lib/kb-cli.mjs index

相关推荐怎么算

不引模型、不联网,毫秒级:

信号 权重 说明
标签重合 5 / 个(封顶 3 个) 最强信号 —— 归档时打好 3~6 个标签最划算
英文 / 型号词重合 3 / 个(封顶 3 个) KVCache、DeepInfer 这类
中文二字组重合率 6 × 比例 标题 + 正文切二字组,去掉「视频 / 教程 / 合集」这类虚词

低于阈值(默认 3 分)不返回 —— 宁可空着,也不硬凑「相关」。每条结果都带 why,方便判断真伪。

配置:库放在哪个文件夹

优先级从高到低:

  1. bundle patch 里的 config.root —— profile 层可改(<DSH_HOME>/profiles/<p>/cordis.patch.yml 里 - id: feiyu-kb 那段,或改本包自带的 cordis.patch.yml);
  2. 环境变量 FEIYU_KB_ROOT;
  3. 插件记下的生效路径 $DSH_HOME/feiyu-kb.root(插件每次加载会把自己实际用的路径写进去);
  4. 默认 ~/dsh-feiyu-kb(Windows 上就是 C:\Users\<你>\dsh-feiyu-kb)。

第 3 条是为了让命令行和插件用同一个库:kb-cli.mjs 看不到 profile 配置,只能靠这个备忘文件对齐。不然配置里换过库位置的人,一用 CLI 兜底就会写进第二个库,知识被劈成两半。

怎么确认当前用的是哪个库:

node lib/kb-cli.mjs where     # 命令行视角
# 或在 DSH 里调 kb_status,返回的 root 就是插件视角

和「刷B站」联动(可选)

配合 dsh-bili-scroll:在它的值班章程里加一步 ——「每轮把挑中的有用视频用 kb_add 归档,再调 kb_related 把同主题的旧笔记写进报告」。这样新视频进来时,三个月前那条同主题的笔记会重新浮上来。

开发

node scripts/selftest.mjs   # 21 条断言:注册 / 落盘 / 判重 / 搜索 / 越权路径 / 索引 / 相关推荐
文件 作用
index.js DSH 插件入口:注册 6 只工具,apply 绝不抛异常
lib/kb.mjs 知识库本体:写入、合并更新、搜索、相关推荐、索引
lib/kb-cli.mjs 命令行入口
scripts/install.mjs 装:链接 + 依赖 + bundle 登记(幂等)
scripts/uninstall.mjs 卸:清依赖 / bundle 名 / 链接 / 历史 patch 行,默认保留数据
scripts/selftest.mjs 不启动 DSH 也能跑的自测

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 8749e9f8798d

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout