DSH Session Search:在本地会话存档里跨工作区检索对话文本

前言

在 DeepSeek Harness(DSH)里做智能体或长周期开发时,对话会分散在多个工作区、多个 session 里。仅靠侧边栏逐条翻找,很难回答「某段配置、某次工具输出、某句报错以前在哪一轮说过」。DSH 生态里会话内容通常落在本地存储;若没有统一检索入口,只能依赖外部编辑器或手工导出。下面介绍社区插件 DSH Session Search(dsh-session-search),它在 DSH Desktop 内直接搜索已保存的对话文本,支持精确、正则、容错与子序列等匹配方式,并可在侧边栏或 Ctrl+F / ⌘F 打开搜索面板。

这是什么

DSH Session Search 由维护者 Ziminli 发布,归类为「记忆」类社区插件,当前包版本 1.3.6(MIT 许可证)。它不是 DSH 官方包;功能定位是:在全部或选定的工作区与会话范围内,检索已存储的 DSH 对话文本,并提供与 UI 共用同一引擎的只读 Agent 工具 search_session_text。检索在本地完成,不依赖独立搜索服务、FTS 索引、第三方依赖或额外构建步骤。

目录页:SkillHub 插件页
源码与说明:GitHub 仓库

核心功能

经过上面的定位,可按使用场景理解以下几组能力(均来自项目 README 与 package.json 描述)。

范围与时间

  • 默认检索全部工作区;可通过可搜索的多选框限定一个或多个工作区与会话。工作区与会话范围取交集;不选表示「全部」。列表按最近用户活动时间排序。
  • 消息时间过滤:Today、Last 24 hours、Last 7 days、This month,或自定义本地日历起止日(按单条消息时间戳,而非 session 活动时间)。
  • 可选包含 subagent 对话与已归档 session(默认关闭归档;打开结果前需在 DSH 侧恢复归档会话)。

匹配与搜索时机

  • VS Code 风格开关:Aa(区分大小写)、ab(整词)、.*(正则),可组合。
  • 除默认 Exact 外,可选 Typo-tolerant(容错)与 Subsequence(词内子序列)模糊模式。
  • 个人配置里可持久保存 Live(输入后约 300 ms 防抖搜索)或 Only on Enter / Search(显式提交后再搜);在 Plugins → Session Search 设置页修改 When to search 并保存。

结果与内容范围

  • 结果可按匹配消息时间 Newest first / Oldest first 排序;全 session 范围下可选 Timeline 或按 session 折叠的 By session 分组,并显示完整匹配条数。
  • 默认只搜 Final model replies only;可扩展至用户输入、中间回复、工具调用/结果与 reasoning 等存储内容。
  • 分页加载(每页 40 条),高亮片段、分页、打开对应对话按钮;支持中英文 UI 与 DSH 主题。

Agent 工具

具备相应权限的智能体可通过 plugin_manager 安装本地包后,调用只读工具 search_session_text,与 UI 使用同一检索引擎。

开发参考环境为 DSH Desktop runtime 0.2.1-rc.3(README 标明这不是对所有 DSH 版本的兼容性承诺);插件依赖 DSH 的 session 查询/controller、插件管理与 Web UI 插件 API,随 DSH 发版可能变化。开发与测试需 Node.js 22+(DSH Desktop 自带运行时,单独安装 Node 不改变 Desktop 内运行时)。

安装与启用

DSH Desktop 安装步骤如下(命令与 URL 以 README 为准,勿手写未文档化的 CLI 安装串)。

  1. 打开 Plugins → Add plugin(或 Install a third-party plugin)。
  2. 填写仓库 URL:
https://github.com/Ziminli/dsh-session-search
  1. 审阅源码/信任提示,安装并在需要时启用 bundle;按 Plugin Manager 返回的说明重启或重载。

若从本地目录安装,应通过 Plugin Manager 指定绝对路径的 package 目录,而不是手改 profile manifest。README 强调:不要同时启用多份 Session Search;若已有 @local/dsh-session-search,需先禁用,否则快捷键、UI 注册、路由、服务与工具名可能冲突。

安装前请自行阅读仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,能访问其设计范围内的本地会话数据。

典型用法

先做入口,再做范围与匹配,最后看结果与跳转。

  1. 点击侧边栏放大镜,或按 Ctrl+F / ⌘F 打开搜索面板。若已在设置里改为 Only on Enter / Search,改关键词或过滤条件后需按 Enter 或 Search 提交;未提交前会隐藏过时结果。
  2. 工作区默认为全部。打开工作区选择器可勾选多个;变更工作区会清空已选 session。Clear selection (all) 恢复全工作区。Ungrouped / no workspace 包含未注册工作区外的对话。
  3. 保持 All sessions,或用复选框多选;也可在结果上点 Search this session。可按标题或 ID 过滤选择器;Select all listed 选中当前列表项。工作区与会话选择相交。
  4. 调整匹配选项、内容范围与 Message time。自定义日期按浏览器本地时区;结束日包含整天。相对时间窗口在加载更多结果时保持固定。
  5. 选择结果顺序;全 session 范围下选 Timeline 或 By session。展开分组,用 Load more results / Load more sessions 加载更多。
  6. 在其他地方有活动、重命名、删除或归档后,点 Refresh sessions。Open conversation 会导航到未归档会话,并按该条结果的匹配选项在界面上临时高亮显示文本(Esc 或 Clear highlights 清除)。归档会话需先在 DSH 归档管理里恢复,搜索不会自动恢复。

右上角 Settings 可打开 Plugins → Session Search,且不改变当前选中的对话。

适用场景与注意

适合需要在 DSH 内快速定位历史对话片段的开发者:跨项目工作区回忆 prompt、工具输出或错误上下文;在选定 session 内做正则或容错检索;或让 Agent 通过 search_session_text 只读查询存档。

应注意:高亮为只读视图,不改变已保存消息与 Chat 渲染;未加载的历史或折叠块可能需展开后才看到高亮。Markdown 渲染可能改变空白或语法,高亮跟随显示文本,不能跨块元素。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;安装第三方插件前请核对仓库与信任模型。

结尾

DSH Session Search 把「找以前说过什么」收进 DSH 本地 UI 与 Agent 工具,匹配模式与时间、范围过滤较完整,适合作为记忆类插件长期使用。更多信息见 SkillHub 目录页 与 GitHub 仓库(含双语 CHANGELOG 与 README.zh-CN.md)。

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

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

Xiaoye