前言¶
DeepSeek Harness(DSH)的默認全文搜索(unicode61)無法匹配中文子串,導致在需要跨會話記憶的場景下檢索效率低下。dsh-knowledge-sqlite 旨在解決這個問題,它基於 V1.11 社區提案,爲 DSH 提供了一套跨會話知識管理方案,支持中文子串檢索和查詢擴展。
是什麼¶
這是一個由 NinjaSln-labs 維護的插件,核心是 ctx.knowledge 服務接口和 knowledge_* 模型工具。它將知識存儲在 SQLite 文件中,利用 FTS5 trigram 索引實現中文分詞檢索,並集成了 L1 查詢擴展機制。中文版 README(README.zh.md)爲權威版本。
核心功能¶
插件提供以下核心能力:
- 知識管理工具:支持
knowledge_write(寫入)、knowledge_update(更新)、knowledge_list(列表)、knowledge_delete(刪除)以及knowledge_probe(探針/實驗)。 - 中文檢索:基於 SQLite FTS5 trigram,支持中文子串檢索,解決傳統全文搜索無法匹配中文的問題。
- 查詢擴展:默認開啓 L1 查詢擴展,通過一次小模型調用提升召回率。
- 數據持久化:支持 TTL 過期機制、Tombstone(墓碑)機制和 DedupeKey 去重。
- 事件發射:在數據寫入、更新、刪除時發射
knowledge/written、knowledge/updated、knowledge/deleted事件。 - 權限與隔離:基於
session.header.cwd實現工作區隔離;默認開啓 Ask-gated 權限控制,寫入和刪除需用戶批准。
安裝與啓用¶
使用官方安裝命令即可添加插件:
dsh plugin add dsh-knowledge-sqlite
典型用法¶
在 DSH 的配置文件(如 cordis.patch.yml)中配置插件參數。
- 配置權限:默認開啓 Ask-gated,需要用戶批准。若需跳過審批,可設置爲
gating: 'none'。 - 配置數據庫路徑:自定義 SQLite 數據庫文件位置。
- 配置檢索:調整檢索的候選數量和擴展超時時間。
# cordis.patch.yml / profile row
- id: knowledge-sqlite
name: 'dsh-knowledge-sqlite'
config:
gating: 'ask'
databasePath: '/custom/data/knowledge.sqlite'
queryExpansion:
enabled: true
timeoutMs: 3000
retrieval:
topN: 20
maxCandidates: 200
authorization:
allowedGlobalWriters: []
適用場景與注意¶
- 適用場景:需要構建具備長期記憶和精確中文檢索能力的 DSH 智能體。
- 注意事項:
- 該插件基於 V1.11 社區提案,非 DeepSeek 官方功能。
- 身份驗證基於
session.header.cwd,確保不同工作區的數據隔離。 - 安裝前請檢查源碼與許可證(MIT)。
- 默認開啓 Ask-gated,在無頭部署中需注意審批邏輯。
結語¶
該插件通過 SQLite FTS5 技術解決了 DSH 中文檢索的痛點,適合需要長期記憶和精確檢索的智能體開發。更多細節可參考 GitHub 倉庫。