dsh-session-explorer:DeepSeek Harness 会话消息级检索插件

在 DSH(DeepSeek Harness)的开发与调试过程中,会话记录往往会变得非常冗长。想要在长对话中定位某一条具体的消息——例如某次工具调用的参数细节,或者某条系统注入的提示——通常需要手动滚动查找。dsh-session-explorer 旨在解决这一痛点,为 Web 端提供会话消息级的全文检索能力,支持预览上下文并直接跳转回原始会话。

插件简介

dsh-session-explorer 是一个由 Zn-Dk 维护的 DSH Web 插件。它支持对用户消息、助手回复、引导信息以及工具调用(包括工具名、参数和错误摘要)进行全文检索。通过插件自带的索引引擎,它可以跨多个会话去重结果,并提供只读的上下文预览,帮助开发者快速定位目标信息。

安装

通过官方命令安装该插件:

dsh plugin --profile web add dsh-session-explorer

安装完成后,重启 dsh web。在侧边栏工具区域会出现 “Session Explorer” 的入口。插件首次使用时会自动创建索引,数据存储在 ~/.dsh/storages/session-explorer.sqlite。

核心功能

消息级全文检索

插件支持对以下四种消息类型进行检索,并设置了不同的权重:
* 高权重:用户消息、助手回复、系统注入文本。
* 低权重:工具名称、工具参数、工具错误摘要。
检索基于 FTS5 三元组索引,支持任意子串匹配(中文无需分词)。当查询字符数少于 3 个时,会自动回退到 LIKE 匹配模式。

跨会话去重

fork(分支)或 continuation(继续)会话共享父级历史记录。为了避免搜索结果重复,插件按 (seq, kind, text) 对结果进行分组,并保留标题非空且索引时间最新的会话条目。

只读预览与跳转

点击搜索结果卡片,会展示命中消息及其周围的上下文窗口。视图会自动滚动,将焦点消息置于中央。在预览界面中,点击任意消息可直接跳转到原始会话中对应的位置。

会话总览与筛选

除了单条消息搜索,插件还提供会话级别的总览视图。以卡片形式展示所有会话,包含元数据、首条/末条消息摘要。支持按主/子代理过滤、文本搜索和排序。点击卡片会打开一个内联的消息摘要详情面板,而非简单的锚点跳转。

索引管理与状态

  • 重建模式:支持增量重建(基于内容指纹,O(1) 跳过已变更会话)和全量重建(重置数据库并逐个会话重建)。重建对话框会运行健康检查(完整性 + 表可读性)。
  • 索引状态:自动分类索引状态为 “已索引”、”过时” 或 “失败”(如源日志损坏)。打开面板时会触发轻度同步(处理实时会话和未索引会话),关闭面板时增量同步,启动时进行一致性校对。

典型用法

  1. 打开 DSH Web,在侧边栏找到 “Session Explorer” 并点击。
  2. 在搜索框输入关键词,例如某个工具的名称或特定的错误摘要。
  3. 查看搜索结果列表,系统已自动处理 fork 会话的重复内容。
  4. 点击结果卡片,在预览面板中确认上下文。
  5. 点击预览中的具体消息,直接跳转到真实会话的对话流中。

已知限制

  • 工具结果体全文检索:工具调用结果的完整正文全文检索功能推迟到 V2 版本,当前仅支持工具名、参数和错误摘要的检索。
  • 会话删除:DSH 引擎未提供会话删除的 API,插件索引的清理仅限于插件自身的数据库。
  • 时间线画布 Bug:时间线画布存在严重的渲染问题,自 0.2.0 版本起入口已隐藏,待修复后将恢复显示。

总结

dsh-session-explorer 通过在本地维护 SQLite 索引,为 DSH 提供了高效的会话消息检索能力,特别适合需要频繁查阅历史日志的开发者。更多细节可参考项目目录或 GitHub 仓库。

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

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

小夜