coding-agents
vectorize-io/hindsightHindsight:会学习的 Agent 长期记忆系统,自动召回/保存、知识页、深度反思与按仓库隔离的记忆银行。
DSH 通用知识库插件:导入 md/txt/json/yml/docx/pdf、目录化管理、FTS5 全文检索(BM25)、Web 管理界面。
DeepSeek Harness (DSH) 通用知识库插件
文件导入 · 目录化管理 · FTS5 全文检索 · 知识库管理 UI
dsh-knowledge-base 把文档变成 DeepSeek Harness agent 可检索的知识库:丢进一个 PDF、Word 或 Markdown 文件,自动解析、按章节切块入库,agent 即可用 FTS5(BM25)相关度排序检索。内置 Web 管理界面支持像文件管理器一样管理知识库:新建/重命名/删除目录、移动文件、浏览内容。
md / txt / json / yml / docx / pdf,无大小限制;PDF 内置 pdfjs-dist 解析(跨平台、零系统依赖)kb_query / kb_import / kb_list / kb_update / kb_delete,模型在对话中直接使用dsh plugin --profile web add dsh-knowledge-base
依赖:DeepSeek Harness(
dsh)环境提供@deepseek-ai/*运行时;Node ≥ 22.5(内置node:sqlite)。
方式一:Web 界面(推荐)
dsh web(或 dsh --profile web)方式二:Agent 工具(headless / 任意 profile)
导入: 用 kb_import 导入 /path/to/手册.pdf,分类"文档",标签 ["手册"]
检索: 用 kb_query 查 "变压器"
浏览: 用 kb_list / kb_list 分类=文档
修改: 用 kb_update 改 id=3 的分类为"文档"
删除: 用 kb_delete 删除 id=3
# 在 profile 的 cordis.patch.yml 或安装 bundle 时配置
# 默认不预置任何分类(适用于任意领域);未指定分类的条目归入"未分类"。
# 也可在 UI 中直接新建目录(持久化,无需改配置)。
- id: knowledge-base
name: 'dsh-knowledge-base'
config:
categories: # 按需配置,例如:
- 文档
- 手册
| Method | Path | 用途 |
|---|---|---|
| POST | /api/kb/import | 上传文件(base64 JSON)→ 解析切块入库 |
| GET | /api/kb/list | 列出条目与分类 |
| GET | /api/kb/search?q= | 全文检索(FTS5 + BM25) |
| POST | /api/kb/update | 修改条目分类/标签 |
| POST | /api/kb/rename-category | 分类重命名 |
| POST | /api/kb/create-category | 新建目录(持久化) |
| POST | /api/kb/delete-category | 删除空目录 |
| POST | /api/kb/move-file | 文件移动(改分类) |
| POST | /api/kb/rename-file | 文件重命名 |
| POST | /api/kb/delete-file | 删除整个文件 |
| POST | /api/kb/delete-entry | 删除单个条目 |
dsh-knowledge-base(一个 npm 包,三个插件行)
├── dsh-knowledge-base host 工具:kb_query / kb_import / kb_list / kb_update / kb_delete
├── dsh-knowledge-base/web Web 端点:/api/kb/*(仅 web 组合挂载)
└── (client 半部) 会话视图「知识库」tab + 目录浏览器 UI
数据存储(默认):
$DSH_HOME/knowledge-base/kb.sqlite # 知识数据 + FTS5 索引 + meta(自定义分类)
$DSH_HOME/knowledge-base/inbox/ # 上传临时目录(导入后自动清理)
表:kb(id, category, name, summary, payload, tags, source, updated_at) + kb_fts(FTS5 外部内容表)+ meta(动态分类)。
npm run build # tsc 类型检查 + tsdown 打包(host 半部 + client bundle)
# 本地验证(使用工作区内的测试 home,绝不污染 ~/.dsh)
DSH_HOME=$PWD/.dsh-home DSH_TELEMETRY_DISABLED=1 \
dsh --profile headless --patch dev-headless.cordis.yml \
"用 kb_import 导入 /tmp/测试.md,然后 kb_query 检索 '关键词'"
开源独立仓库随附
dev.cordis.yml/dev-headless.cordis.yml用于本地验证。 开发期@deepseek-ai/*依赖通过scripts/link-official-deps.mjs链接官方 checkout(symlink), 详见 AGENTS.md「依赖说明」。
ctx.llm 结构化分类)欢迎 PR!请先阅读 AGENTS.md(agent 开发指南)。提交前:
npm run build 通过.dsh-home/、.test-workspace/ 等,见 .gitignore)MIT © dsh-knowledge-base contributors