coding-agents
vectorize-io/hindsightHindsight:会学习的 Agent 长期记忆系统,自动召回/保存、知识页、深度反思与按仓库隔离的记忆银行。
DSH 通用知识库插件:导入 md/txt/json/yml/docx/pdf、目录化管理、FTS5 全文检索(BM25)、Web 管理界面。
DeepSeek Harness(DSH)向け汎用ナレッジベースプラグイン
ドキュメントの取り込み · フォルダ管理 · 全文検索 · Web UI での管理
dsh-knowledge-base は、DeepSeek Harness のエージェント向けにドキュメントを検索可能なナレッジベースへ変換します。PDF・Word・Markdown をドロップするだけで、解析・セクション単位の分割・FTS5(BM25)による関連度順検索が即座に利用できます。内蔵の Web UI ではファイルマネージャーのように知識ベースを管理できます:フォルダの作成・名前変更・削除、ファイルの移動、コンテンツの閲覧。
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-ai/*ランタイムは DeepSeek Harness(dsh)が提供。Node ≥ 22.5(node:sqlite内蔵)。
Web UI を使用(推奨)
dsh web(または dsh --profile web)エージェントツールを使用(headless / 任意のプロファイル)
取り込み: kb_import で /path/to/manual.pdf をインポート、カテゴリ "Documents"、タグ ["manual"]
検索: kb_query で "transformer" を検索
一覧: kb_list / kb_list category=Documents
更新: kb_update で id=3 のカテゴリを "Documents" に変更
削除: kb_delete で id=3 を削除
# プロファイルの cordis.patch.yml またはバンドルインストール時
# デフォルトでカテゴリはプリセットされません。カテゴリ未指定のエントリは「未分類」になります。
- id: knowledge-base
name: 'dsh-knowledge-base'
config:
categories: # 必要に応じて設定、例:
- Documents
- Manuals
| 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(1 npm パッケージ、3 つのプラグイン行)
├── dsh-knowledge-base host ツール: kb_query / kb_import / kb_list / kb_update / kb_delete
├── dsh-knowledge-base/web Web エンドポイント: /api/kb/*(web 構成のみ)
└── (client 側) 「ナレッジベース」タブ + フォルダブラウザ 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/test.md をインポートし、kb_query で 'keyword' を検索して"
リポジトリには
dev.cordis.yml/dev-headless.cordis.ymlを同梱(ローカル検証用)。 開発中、@deepseek-ai/*依存はscripts/link-official-deps.mjsで公式 checkout からシンボリックリンクします — AGENTS.md → "Dependencies" 参照。
ctx.llm 直接呼び出し)PR 歓迎!先に AGENTS.md(エージェント向け開発ガイド)をお読みください。送信前:
npm run build が通ること.dsh-home/、.test-workspace/ など)をコミットしないこと(.gitignore 参照)MIT © dsh-knowledge-base contributors