前言¶
DeepSeek Harness (DSH) 在处理长对话历史时,往往面临内容检索困难的问题。官方侧边栏缺少一个强大的全局搜索入口,仅能依赖有限的上下文记忆。dsh-search-index 插件通过在侧边栏底部新增“搜索”按钮,为 DSH Web 客户端提供了一套独立的会话检索方案。
该插件不依赖官方的全文索引,而是维护自己的 SQLite 数据库。它解决了从海量历史记录中快速定位标题或特定内容的需求,支持按用户、回复或工具调用进行筛选,能够显著提升在多会话场景下的查找效率。
核心功能¶
该插件主要解决“搜什么”和“怎么搜”的问题,核心能力如下:
-
标题 ↔ 内容双模式切换
一个入口两种搜法。在面板中可以直接切换“标题搜索”与“内容搜索”。标题模式按会话标题或工作目录子串过滤;内容模式则深入检索消息正文。 -
内容按会话聚合展示
内容搜索结果不再逐条堆砌消息,而是按会话聚合。每个结果行显示会话标题、最相关的命中片段以及类型标签,点击即可直接打开该会话并定位到上下文。 -
内容类型筛选
内容模式顶部提供筛选 Chip:全部、用户、回复、工具。开启“工具”筛选后,可以直接检索工具调用的参数与返回值(tool/call与tool/result)。 -
结果排序
同一行右侧可切换“相关度”与“时间”。时间排序基于会话最后活动时间倒序,最近活跃的会话排在前面,偏好设置会保留在本地。 -
独立索引与三点机制
插件维护独立的 SQLite 索引文件(index.building.sqlite),与官方索引互不影响。- 独立索引:拥有自己的存储目录,支持快照导入导出。
- 归档清理:读取官方归档集合(
global.archivedSessionIds),自动将已归档的会话排除在索引之外。 - 安全重建:支持非破坏性的“影子索引”构建,在重建过程中保持原有索引服务不中断。
-
唤出键与平台化提示
侧边栏入口与面板底部均显示快捷键提示。macOS 渲染⌘K,Windows/Linux 渲染Ctrl K。关闭键同样根据平台适配(macOSesc/ 其他Esc),确保操作符合直觉。
安装¶
通过 dsh plugin 命令直接从 GitHub 安装即可,无需本地构建。
# 安装插件
dsh plugin --profile web add github:drscrewdriver/dsh-search-index#master
# 重启 DSH Web 以加载插件
dsh web
注意:GitHub 直装需要网络能连通 github.com,若受限请配置代理或镜像加速。
使用方式¶
安装并重启后,插件会在侧边栏底部新增一个“搜索”按钮。
- 唤起面板:点击侧边栏底部的“搜索”按钮,或按下系统对应的快捷键(如
Ctrl K)。 - 切换模式:在面板中点击切换“标题”或“内容”模式。
- 筛选结果:在内容模式下,点击顶部的筛选 Chip(如“工具”)。
- 查看结果:搜索结果按会话聚合展示,点击任意结果行即可跳转打开对应会话。
在设置页面(设置 → 插件)中,会出现“搜索索引”卡片。这里可以管理独立索引的同步频率、保留份数、快照导出以及查看已排除的归档会话数量。
注意事项¶
- 职责边界:本插件仅负责搜索与索引。会话历史的查看与清理(原“归档会话”面板)已迁移至
dsh-session-steward(会话管家)的“病案室”页签。本插件只读归档集合,不写入它。 - 索引独立性:索引文件存储在本插件自己的目录下,不会影响官方的
session-query-sqlite索引。 - 隐私与配置:所有配置仅存于 DSH 的 settings 命名空间与浏览器浮层状态中,不会上传会话内容以外的数据。
- 兼容版本:支持 DSH 0.1.1-rc.2 与 0.1.2-rc.1。无需修改 DSH 源码即可运行。
结语¶
dsh-search-index 为 DSH 用户提供了在侧边栏直接检索历史记录的能力。通过独立索引和聚合展示,它解决了长对话中内容查找碎片化的问题。如果你正在寻找一个能增强 DeepSeek Harness 搜索体验的插件,可以从这里开始。