DeepSeek Harness 插件:dsh-knowledge-sqlite

前言

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)中配置插件参数。

  1. 配置权限:默认开启 Ask-gated,需要用户批准。若需跳过审批,可设置为 gating: 'none'。
  2. 配置数据库路径:自定义 SQLite 数据库文件位置。
  3. 配置检索:调整检索的候选数量和扩展超时时间。
# 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 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜