🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

团队知识库 weibaohui/dsh-kb

DeepSeek Harnessv0.7.18
weibaohui6 天前有提交已提供中文文档扫描:含敏感能力

dsh 插件 · 团队知识库:离线知识共享FDE 盒子,浏览/全文检索/加工入口;写路径收口 agent,基于…

41.2/100
综合分
9
GitHub 星标
1,073
npm 周下载
—/5
用户评分

数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @weibaohui/dsh-kb
npm 源 · @weibaohui/dsh-kb 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@weibaohui/dsh-kb @ 0.7.18
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 20:46:53

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 80 处,展示前 34 条)
  • 写入本地文件
    src/index.js:415
    fs.mkdirSync(root, { recursive: true })
  • 写入本地文件
    src/index.js:500
    fs.mkdirSync(rawDir, { recursive: true })
  • 写入本地文件
    src/index.js:507
    fs.mkdirSync(wikiDir, { recursive: true })
  • 读取本地文件
    src/kb-core.js:52
    return fs.statSync(abs)
  • 读取本地文件
    src/kb-core.js:132
    for (const ent of fs.readdirSync(abs, { withFileTypes: true })) {
  • 读取本地文件
    src/kb-core.js:136
    const s = fs.statSync(full)
  • 读取本地文件
    src/kb-core.js:181
    const st = fs.statSync(abs)
  • 读取本地文件
    src/kb-core.js:185
    const text = fs.readFileSync(abs, 'utf8')
  • 读取本地文件
    src/kb-core.js:213
    const st = fs.statSync(abs)
  • 写入本地文件
    src/kb-core.js:288
    fs.mkdirSync(dirAbs, { recursive: true })
  • 写入本地文件
    src/kb-core.js:294
    const out = fs.createWriteStream(tmp, { flags: 'wx' })
  • 写入本地文件
    src/kb-core.js:313
    fs.renameSync(tmp, target)
  • 删除本地文件
    src/kb-core.js:317
    try { fs.rmSync(tmp, { force: true }) } catch {}
  • 写入本地文件
    src/kb-core.js:445
    fs.writeFileSync(tmp, body)
  • 写入本地文件
    src/kb-core.js:446
    fs.renameSync(tmp, abs)
  • 删除本地文件
    src/kb-core.js:448
    try { fs.rmSync(tmp, { force: true }) } catch {}
  • 写入本地文件
    src/kb-core.js:474
    fs.writeFileSync(tmp, body)
  • 删除本地文件
    src/kb-core.js:477
    try { fs.rmSync(tmp, { force: true }) } catch {}
  • 删除本地文件
    src/kb-core.js:517
    fs.unlinkSync(src)
  • 删除本地文件
    src/kb-core.js:556
    fs.unlinkSync(src)
  • 删除本地文件
    src/kb-core.js:639
    if (vers.length > SNAP_KEEP) for (const f of vers.slice(0, vers.length - SNAP_KEEP)) fs.rmSync(path.join(dir, f), { force: true })
  • 读取本地文件
    src/queue.js:48
    const st = fs.statSync(abs)
  • 读取本地文件
    src/queue.js:66
    const st = fs.statSync(abs)
  • 读取本地文件
    src/queue.js:91
    try { text = fs.readFileSync(abs, 'utf8') } catch { continue }
  • 读取本地文件
    src/queue.js:283
    try { text = fs.readFileSync(ledgerFile, 'utf8') } catch (e) {
  • 写入本地文件
    src/queue.js:297
    try { fs.renameSync(ledgerFile, bad) } catch { }
  • 写入本地文件
    src/queue.js:316
    fs.mkdirSync(path.dirname(ledgerFile), { recursive: true })
  • 写入本地文件
    src/queue.js:317
    fs.writeFileSync(tmp, JSON.stringify({ version: LEDGER_VERSION, paused, updatedAt: nowIso(), items: out }, null, 1), 'utf8')
  • 写入本地文件
    src/queue.js:318
    fs.renameSync(tmp, ledgerFile)
  • 读取本地文件
    src/queue.js:349
    try { text = fs.readFileSync(abs, 'utf8') } catch { return addItem(rel, fp, null, kbId) && 1 }
  • 写入本地文件
    src/queue.js:356
    fs.mkdirSync(kbChunks, { recursive: true })
  • 读取本地文件
    src/queue.js:357
    for (const d of fs.readdirSync(kbChunks)) {
  • 删除本地文件
    src/queue.js:358
    if (d.startsWith(relHash + '-') && d !== dirName) fs.rmSync(path.join(kbChunks, d), { recursive: true, force: true })
  • 写入本地文件
    src/queue.js:360
    fs.mkdirSync(dir, { recursive: true })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

3 张 · 点击查看大图

功能亮点

  • 离线知识共享
  • 浏览与全文检索
  • 写路径收口agent
展开完整介绍(78 字)↓

dsh 插件 · 团队知识库:离线知识共享(FDE 盒子),浏览/全文检索/加工入口;写路径收口 agent,基于 Karpathy LLM Wiki 模式

v0.7.182026-10-29
API 基址改由 document.baseURI 推导(与宿主官方客户端同口径):子路径反代(如 /dsh-kb/api 会丢前缀打到站点根而 404;根路径部署行为不变。dsh-sync#14 同款修复,全插件批次落地。
v0.7.172026-10-28
由 @gxfc9867 贡献(#2),维护者验收合并: 正文可编辑:PUT /doc 改写 wiki/ 下已存在的文本页——白名单目录 + realpath 越界拒绝 + 1MB 上限 + 原子写(tmp+rename),保存后由宿主监视自动进版本历史(每页 50 份可回滚)。 回收站软删除:DELETE /doc 把 wiki/ 与 raw/ 下文件移入 /dsh-kb/trash//(跨设备自动降级为复制+删除),支持列表 / 还原(自动补目录)/ 彻底删除单条 / 清空;删除前客户端会先查引用页并提示。合并前由维护者补充:回收站文件名以 base64url 编 rel(修复文件名含 __ 时还原串路径的缺陷,decode 侧带规范化校验拒收伪造条目)。 产出库保持只读;index/log/schema 不开放删除。新增 test/doc-edit-trash.test.js 18 用例,全量 59 项通过。
v0.7.82026-09-24
fix: 修复 0.7.7 客户端 i18n locale 订阅丢 this 导致的渲染树崩溃(宿主卡死在 Loading plugins...),并接通语言切换刷新链路(useT 组件 + 侧栏 DOM 入口)。 Full Changelog:
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
@weibaohui/dsh-kb DSH plugin npm version dsh 插件 · 团队知识库:跨会话、跨人的知识共享与沉淀。侧栏入口进全页知识库——目录树浏览、全文搜索、markdown 阅读、raw 素材上传、任意条目 @ 给 agent。上传即自动蒸馏(v0.2+):素材入队后由 kb-bot 会话按 schema 串行加工成文,也可继续手动 @ 给 agent 精加工。 基于 Karpathy LLM Wiki 模式:raw(不可变素材)→ wiki(成文知识)→ schema(约定),人丢素材、agent 两步加工(分析 → 成文)维护 index 与 log。 demo v0.2 自动蒸馏:上传即自动入队,bot 会话按 schema 串行加工成文——「⚗️ 蒸馏队列」看进度,蒸馏模型可在设置中指定: 自动蒸馏 核心功能 - 全页知识库:侧栏「📚 知识库」进入(工艺库下方);左栏目录树(wiki / raw 懒加载),右栏阅读或搜索 - 多知识库(v0.5.0+):左栏顶部下拉框切换库(v0.6.3+ 仅显示库名),旁边「+」弹出小框新建——素材库(建骨架、可上传、自动蒸馏)或产出库(只读浏览/搜索/@),确定后自动选中新库;选中非主库时旁边出现「✕」可移除(不删数据);对话里「📚 知识库」按钮同样按多库列出
展开完整文档(README 剩余 1 节)
@weibaohui/dsh-kb

DSH plugin
npm version

dsh 插件 · 团队知识库:跨会话、跨人的知识共享与沉淀。侧栏入口进全页知识库——目录树浏览、全文搜索、markdown 阅读、raw 素材上传、任意条目 @ 给 agent。上传即自动蒸馏(v0.2+):素材入队后由 kb-bot 会话按 schema 串行加工成文,也可继续手动 @ 给 agent 精加工。

基于 Karpathy LLM Wiki 模式:raw(不可变素材)→ wiki(成文知识)→ schema(约定),人丢素材、agent 两步加工(分析 → 成文)维护 index 与 log。

demo

v0.2 自动蒸馏:上传即自动入队,bot 会话按 schema 串行加工成文——「⚗️ 蒸馏队列」看进度,蒸馏模型可在设置中指定:

自动蒸馏

核心功能

- 全页知识库:侧栏「📚 知识库」进入(工艺库下方);左栏目录树(wiki / raw 懒加载),右栏阅读或搜索
- 多知识库(v0.5.0+):左栏顶部下拉框切换库(v0.6.3+ 仅显示库名),旁边「+」弹出小框新建——素材库(建骨架、可上传、自动蒸馏)或产出库(只读浏览/搜索/@),确定后自动选中新库;选中非主库时旁边出现「✕」可移除(不删数据);对话里「📚 知识库」按钮同样按多库列出
- 库约定可编辑(v0.6.0+):每个知识库各有一份 schema.md 加工约定,顶栏「📐 约定」或 schema.md 阅读页「✏️ 编辑约定」直接改——每库独立,各有特色(页面规范、目录用途、加工流程都可按库定制);kb-bot 自动蒸馏与交互 agent 加工前都以当前库的 schema.md 为最终权威,保存即对下次加工生效,支持 ⌘S / 恢复默认模板
- 自动蒸馏(v0.2+):raw/ 新素材自动入队(上传钩子 + 文件监视 + 周期兜底扫描),bot 会话逐个蒸馏;右上角「⚗️ 蒸馏队列」(全局入口,v0.6.2+)看进度/重试/取消/跳转会话,支持暂停、失败退避重试、重启自动恢复、大文件按章节分批成文
- 全文搜索:内置零依赖扫描(大小写不敏感,文本类文件,命中高亮),无需安装任何外部工具
- 问 AI(v0.7.0+):搜索框输入问题点「🤖 问 AI」——自动检索当前库,把命中页 @ 引用连同问题写入输入框,agent 带着依据作答并附来源
- 版本历史(v0.7.0+):宿主监视 wiki/ 自动快照(内容有变化才记版本,每页保留 50 份);阅读页「🕐 历史」查看/恢复任意版本,agent 或人的改动都可回滚
- 页面反馈闭环(v0.7.0+,v0.7.1 起自动执行):阅读页「⚠️ 反馈」记录问题到本库 wiki/meta/feedback.md;默认提交后后台 agent 自动处理——无人值守会话核实反馈、按 schema 修正页面、把该行标 [done](进度看蒸馏队列面板「⚠️ 反馈处理」区块,可跳转会话);执行器不可用时自动降级为把指令写入输入框
- 陈旧提示(v0.7.0+):超过 90 天未更新的页面显示「⏳ N 天未更新」标记,救火前先核对
- 下载导出(v0.7.0+):任意文档可下载单页原文(markdown/文本/附件)
- markdown 阅读:frontmatter 徽章(标题/作者/标签/更新时间)、[[wikilink]]、内部链接、图片内联、代码块、表格
- 素材上传:raw/ 区可上传(log/截图/抓包…),服务端强制只进 raw/、拒绝覆盖(raw 不可变)
- @ 给 agent:任意条目一键把 @绝对路径 注入输入框,让 agent 阅读或加工
- 骨架自举:首次启动自动创建目录与约定文件(不覆盖已有),零配置

知识库布局

~/.dsh/kb/ # DSH_KB_ROOT 可覆盖(如 /var/lib/dsh/kb) ├── raw/ # 原始素材,不可变(人上传,agent 只读) ├── wiki/ │ ├── howtos/ # 症状 → 原因 → 步骤 → 验证 │ ├── decisions/ # 背景 → 选项 → 结论 → 后果 │ ├── postmortems/ # 时间线 → 根因 → 改进项 │ └── notes/ # 读书摘记/成书笔记(自动蒸馏大文件落这里) ├── index.md # 目录(agent 维护,每篇成文必须挂入) ├── log.md # 操作流水(谁、何时、动了哪些篇) └── schema.md # 本库加工约定(可编辑,每库独立:页面规范 / 目录用途 / 加工流程)

安装

dsh plugin --profile web add @weibaohui/dsh-kb -w

装完重启 dsh web 即生效。

配套 agent 技能(必须装,否则 agent 不会加工沉淀)

把 skill/dsh-kb/ 安装进技能市场(skills-management),agent 即获得查询/两步加工/矛盾标注/log 纪律。另见 docs/lint-prompt.md:在 dsh-tasks 加一条每月 lint 定时项(死链/孤儿页/陈旧条目清单)。

使用

1. 侧栏点「📚 知识库」;顶部搜索框全文检索(Enter),左侧树点开浏览
2. 点文件名阅读;[[链接]] 与内部链接可点击跳转;点「@ 给 agent」把条目丢进对话框
3. 往 raw/ 传素材:raw 树内打开任意页面,右上「上传素材」
4. 加工沉淀:@raw/xxx.log 给 agent,说「按 schema 加工入库」——agent 两步加工后成文、挂 index、记 log
5. 定制约定:顶栏「📐 约定」编辑当前库的 schema.md(每库独立,保存即生效)——比如某个库只收「解决方案」形态、某个库要求中文标题,各库各具特色

与 dsh-file-share 的分界

file-share 管会话工作区的文件(跟着会话 cwd 走);dsh-kb 管跨会话、跨人的固定知识库(只读为主 + raw 上传 + 搜索)。二者互不依赖。

联系我 :飞书群

link

版本兼容性

本插件与 DeepSeek Harness(@deepseek-ai/dsh)的版本对应关系:

| 插件版本 | 适配 dsh 版本 | 备注 |
| 0.7.15 | 0.1.7-rc.2 | 当前版本;修复降级路径 Config 导出 null——宿主 settings schema() 不排除 null,会炸 settings.describe() 拖垮整份设置文档(同 dsh-continue#4) |
| 0.7.12 | 0.1.7-rc.2 | 去除 FDE 专用表述,定位为通用团队知识库 |
| 0.7.11 | 0.1.7-rc.2 | 适配 0.1.7 settings 模型(导出 volatile Config,ctx.settings.update 持久化),面板改动重启不再丢失 |
| 0.7.10 | 0.1.7-rc.2 | 当前版本,已在 @deepseek-ai/dsh@0.1.7-rc.2 下验证运行 |
| 0.7.9 | 0.1.7-rc.2 | 已在 @deepseek-ai/dsh@0.1.7-rc.2 下验证运行 |
| 0.7.8 | 0.1.7-rc.2 | 已在 @deepseek-ai/dsh@0.1.7-rc.2 下验证运行 |

发版约定:每次发布新版本时,请在上表追加一行,记录该插件版本实际验证所用的 @deepseek-ai/dsh 版本。package.json 的 engines.dsh 声明最低支持版本;本表记录实际验证版本,二者配合使用。
预览分享卡片长什么样 ↓weibaohui/dsh-kb
分享 · DeepSeek Harness Hub
weibaohui/dsh-kb

dsh 插件 · 团队知识库:离线知识共享FDE 盒子,浏览/全文检索/加工入口;写路径收口 agent,基于…

这是你的仓库?认领条目

回到顶部